AGAL和变化的寄存器

时间:2011-12-20 04:55:23

标签: flash shader stage3d agal

  1. 我只是想知道这是如何运作的。所以我在vert着色器中。我存储了从va1到v1的UV-coord。在frag着色器中,现在可以在v1中使用插值纹理坐标进行采样。是否存在连接,如语义,将v1与正常坐标相关联?

  2. 是否每个三角形都会将碎片推送到碎片着色器,或者整个网格的几何顶点都会被运行?

  3. 在顶点着色器中,假设我将模型视图乘以顶点的位置。然后我想与片段着色器分享我的z-coord以获得其他东西。我将变换后的矢量的z-cord存储到v3中。一旦我在片段着色器中并且我访问v3用于z-coord,这是否与我传入的z-coord相同,或者这个z坐标是否会被两者之间的透视分割所改变?我只是问,因为我想澄清在这些寄存器中存储值时所描述的“插值”行为。

1 个答案:

答案 0 :(得分:2)

  1. 变量寄存器没有语义。您传递给不同寄存器的任何内容都将被插值,并且它对于法线的工作方式与对紫外线或其他任何方式相同。

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

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