ps_2_x 说明
本部分包含像素着色器版本2_x说明的参考信息。
有多种类型的像素着色器指令,如表中所示。 右侧的列表示以下内容:
- 指令槽数 - 每个指令使用的指令槽数。
- 设置 - 像素着色器必须具有版本指令,并且必须是第一个指令。
- 算术 - 这些指令提供着色器中的数学运算。
- 纹理 - 这些指令用于加载和采样纹理数据,以及修改纹理坐标。
- 流控制 - 这些指令为指令的执行提供静态和动态流控制。
- 新建 - 这些说明是此版本的新增内容。
指令集
名称 | 说明 | 指令槽 | 安装 | 算术 | 纹理 | 流量控制 | 新建 |
---|---|---|---|---|---|---|---|
abs - ps | 绝对值 | 1 | x | ||||
add - ps | 添加两个向量 | 1 | x | ||||
break - ps | 突破代表...endrep 块 | 1 | x | x | |||
break_comp - ps | 有条件地突破代表...endrep 块,带有比较 | 3 | x | x | |||
breakp - ps | 突破代表...endrep 块,基于谓词 | 3 | x | x | |||
call - ps | 调用子例程 | 2 | x | x | |||
callnz bool - ps | 如果布尔寄存器不为零,则调用子例程 | 3 | x | x | |||
callnz pred - ps | 如果谓词寄存器不为零,则调用子例程 | 3 | x | x | |||
cmp - ps | 将源与 0 进行比较 | 1 | x | ||||
crs - ps | 跨积 | 2 | x | ||||
dcl_samplerType (sm2, sm3 - ps asm) | 声明采样器的纹理维度 | 0 | x | ||||
dcl - (sm2, sm3 - ps asm) | 声明顶点着色器输出寄存器与像素着色器输入寄存器之间的关联。 | 0 | x | ||||
def - ps | 定义常量 | 0 | x | ||||
defb - ps | 定义布尔常量 | 0 | x | x | |||
defi - ps | 定义整数常量 | 0 | x | x | |||
dp2add - ps | 2D 点积并添加 | 2 | x | ||||
dp3 - ps | 3D 点积 | 1 | x | ||||
dp4 - ps | 4D 点积 | 1 | x | ||||
dsx - ps | x 方向的变化率 | 2 | x | x | |||
dsy - ps | y 方向的变化率 | 2 | x | x | |||
else - ps | 开始 else 块 | 1 | x | x | |||
endif - ps | 结束一个 if...else 块 | 1 | x | x | |||
endrep - ps | 重复块的结束 | 2 | x | x | |||
exp - ps | 全精度 2x | 1 | x | ||||
frc - ps | 小数部分 | 1 | x | ||||
if bool - ps | 开始 if 块 | 3 | x | x | |||
if_comp - ps | 使用比较开始 if 块 | 3 | x | x | |||
如果 pred - ps | 使用 predication 开始 if 块 | 3 | x | x | |||
label - ps | Label | 0 | x | x | |||
log - ps | 全精度对数ー (x) | 1 | x | ||||
lrp - ps | 线性内插 | 2 | x | ||||
m3x2 - ps | 3x2 乘法 | 2 | x | ||||
m3x3 - ps | 3x3 乘法 | 3 | x | ||||
m3x4 - ps | 3x4 乘法 | 4 | x | ||||
m4x3 - ps | 4x3 乘法 | 3 | x | ||||
m4x4 - ps | 4x4 乘法 | 4 | x | ||||
mad - ps | 相乘和加法 | 1 | x | ||||
max - ps | 最大值 | 1 | x | ||||
min - ps | 最小值 | 1 | x | ||||
mov - ps | 移动 | 1 | x | ||||
mul - ps | 乘 | 1 | x | ||||
nop - ps | 无操作 | 1 | x | ||||
nrm - ps | 规范化 | 3 | x | ||||
pow - ps | xy | 3 | x | ||||
ps | 版本 | 0 | x | ||||
rcp - ps | 互惠 | 1 | x | ||||
代表 - ps | Repeat | 3 | x | x | |||
ret - ps | 子例程的结尾 | 1 | x | x | |||
rsq - ps | 倒数平方根 | 1 | x | ||||
setp_comp | 设置谓词寄存器 | 1 | x | x | |||
sincos - ps | 正弦和余弦 | 8 | x | ||||
sub - ps | 减 | 1 | x | ||||
texkill - ps | 终止像素渲染 | 请参阅注释 1 | x | ||||
texld - ps_2_0和向上 | 采样纹理 | 查看注释 2 | x | ||||
texldb - ps | 来自 w 组件的详细信息级别偏差的纹理采样 | 请参阅注释 3 | x | ||||
texldd - ps | 使用用户提供的渐变进行纹理采样 | 3 | x | x | |||
texldp - ps | 使用投影除以 w 分量进行纹理采样 | 请参阅注释 4 | x |
注意:
- 如果设置了 D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT ,则槽 = 2;否则槽 = 1。
- 如果设置了 D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT 并且纹理是立方体贴图,则槽 = 4;否则槽 = 1。
- 如果设置了 D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT ,则槽 = 6;否则槽 = 1。
- 如果未设置 D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT ,则槽 = 1;否则:
- 如果设置了 D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT 并且纹理是立方体贴图,则槽 = 4。
- 如果设置了 D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT 并且纹理不是立方体贴图,则槽 = 3。
相关主题