0
  1. 我只是想这样做是如何工作的。所以我在垂直着色器中。我存储从 va1 到 v1 的 UV 坐标。在片段着色器中,插值纹理坐标现在在 v1 中可用于采样。引擎盖下是否有联系,比如语义,将 v1 与正常坐标相关联?

  2. 片段是按三角形推送到片段着色器还是在整个网格的几何顶点通过时被推送到片段着色器?

  3. 在顶点着色器中,假设我将模型视图乘以顶点的位置。然后我想与片段着色器共享我的 z 坐标以获取其他内容。我将转换后的向量的 z-cord 存储到 v3 中。一旦我进入片段着色器并访问 v3 的 z 坐标,这是我传入的相同 z 坐标还是这个 z 坐标会被两者之间的透视划分改变?我只是问,因为我想澄清在这些寄存器中存储值时描述的“插值”行为。

4

1 回答 1

2
  1. 不同的寄存器没有语义。您传递给可变寄存器的任何内容都将被插值,并且它对法线的作用与对 uvs 或其他任何东西的作用相同。

  2. 我相信整个网格首先通过顶点着色器进行转换,然后片段着色器在其上运行。不过,硬件如何处理这个问题并不重要。

  3. 坐标将被插值;不同的寄存器不知道他们持有什么样的数据——从他们的角度来看,它只是 4 个浮点数。由于不同的寄存器包含 4 个组件,您可以将整个顶点位置粘贴在那里。需要注意的一件事 - 如果你想做一些处理深度的事情,我想你会想要 w 组件。

于 2012-01-22T09:44:32.163 回答