GLSL
它是类C语言写成的,为图形计算量身定制的,开头版本声明,接着输入输出变量,然后是uniform和main()函数。
GLSL向量数据类型
比如vecn 代表含义是包含n个float变量得vector。同时还支持重组,比如vec2 temp1;vec2 temp2; vec4 temp3 = temp1 + temp2; 两个包含两个float 的vec2 可以重组成一个vec4;
输入和输出
每个着色器都有in 和out,前一个着色器的输出可以作为下一个着色器的输入。
Uniform
它是一种CPU应用向GPU中的着色器发送数据的方式,它是全局的。在应用程序中可以通过glGetUniformLocation()来获取着色器Uniform值,然后改变它。
更多属性
如果顶点数据包含更多属性,该如何传输?把位置数据和颜色数据加入顶点数据中,通过layout标识符来区分。因为我们添加了顶点属性,并且更新了VBO内存,所以需重新配置顶点属性指针。
从文件中读取
使用C++,从文件中读取GLSL着色器程序,保存到几个string对象里面,然后构建着色器程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)