Rhu*_*age 4 opengl shader spir-v
我正在尝试将 spirv 与OpenGL一起使用。之前在我的着色器中,我必须gl_VertexID
计算矩形的 uv,现在我将其替换为gl_VertexIndex
.
如果我使用gl_VertexID
的代码工作,如果我用gl_VertexIndex
在spirv
与vulkan
代码的作品,但如果我用gl_VertexIndex
用的OpenGL的gl_VertexIndex
始终0
。
这是我正在使用的测试绘制命令:
glDrawArraysInstancedBaseInstance(GL_TRIANGLES, 0, 6, 1, 2);
Run Code Online (Sandbox Code Playgroud)
不应该gl_VertexIndex
从0
到5
吗?
无论您使用何种着色语言gl_VertexIndex
,OpenGL 中都没有。将 GLSL 编译为用于 OpenGL 的 SPIR-V 时,您应该会遇到编译错误。
话虽如此,gl_VertexIndex
和的值之间没有区别gl_VertexID
(与gl_InstanceIndex
vs.不同gl_InstanceID
)。