OpenGl着色器

OpenGl着色器,第1张

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对象里面,然后构建着色器程序。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/2991503.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)

保存