【发布时间】:2021-11-11 00:52:36
【问题描述】:
在 OpenGL 中,我总是看到 position 属性总是放置在属性 0 处。position 属性是否可能位于第 1 位?为什么位置属性总是在属性0?
【问题讨论】:
在 OpenGL 中,我总是看到 position 属性总是放置在属性 0 处。position 属性是否可能位于第 1 位?为什么位置属性总是在属性0?
【问题讨论】:
在现已删除的gl_Vertex 内置属性之外,没有“位置属性”之类的东西。 GLSL 不知道哪个属性对应于“位置”。它们都只是顶点着色器的数字;只有当您将某些内容分配给 gl_Position 时,它们才会有意义。
这是一个顶点着色器输出。您如何为该输出产生价值与 GLSL 无关。
话虽如此,旧版本的 OpenGL 确实为属性 0 赋予了特殊的权力。但这些主要是来自固定功能glBegin/End风格编程的残留元素,它们不需要具有“位置”的含义。它唯一的特殊状态是你必须把 something 放在那里。也就是说,你不能不使用属性 0。
但同样,它早已从 OpenGL 中移除。如今,人们只是习惯性地把“位置”放在那里。
【讨论】: