OpenGL重叠顶点属性

时间:2013-12-23 16:39:16

标签: opengl opengl-es vertex-shader

我喜欢在顶点着色器中生成平面着色三角形。为此,我需要访问当前顶点着色器中的当前和两个下一个顶点属性。显然,这可以通过几何着色器完成,但例如在GL ES中不存在。

那么有没有办法让GLSL访问三个连续的顶点位置,但只在每个顶点调用中前进一个位置?否则我将不得不将三个顶点的数据分配给每个顶点。这是一个巨大的开销。

1 个答案:

答案 0 :(得分:0)

在顶点着色器中无法访问多个顶点。如果要创建平面着色,则需要复制顶点,以便为每个需要的曲面法线分配顶点的单独副本(每个面共享一个顶点位置)。这可能是OpenGL ES所需的解决方案。

或者,如果您的目标是OpenGL 4.x,则可以使用provoking vertex的概念,它允许您指定一个顶点,应该在面的所有顶点上重复使用这些属性。受影响的属性仅为在着色器源中与flat关键字关联的属性。