WebGL平面着色

问题描述 投票:0回答:1

我有一个使用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?

javascript webgl
1个回答
0
投票

WebGL 1.0不支持平面着色。请参阅this answer获取解决方法。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.