ps_3_0指示
本節包含圖元著色器 3_0 版指示的參考資訊。
有數種類型的圖元著色器指令,如表格所示。 右邊的資料行表示下列各項:
- 指令位置 - 每個指令所使用的指令位置數目。
- 安裝程式 - 圖元著色器必須有版本指示,而且必須是第一個指示。
- 算術 - 這些指示會在著色器中提供數學運算。
- 紋理 - 這些指示可用來載入和取樣紋理資料,以及修改紋理座標。
- 流程式控制制 - 這些指令會提供靜態和動態流程式控制制,以執行指令。
- 新增 - 這些指示是這個版本的新功能。
指令集
名稱 | 描述 | 指令位置 | 安裝程式 | 算術 | 紋理 | 流量控制 | 新增 |
---|---|---|---|---|---|---|---|
abs - ps | 絕對值 | 1 | x | ||||
add - ps | 新增兩個向量 | 1 | x | ||||
break - ps | 中斷迴圈...endloop 或 rep...endrep 區塊 | 1 | x | ||||
break_comp - ps | 有條件地中斷迴圈...endloop 或 rep...endrep 區塊,具有比較 | 3 | x | ||||
breakp - ps | 中斷迴圈...endloop 或 rep...endrep 區塊,以述詞為基礎 | 3 | x | ||||
call - ps | 呼叫副程式 | 2 | x | ||||
callnz bool - ps | 如果布林暫存器不是零,請呼叫副程式 | 3 | x | ||||
callnz pred - ps | 如果述詞暫存器不是零,請呼叫副程式 | 3 | x | ||||
cmp - ps | 比較來源與 0 | 1 | x | ||||
crs - ps | 跨產品 | 2 | x | ||||
dcl_samplerType (sm2,sm3 - ps asm) | 宣告取樣器的紋理維度 | 0 | x | ||||
dcl_semantics (sm3 - ps asm) | 宣告輸入和輸出暫存器 | 0 | x | x | |||
def - ps | 定義常數 | 0 | x | ||||
defb - ps | 定義布林常數 | 0 | x | ||||
defi - ps | 定義整數常數 | 0 | x | ||||
dp2add - ps | 2D 點產品並新增 | 2 | x | ||||
dp3 - ps | 3D 點產品 | 1 | x | ||||
dp4 - ps | 4D 點產品 | 1 | x | ||||
dsx - ps | x 方向變更的速率 | 2 | x | ||||
dsy - ps | Y 方向的變更速率 | 2 | x | ||||
else - ps | 開始 else 區塊 | 1 | x | ||||
endif - ps | 結束 if...else 區塊 | 1 | x | ||||
endloop - ps | 結束迴圈 | 2 | x | x | |||
endrep - ps | 重複區塊的結尾 | 2 | x | ||||
exp - ps | 完整精確度 2x | 1 | x | ||||
frc - ps | 小陣列件 | 1 | x | ||||
if bool - ps | 開始 if 區塊 | 3 | x | ||||
if_comp - ps | 使用比較來開始 if 區塊 | 3 | x | ||||
if pred - ps | 使用預先部署的 if 區塊開始 | 3 | x | ||||
label - ps | 標籤 | 0 | x | ||||
log - ps | 完整精確度記錄檔ー (x) | 1 | x | ||||
迴圈 - ps | Loop | 3 | x | 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 | ||||
rep - ps | Repeat | 3 | x | ||||
ret - ps | 副程式結束 | 1 | x | ||||
rsq - ps | 相互平方根 | 1 | x | ||||
setp_comp | 設定述詞暫存器 | 1 | x | ||||
sincos - ps | 正弦和余弦 | 8 | x | ||||
sub - ps | 減去 | 1 | x | ||||
texkill - ps | 終止圖元轉譯 | 2 | x | ||||
texld - ps_2_0和向上 | 取樣紋理 | 請參閱附注 1 | x | ||||
texldb - ps | 具有 w 元件的詳細資料層級偏差紋理取樣 | 6 | x | ||||
texldl - ps | 具有 w 元件詳細層級的紋理取樣 | 請參閱附註 2 | x | x | |||
texldd - ps | 使用使用者提供的漸層進行紋理取樣 | 3 | x | ||||
texldp - ps | 使用投影除以 w-component 的紋理取樣 | 請參閱附注 3 | x |
注意:
- 如果紋理是 Cube 地圖,位置 = 4;否則,位置 = 1。
- 如果紋理是 Cube 地圖,位置 = 5;否則,位置 = 2。
- 如果紋理是 Cube 地圖,位置 = 4;否則,位置 = 3。
相關主題