【问题标题】:Can you store the position attribute in an attribute number other than 0可以将位置属性存储在0以外的属性号中吗
【发布时间】:2021-11-11 00:52:36
【问题描述】:

在 OpenGL 中,我总是看到 position 属性总是放置在属性 0 处。position 属性是否可能位于第 1 位?为什么位置属性总是在属性0?

【问题讨论】:

    标签: c++ opengl


    【解决方案1】:

    在现已删除的gl_Vertex 内置属性之外,没有“位置属性”之类的东西。 GLSL 不知道哪个属性对应于“位置”。它们都只是顶点着色器的数字;只有当您将某些内容分配给 gl_Position 时,它们才会有意义。

    这是一个顶点着色器输出。您如何为该输出产生价值与 GLSL 无关。

    话虽如此,旧版本的 OpenGL 确实为属性 0 赋予了特殊的权力。但这些主要是来自固定功能glBegin/End风格编程的残留元素,它们不需要具有“位置”的含义。它唯一的特殊状态是你必须把 something 放在那里。也就是说,你不能不使用属性 0。

    但同样,它早已从 OpenGL 中移除。如今,人们只是习惯性地把“位置”放在那里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-07
      • 2011-10-20
      • 2011-12-25
      • 2012-11-29
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      相关资源
      最近更新 更多