输入寄存器

顶点着色器输入寄存器。

每个顶点(使用一个或多个输入顶点流)的数据将加载到顶点输入寄存器中,然后运行顶点着色器。 输入寄存器由 16 个四分量的浮点向量组成,指定为 v0 到 v15。 这些寄存器是只读的。 输入寄存器通过顶点声明绑定到顶点数据。

以下寄存器属性控制每个寄存器的行为方式:

财产 描述
名字 v[n] - n 是可选的寄存器号。 0 是使用的默认值(如果省略)。
计数 最多 16 个寄存器,v0 - v15。
I/O 权限 只读。 此寄存器不能由 API 或着色器编写。
读取端口 1.这是可以在单个指令中读取寄存器的次数。 请参阅下文。

 

任何单个指令只能访问一个顶点输入寄存器。 但是,指令中的每个源都可以在读取时独立重排并否定该向量。

下面是使用顶点声明绑定 2D 顶点位置数据以注册 v0 的示例。

顶点声明属于应用程序:

D3DVERTEXELEMENT9 decl[] =
{
    { 0, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
      D3DDECL_END()
};

下面是相应的顶点着色器声明:

dcl_position v0
顶点着色器版本 1_1 2_0 2_sw 2_x 3_0 3_sw
位置寄存器 x x x x x x

 

顶点着色器寄存器