当前位置: 代码迷 >> Iphone >> OpenGL ES 3.0极点着色器(一)
  详细解决方案

OpenGL ES 3.0极点着色器(一)

热度:399   发布时间:2016-04-25 05:30:07.0
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_position3. // from model space to normalized4. // device space5.6. // attributes input to the vertex shader7. in vec4 a_position; // position value8. in vec4 a_color; // input vertex color9.10. // output of the vertex shader - input to fragment11. // shader12. out vec4 v_color; // output vertex color13. void main()14. {15. v_color = a_color;16. gl_Position = u_mvpMatrix * a_position;17. }