WebGL 平面着色
WebGL Flat Shading
我有一个使用 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 是什么?
WebGL 1.0 不支持平面着色。有关解决方法,请参阅 。
WebGL 2.0 具有平面着色。它与常规 OpenGL 具有相同的默认值 - 激发顶点是三角形的最后一个顶点。这似乎无法在 WebGL 2.0 中更改,因为 ProvokingVertex()
未通过 WebGL 2.0 API.
公开
请注意,即使在桌面 OpenGL 中,激发顶点也可以是三角形的第一个或最后一个顶点(最后一个是默认值)。不能是中间顶点
我有一个使用 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 是什么?
WebGL 1.0 不支持平面着色。有关解决方法,请参阅
WebGL 2.0 具有平面着色。它与常规 OpenGL 具有相同的默认值 - 激发顶点是三角形的最后一个顶点。这似乎无法在 WebGL 2.0 中更改,因为 ProvokingVertex()
未通过 WebGL 2.0 API.
请注意,即使在桌面 OpenGL 中,激发顶点也可以是三角形的第一个或最后一个顶点(最后一个是默认值)。不能是中间顶点