OpenGL&&GLSL学习心得(1)

接触glsl编程已经有一段时间了,这是本人在学习期间的一点学习笔记,第一part。

(1)如果程序中有几何着色器,则一定要有顶点着色器。

(2)几何着色器可以像顶点和片元着色器一样使用Uniform变量。
(3)几何着色器可以使用所有OpenGL定义的标准变量,比如转换矩阵,因此,你可以在顶点着色器中转换原始顶点,也可以在几何着色器中在提交顶点的时候转换原始顶点,后一种方式更方便。
(4)在几何着色器中同样使用In 或者out来定义输入或者输出变量。
(5)在Geometry Shader里,我们处理的单元就是图元,虽然根本上都是顶点的处理,但进入vertex shader里的是一次一个的顶点,而进入Geometry Shader的是一次一批的顶点,Geometry Shader掌握着这些顶点所组成的图元的信息。
(6)一旦OpenGL应用指定ShaderProgram使用Geometry Shader,则上面的叙述变成:在Assembly生成图元Primative后,再一直到栅格化前进行Geometry Shader的处理,再到Rasterization栅格化。我们也用一个简单的Geometry Shader,单纯把进入的图元原原本本地(组织形式和数量也一致)。
(7)在几何着色器中的输入,比如:in vec2 texcoord[], in vec3 normal[],其数组大小有输入图元的顶点数决定。
(8)高版本Glsl不支持texture1D()纹理查询函数。
(9)glsl4.3以前,不支持二维数组,从vertexshader到geometry传数组,可以使用接口块,接口块可以包含数组,单接口块本身作为一个数组传进GeometryShader中,内建的gl_in[]便是个典型的例子。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值