命令 - vs_3_0
命令 - vs_3_0
ここでは、頂点シェーダ バージョン 3_0 の命令に関するリファレンス情報を記載する。
次の表に示すように、頂点シェーダ命令にはいくつかの種類がある。右側の列の意味は次のとおりである。
- 命令スロット - 各命令で使う命令スロットの数。
- セットアップ - 算術命令以外の命令。すべてのシェーダにバージョン命令を持たせ、その命令は最初の命令でなければならない。
- 算術 - これらの命令は、シェーダ内での算術演算を行う。
- マクロ演算子 - これらの命令は、算術命令を結合して上位レベルの機能を実現する。マクロ演算子の使用はオプションである。基になる実装を最適化できるように、マクロ演算子、特に行列乗算命令 (m3x2、m3x3、m3x4、m4x3、m4x4) の使用を推奨する。
- フロー制御 - この命令は、ループ、反復、if...else...endif 比較などのフロー制御を追加する。
- テクスチャ - この命令は、テクスチャ アドレス参照をサポートする。
- 新規 - この命令は、このバージョンの新機能である。
セットアップ命令
名前 | 説明 | 命令スロット | セットアップ | 算術 | マクロ演算子 | テクスチャ | フロー制御 | 新規 |
---|---|---|---|---|---|---|---|---|
abs | 絶対値 | 1 | x | |||||
add | 2 つのベクトルの加算 | 1 | x | |||||
break | loop...endloop または rep...endrep ブロックを終了する | 1 | x | x | ||||
break_comp | 比較に基づいて、loop...endloop または rep...endrep ブロックを終了する | 3 | x | x | ||||
break pred | プレディケーションに基づいて、loop...endloop または rep...endrep ブロックを終了する | 3 | x | x | ||||
call | サブルーチンを呼び出す | 2 | x | x | ||||
callnz pred | プレディケーションのレジスタがゼロでない場合に、サブルーチンを呼び出す | 3 | x | x | ||||
crs | 外積 | 2 | x | |||||
dcl_usage | 入力頂点レジスタを宣言する (「レジスタ - vs_3_0」を参照すること) | 0 | x | |||||
dcl_textureType | サンプラのテクスチャ ディメンジョンを宣言する | 0 | x | x | ||||
def | 定数の定義 | 0 | x | |||||
defb | ブール型定数を定義する | 0 | x | |||||
defi | 整数型定数を宣言する | 0 | x | |||||
dp3 | 3 成分の内積 | 1 | x | |||||
dp4 | 3 成分の内積 | 1 | x | |||||
dst | 距離 | 1 | x | |||||
else | else ブロックの開始 | 1 | x | |||||
endif | if...else ブロックの終了 | 1 | x | |||||
endloop | loop ブロックを終了する | 2 | x | |||||
endrep | repeat ブロックの終了 | 2 | x | |||||
exp | 完全精度の 2x | 1 | x | |||||
expp | 部分精度の 2x | 1 | x | |||||
frc | 小数部 | 1 | x | |||||
if | ブール値の条件を使って、if ブロックを開始する | 3 | x | x | ||||
if comp | 比較に基づいて、if ブロックを開始する | 3 | x | x | ||||
if pred | プレディケーションの条件に基づいて、if ブロックを開始する | 3 | x | x | ||||
label | ラベルを付ける | 0 | x | |||||
lit | ライティングの計算 | 3 | x | |||||
log | 完全精度の log2(x) | 1 | x | |||||
logp | 部分精度の log2(x) | 1 | x | |||||
loop | ループ | 3 | x | |||||
lrp | 線形補間 | 2 | x | |||||
m3x2 | 3x2 乗算 | 2 | x | |||||
m3x3 | 3x3 乗算 | 3 | x | |||||
m3x4 | 3x4 乗算 | 4 | x | |||||
m4x3 | 4x3 乗算 | 3 | x | |||||
m4x4 | 4x4 乗算 | 4 | x | |||||
mad | 積和 | 1 | x | |||||
max | 最大 | 1 | x | |||||
min | 最小 | 1 | x | |||||
mov | 移動 | 1 | x | |||||
mova | 浮動小数点レジスタから整数レジスタにデータを移動する | 1 | x | |||||
mul | 乗算 | 1 | x | |||||
nop | 空命令 (何の演算も実行しない) | 1 | x | |||||
nrm | 正規化 | 3 | x | |||||
pow | 2x | 3 | x | |||||
rcp | 逆数 | 1 | x | |||||
rep | 繰り返す | 3 | x | |||||
ret | サブルーチンの終了 | 1 | x | |||||
rsq | 逆数平方根 | 1 | x | |||||
setp | プレディケーション レジスタを設定する | 1 | x | |||||
sge | 以上 | 1 | x | |||||
sgn | 符号 | 3 | x | |||||
sincos | 正弦と余弦 | 8 | x | |||||
slt | より小さい | 1 | x | |||||
texldl | ユーザーが調整可能な詳細レベル (LOD) のテクスチャのロード | 2+3CUBE | x | x | ||||
vs | バージョン | 0 | x |