WebGL平面着色

时间:2017-12-24 02:42:10

标签: javascript webgl

我有一个使用flat限定符的顶点着色器和片段着色器,并且由于在https://www.youtube.com/watch?v=l6PEfzQVpvM的末尾附近解释了复杂的hacky原因,我想更改WebGL平面阴影激发顶点,这是传递不同颜色时WebGL将使用的顶点数。 (我的着色器是这样的):

// ...
flat out vec3 pass_vertexColor;
// ...

我知道在OpenGL中你可以像这样改变引发顶点:

glProvokingVertex(1 /* 2, 3 */); // i think

但我不认为WebGL中还有一个等价物。所以我的问题是:

什么是默认的WebGL Provoking Vertex?

1 个答案:

答案 0 :(得分:0)

WebGL 1.0不支持平面着色。有关解决方法,请参阅this answer

WebGL 2.0具有平面阴影。它具有与常规OpenGL相同的默认值 - 引发顶点是三角形的最后一个顶点。看来这在WebGL 2.0中无法更改,因为ProvokingVertex()未通过WebGL 2.0 API公开。

请注意,即使在桌面OpenGL中,激发顶点也可以是三角形的第一个或最后一个顶点(最后一个是默认值)。它不能是中间顶点。