Microsoft DirectX 8.0 (C++) |
Direct3DX 頂点シェーダ アセンブラでは、次の一般的な命令がサポートされている。
add | 加算 |
dp3 | 3 要素の内積 |
dp4 | 4 要素の内積 |
dst | 距離ベクトル |
expp | 指数 10 ビット精度 |
lit | ライティング係数 |
logp | 対数 10 ビット精度 |
mad | 乗算と加算 |
max | 最大 |
min | 最小 |
mov | 移動 |
mul | 乗算 |
rcp | 逆数 |
rsq | 逆数平方根 |
sge | 以上 |
slt | 未満 |
sub | 減算 |
各ソース オペランドは、ある要素を全要素にコピーしたり複製など、読み取り時に自由に入れ換えできる。各ソース オペランドは正負を反転できる。
デスティネーション レジスタへの書き込みには、個々の要素のマスキングを含めることができる。つまり、特定の成分 (x、y、z、または w) だけが更新される。書き込み時の入れ換えや正負の反転はサポートされていない。したがって、出力マスクは、x、y、z、そして w の順序でなければならない。
ソフトウェア エミュレーション フロントエンドは、出力レジスタ書き込みでのマスクを使って、出力頂点の中でシェーダが変更した部分を検出し、それに従って、ラスタ化のみの使用のためにハードウェアに送信するための、出力の柔軟な頂点フォーマット (FVF) を計算する。
ピクセル シェーダ言語とは異なり、頂点シェーダ言語では線形補間ブレンディング命令はサポートされておらず、dp3 演算子は自動的に負の結果を 0.0 に制限しないことに注意すること。