OpenGL&&GLSL学习心得(1)

来源:互联网 发布:java weka 神经网络 编辑:程序博客网 时间:2024/06/14 03:17

接触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 0
原创粉丝点击