ps_3_0 レジスタ
ピクセル シェーダーは、頂点データの取得、ピクセル データの出力、計算中の一時的な結果の保持、テクスチャ サンプリング ステージの識別を行うレジスタに依存します。 レジスタにはいくつかの種類があり、それぞれに固有の機能があります。 このセクションには、ピクセル シェーダー バージョン 3_0 によって実装された入力レジスタと出力レジスタの参照情報が含まれています。
新しいレジスタ
入力レジスタ
入力レジスタ (v#) が完全に浮動小数点になり、 テクスチャ座標レジスタ(t#) が統合されました。 シェーダーの上部にある dcl_semantics (sm3 - ps asm) は、特定のInput_Registerに含まれている内容を記述するために使用されます。 このモデルでは、ピクセルの種類のセマンティックが導入されます (頂点側に似ています)。 入力レジスタが色 (テクスチャ座標など) として定義されている場合、クランプは実行されません。 色として定義されたレジスタの評価は、マルチサンプリング時のテクスチャ座標とは異なります。
Face Register
このモデルの顔レジスタ (vFace) は新しいモデルです。 これは、最終的にプリミティブ領域を含む浮動小数点スカラー レジスタです。 ただし、ps_3_0では、このレジスタの符号のみが有効です。 したがって、値が 0 未満の場合 (符号ビットが負の値に設定されます)、プリミティブは背面になります (領域は負、反時計回り)。 したがって、ps_3_0では、このレジスタを 0 (> 0 または < 0) と比較するだけで意味があります。 ピクセル シェーダー内では、どの照明手法を使用するかをアプリケーションで決定できます。 この方法で両面照明を実現できます。 このレジスタには宣言が必要であるため、宣言されていない使用はエラーとしてフラグが設定されます。 行およびポイント プリミティブの場合、このレジスタは未定義です。 顔レジスタを条件として使用できるのは、 setp_comp - ps、 if_comp - ps、または break_comp - ps です。
ループ カウンター レジスタ
ループ カウンター レジスタ (aL) は、このモデルの新しいモデルです。 ループ (psendloop - ps/ ブロック) の各実行で、自動的にインクリメントされます。 必要に応じて、 ブロックで相対アドレス指定に使用できます。 ループの外部でループ カウンター レジスタを使用することは無効です。
Position Register
Position Register (vPos) は、このモデルの新しいモデルです。 対応するチャネルの現在のピクセル (x、y) が含まれています。 (z,w) チャネルは未定義です。 このレジスタには宣言が必要であるため、宣言されていない使用はエラーとしてフラグが設定されます。 宣言する場合、このレジスタには、.x、.y、.xy のいずれかのマスクが必要です。
入力レジスタの種類
登録 | Name | Count | R/W | # ポートの読み取り | # Reads/inst | Dimension | RelAddr | デフォルト | DCL が必要 |
---|---|---|---|---|---|---|---|---|---|
V# | 入力レジスタ | 10 | R | 1 | 無制限 | 4 | アル | なし | はい |
R# | 一時登録 | 32 | R/W | 3 | 無制限 | 4 | いいえ | なし | いいえ |
c# | 定数 Float レジスタ | 224 | R | 1 | 無制限 | 4 | いいえ | 0000 | いいえ |
私# | 定数整数レジスタ | 16 | R | 1 | 1 | 4 | いいえ | 0000 | いいえ |
B# | 定数ブール値レジスタ | 16 | R | 1 | 1 | 1 | いいえ | FALSE | いいえ |
p0 | 述語レジスタ | 1 | R | 1 | 1 | 1 | いいえ | なし | いいえ |
S# | サンプラー (Direct3D 9 asm-ps) | 16 | R | 1 | 1 | 4 | いいえ | 注 1 を参照 | はい |
vFace | Face_Register | 1 | R | 1 | 無制限 | 1 | いいえ | なし | はい |
vPos | Position_Register | 1 | R | 1 | 無制限 | 4 | いいえ | なし | はい |
アル | Loop_Counter_Register | 1 | R | 1 | 無制限 | 1 | 該当なし | なし | いいえ |
メモ:
- サンプラー参照の既定値は存在しますが、値はテクスチャ形式によって異なります。
読み取りポートの数は、1 つの命令で読み取ることができる (レジスタの種類ごとに) 異なるレジスタの数です。
出力レジスタの種類
登録 | Name | Count | R/W | Dimension | RelAddr | デフォルト | DCL が必要 |
---|---|---|---|---|---|---|---|
Oc# | 出力カラー レジスタ | 「複数要素テクスチャ (Direct3D 9)」を参照してください。 | W | 4 | いいえ | なし | いいえ |
oDepth | 出力深度レジスタ | 1 | W | 1 | いいえ | なし | いいえ |
関連トピック