demo下载:
https://github.com/fylz1125/ShaderDemos
opgl 基础学习:
http://www.opengl-tutorial.org/cn/beginners-tutorials/
场景:DissolveEffect(溶解)
阅读笔记:add by the3sStudio,如果错误欢迎指教。
致谢:
感谢大掌教 提供demo,大掌教公开 QQ群号: 704391772
(ps:第一章会说的啰嗦一点)
this.program.addAttribute(xx, xx)): 绑定属性,在 dissolveEffect.ts 里面三项分别对应 DissolveFrag.ts 的顶点着色器三个 attribute 属性
attribute 变量的约束 百度自行查阅
glProgram_state.setUniformXX():设置变量,此篇就是 time边框, 每帧都会调用。
DissolveFrag.ts 里面的一些 gl_XXX 变量 百度自行查阅定义, gl_FragColor , gl_FragCoord,
还有 texture2D, 知道这些变量的含义,将有助于你理解本篇文档
varying ,uniform, attribute 自行百度
—————————本篇基础知识准备完结,接下来说 sharder—————-
uv 是纹理坐标,用texture2d 可以可以取出此处的 纹素(rgb)
float height = texture2D(texture1,uv).r; 取r,g,b 什么值不重要,他只是要一个可以和时间做比较的参考量
那么每 个纹素的RGB值实际上表示的是XYZ向量:颜色的分量取值范围为0到1。有点难理解可以先过,记住就行了。
(你可以将 height < time 的 time 换成 1,点溶解将立马消失)
那么 height < time+0.04 就是 height 在time和 time+ 0.04这个时间段 ,像素该表现的样子。(尝试将 0.04变大。你将看到更多的黄色底图)