register

用于将着色器变量分配给特定寄存器的可选关键字 (keyword) ,该寄存器使用以下语法:

:register ( [shader_profile]Type#[subcomponent] )

 

参数

注册

必需的关键字 (keyword) 。

[shader_profile]

可选 着色器配置文件,可以是着色器目标,也可以是 psvs

Type#[subcomponent]

寄存器类型、数字和子组件声明。

  • 类型为下列类型之一:

    类型 注册说明
    b 常量缓冲区
    t 纹理和纹理缓冲区
    c 缓冲区偏移量
    S 取样器
    u 无序访问视图

     

  • # 是寄存器编号,即整数。

  • 子组件是可选的整数。

备注

可以将一个或多个寄存器赋值添加到同一变量声明中,用空格分隔。

对于全局范围内的 Direct3D 10 变量,寄存器关键字 (keyword) 与 packoffset (DirectX HLSL) 关键字 (keyword) 相同。

示例

下面是一些示例:

sampler myVar : register( ps_5_0, s ); 
sampler myVar : register( vs, s[8] );
sampler myVar : register( ps, s[2] ) 
              : register( ps_5_0, s[0] ) 
              : register( vs, s[8] );

另请参阅

变量语法

(DirectX HLSL) 变量