输入寄存器

顶点着色器输入寄存器。

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

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

属性 说明
名称 v[n] - n 是可选的寄存器编号。 0 是使用的默认值(如果省略)。
Count 最多 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

 

顶点着色器寄存器