我目前正在使用在运行时生成的几何形状进行绘图例程,只是单色。在寻找最小GL设置以进行绘图时(我匹配屏幕分辨率,并且我是在iOS上,但问题同样适用于其他ES 2平台),我发现大多数示例都使用顶点和片段着色器,但不是所有示例。
如果我不打算使用任何纹理或光照(只是直接颜色复制/混合),并且我不打算进行任何无法通过操纵视图矩阵完成的变换,那么我真的需要设置顶点和/或片段着色器吗?如果没有,那么与无着色器方法相比,使用着色器是否有任何优势?
我目前正在使用在运行时生成的几何形状进行绘图例程,只是单色。在寻找最小GL设置以进行绘图时(我匹配屏幕分辨率,并且我是在iOS上,但问题同样适用于其他ES 2平台),我发现大多数示例都使用顶点和片段着色器,但不是所有示例。
如果我不打算使用任何纹理或光照(只是直接颜色复制/混合),并且我不打算进行任何无法通过操纵视图矩阵完成的变换,那么我真的需要设置顶点和/或片段着色器吗?如果没有,那么与无着色器方法相比,使用着色器是否有任何优势?
// Vertex Shader
attribute vec3 position;
void main(void)
{
gl_Position = vec4(position, 1.0);
}
并且:
// Fragment Shader
uniform lowp vec3 color;
void main(void)
{
gl_FragColor = vec4(color, 1.0);
}
来源: Khronos网站和文档
"OpenGL ES 2.0规范的重大变化是不再支持OpenGL固定功能的变换和片段渲染管线。"
GLKBaseEffect
。因此,ES 2需要它们被提供,但在iOS下不需要自己编写。 - Tommy