OpenGL ES 3.0顶点着色器(一)
OpenGL ES 3.0流程图
1.Vertex Shader(顶点着色器)
顶点着色实现了一种通用的可编程方法操作顶点。
顶点着色器的输入包括以下几个:
• Shader program.程序的顶点着色程序源代码或可执行程序,描述将在顶点上执行的操作。
• Vertex shader inputs (or attributes)-顶点着色去支持的顶点数组。
• Uniforms。顶点(片段)着色器使用的常量数据。
• Samplers。Uniforms使用的特殊类型,在纹理中使用(Texture)
在OpenGL ES2.0中顶点着色器的输出被称为变量,而在3.0中重新命名了。在最初的光栅化阶段,它计算每个生成的输出值,作为输入传递给片段着色器。用于生成每个的值的机制从顶点着色输出到每个顶点的片段原始的被称为插值。此外,OpenGL ES 3加
种新的特征称为变换反馈,它允许顶点着色输出选择写入到输出缓冲区。
顶点着色器
它使用在传统的基于顶点的操作。如矩阵变换,计算光线,生成每顶点颜色,纹理生成和坐标变换。
2. uniform mat4 u_mvpMatrix; // matrix to convert a_position 3. // from model space to normalized 4. // device space 5. 6. // attributes input to the vertex shader 7. in vec4 a_position; // position value 8. in vec4 a_color; // input vertex color 9. 10. // output of the vertex shader - input to fragment 11. // shader 12. out vec4 v_color; // output vertex color 13. void main() 14. { 15. v_color = a_color; 16. gl_Position = u_mvpMatrix * a_position; 17. }