Microsoft DirectX 8.0 (C++) |
次の例は、ピクセル シェーダの簡単な使用方法と、Direct3DX ピクセル シェーダ アセンブラが解釈可能な構文を示している。
ps.1.0 // DirectX8 バージョン。 tex t0 // テクスチャを宣言する。 tex t1 // ライト マップを宣言する。 mov r0, t0 mul r0, r0, t1 // ライト マップを乗算する。 mul r0, r0, v0 // ディフューズを乗算する。 add r0, r0, v1 // スペキュラを追加する。
このピクセル シェーダは、ライト マップ、ディフューズ色、およびスペキュラの追加と共にベース テクスチャを宣言している。
ピクセル シェーダは、色およびアルファ ブレンディング処理およびテクスチャ アドレッシング処理を制御する。Microsoft® Direct3D® for Microsoft DirectX® 8.0 は、ピクセル処理およびテクスチャ ブレンディング処理を定義するためのプロシージャル パラダイムを定義する。このモデルには、仮想マシン アーキテクチャの定義、およびその動作を定義する一連の命令と修飾子が含まれる。このパラダイムは、プロセッサベースの実装である必要はない。
ピクセル シェーダは、次の方法で、DirectX 6.0 および 7.0 のマルチテクスチャ機能を拡張および標準化する。
このように拡張された柔軟性をより効率的にサポートするため、アプリケーション プログラミング インターフェイス (API) 構文が DWORD ペアから ASCII アセンブル コード構文に変更された。これにより、プロシージャル ピクセル シェーダによって提供される機能を公開することができる。
注 ピクセル シェーダを使用する場合、スペキュラの追加はレンダリング ステートによって特に制御されなくなり、必要に応じて実装するのはピクセル シェーダの役割となる。しかし、フォグ ブレンディングは固定機能構文によって適用される。
Direct3DX ピクセルシェーダ アセンブラの使用方法についての詳細は、「ピクセル シェーダ アセンブラ リファレンス」を参照すること。