着色器的编写,过程就比较复杂,首先要了解glsl(OpenGL Shading Language),编写顶点着色器、片元着色器。
glsl限定符
attritude:一般用于各个顶点各不相同的量。如顶点颜色、坐标等。只能在顶点着色器中使用
uniform:一般用于对于3D物体中所有顶点都相同的量。比如光源位置,统一变换矩阵等。不能被修改,由外部传递进来。
varying:表示易变量,一般用于顶点着色器传递到片元着色器的量。
glsl常用內建变量
gl_Position,顶点的位置,在顶点着色器中使用,四维向量
gl_FragColor,顶点颜色,在片元着色器中使用,四维向量
texture2D,获取纹理某个位置的纹理,第一个参数是纹理句柄,第二个是纹理位置
着色器加载的过程:获取着色器路径,创建可执行程序、shader,获取着色器内容,加入shader,编译shader,shader附着可执行程序,连接可执行程序,检查错误,执行程序。
编译着色器
加载着色器返回可执行程序
连接、检查、使用可执行程序
网友评论