共用方式為


ps_3_0指示

本節包含圖元著色器 3_0 版指示的參考資訊。

有數種類型的圖元著色器指示,如表格所示。 右邊的數據行表示下列各項:

  • 指令位置 - 每個指令所使用的指令位置數目。
  • 安裝程式 - 像素著色器必須具有版本指示,而且必須是第一個指示。
  • 算術 - 這些指示會在著色器中提供數學運算。
  • 紋理 - 這些指示可用來載入和取樣紋理數據,以及修改紋理座標。
  • 流程控制 - 這些指令會提供靜態和動態流程控制給指令的執行。
  • 新增 - 這些指示是這個版本的新功能。

指令集

名字 描述 指示位置 設置 算術 質地 流控制 新增功能
abs - ps 絕對值 1 x
新增 - ps 新增兩個向量 1 x
中斷 - ps 中斷迴圈...endloop 或 rep...endrep 區塊 1 x
break_comp - ps 有條件地中斷迴圈...endloop 或 rep...endrep 區塊,具有比較 3 x
斷層 - ps 中斷迴圈...endloop 或 rep...endrep 區塊,以述詞為基礎 3 x
通話 - 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 開始其他區塊 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
布爾 - ps 開始 if 區塊 3 x
if_comp - ps 以比較開始 if 區塊 3 x
如果 pred 為 - ps 使用述詞開始 if 區塊 3 x
標籤 - ps 標籤 0 x
記錄 - ps 完整精確度記錄檔(x) 1 x
迴圈 - ps 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
瘋狂 - ps 相乘和新增 1 x
max - ps 最大 1 x
分鐘 - 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 重複 3 x
ret - ps 子程序結尾 1 x
rsq - ps 倒數平方根 1 x
setp_comp 設定述詞快取器 1 x
sincos - ps 正弦和餘弦 8 x
子 - ps 減去 1 x
texkill - ps 終止像素轉譯 2 x
texld - ps_2_0和向上 取樣紋理 請參閱附注 1 x
texldb - ps 具有 w-component 中詳細層級偏差的紋理取樣 6 x
texldl - ps 從 w-component 使用詳細層級的紋理取樣 請參閱附注 2 x x
texldd - ps 使用使用者提供的漸層進行紋理取樣 3 x
texldp - ps 具有投影除以 w-component 的紋理取樣 請參閱附注 3 x

 

筆記:

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

像素著色器指示