次の方法で共有


命令 - vs_2_0

命令 - vs_2_0

ここでは、頂点シェーダ バージョン 2_0 の命令に関するリファレンス情報を記載する。

表に示すように、頂点シェーダの命令にはいくつかの種類がある。右側の列の意味は、次のとおりである。

  • 命令スロット - 各命令が使う命令スロット数。
  • セットアップ - 非算術命令。各シェーダにはバージョン命令が必要であり、これは最初の命令でなければならない。
  • 算術 - この命令は、シェーダ内での算術演算を行う。
  • マクロ演算子 - この命令は、算術命令を組み合わせてより高度な機能を実現する。マクロ演算子の使用はオプションである。基になる実装を最適化できるように、マクロ演算子、特に行列乗算命令 (m3x2、m3x3、m3x4、m4x3、m4x4) の使用を推奨する。
  • フロー制御 - この命令は、loop...endloopif...else...endif のようなフロー制御能力と、サブルーチン呼び出しを追加する。
  • 新規 - この呼び出しは、このバージョンの新機能である。

命令セット

名前 説明 命令スロット セットアップ 算術 マクロ演算子 フロー制御 新規
abs 絶対値 1 x x
add 2 つのベクトルの加算 1 x
call サブルーチンを呼び出す 2 x x
callnz 0 でない場合にサブルーチンを呼び出す 3 x x
crs 外積 2 x x
dcl_usage 入力頂点レジスタを宣言する (「レジスタ - vs_2_0」を参照すること) 0 x
def 浮動小数点定数を定義する 0 x
defb ブール型定数を定義する 0 x x
defi 整数型定数を定義する 0 x x
dp3 3 成分の内積 1 x
dp4 4 要素の内積 1 x
dst 距離関連のデータを計算する 1 x
else else ブロックを開始する 1 x x x
endif if...else ブロックを終了する 1 x x
endloop loop ブロックを終了する 2 x x
endrep repeat ブロックを終了する 2 x x
exp 完全精度の 2x 1 x
expp 部分精度の 2x 1 x x
frc 小数部 1 x
if if ブロックを開始する 3 x x
label ラベルを付ける 0 x x
lit 部分的なライティング計算 3 x
log 完全精度の log2(x) 1 x
logp 部分精度の log2(x) 1 x
loop ループ 3 x x
lrp 線形補間 2 x x
m3x2 3 × 2 行列乗算 2 x
m3x3 3 × 3 行列乗算 3 x
m3x4 3 × 4 行列乗算 4 x
m4x3 4 × 3 行列乗算 3 x
m4x4 4 × 4 行列乗算 4 x
mad 積和 1 x
max 最大 1 x
min 最小 1 x
mov 移動 1 x
mova 浮動小数点レジスタからアドレス レジスタ (a0) にデータを移動する 1 x x
mul 乗算 1 x
nop 空命令 (何の演算も実行しない) 1 x
nrm 4D ベクトルを正規化する 3 x x
pow xy 3 x x
rcp 逆数 1 x
rep 繰り返す 3 x x
ret サブルーチンまたはメインの終了 1 x x
rsq 逆数平方根 1 x
sge 以上 1 x
sgn 正負の符号 3 x x
sincos 正弦と余弦 8 x x
slt より小さい 1 x
vs 頂点シェーダのバージョン 0 x