输入寄存器
顶点着色器输入寄存器。
在运行顶点着色器之前,使用一个或多个输入顶点流 (每个顶点的数据) 加载到顶点输入寄存器中。 输入寄存器由 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 |
相关主题