共用方式為


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

 

注意:

  1. 如果紋理是 Cube 地圖,位置 = 4;否則,位置 = 1。
  2. 如果紋理是 Cube 地圖,位置 = 5;否則,位置 = 2。
  3. 如果紋理是 Cube 地圖,位置 = 4;否則,位置 = 3。

圖元著色器指示