D3DTEXTUREOP
ステージごとのテクスチャ ブレンディング処理を定義する。
typedef enum _D3DTEXTUREOP {
D3DTOP_DISABLE = 1,
D3DTOP_SELECTARG1 = 2,
D3DTOP_SELECTARG2 = 3,
D3DTOP_MODULATE = 4,
D3DTOP_MODULATE2X = 5,
D3DTOP_MODULATE4X = 6,
D3DTOP_ADD = 7,
D3DTOP_ADDSIGNED = 8,
D3DTOP_ADDSIGNED2X = 9,
D3DTOP_SUBTRACT = 10,
D3DTOP_ADDSMOOTH = 11,
D3DTOP_BLENDDIFFUSEALPHA = 12,
D3DTOP_BLENDTEXTUREALPHA = 13,
D3DTOP_BLENDFACTORALPHA = 14,
D3DTOP_BLENDTEXTUREALPHAPM = 15,
D3DTOP_BLENDCURRENTALPHA = 16,
D3DTOP_PREMODULATE = 17,
D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
D3DTOP_MODULATECOLOR_ADDALPHA = 19,
D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
D3DTOP_BUMPENVMAP = 22,
D3DTOP_BUMPENVMAPLUMINANCE = 23,
D3DTOP_DOTPRODUCT3 = 24,
D3DTOP_MULTIPLYADD = 25,
D3DTOP_LERP = 26,
D3DTOP_FORCE_DWORD = 0x7fffffff,
} D3DTEXTUREOP;
定数
- 制御メンバ
- D3DTOP_DISABLE
- このテクスチャ ステージ、およびより高いインデックスを持つステージからの出力をすべて無効にする。テクスチャ マッピングを無効にするには、これを最初のテクスチャ ステージ (ステージ 0) のカラー処理として設定する。カラー処理が有効になっているときは、アルファ処理を無効にすることはできない。カラー ブレンディングが有効な場合、アルファ処理を D3DTOP_DISABLE に設定すると、不定の動作が生じる。
- D3DTOP_SELECTARG1
- このテクスチャ ステージの最初の色、またはアルファ引数を変更せずに出力として使用する。この処理は、D3DTSS_COLOROP テクスチャ ステージ ステートで使用すると色引数に影響を与え、D3DTSS_ALPHAOP で使用した場合にはアルファ引数に影響を与える。
- D3DTOP_SELECTARG2
- このテクスチャ ステージの 2 番目の色、またはアルファ引数を変更せずに出力として使用する。この処理は、D3DTSS_COLOROP テクスチャ ステージ ステートで使用すると色引数に影響を与え、D3DTSS_ALPHAOP で使用した場合にはアルファ引数に影響を与える。
- 乗算メンバ
- D3DTOP_MODULATE
- 引数の成分を乗算する。
- D3DTOP_MODULATE2X
- 引数の成分を乗算し、その積を左に 1 ビットだけシフト (2 で乗算するのと同じ) して明るくする。
- D3DTOP_MODULATE4X
- 引数の成分を乗算し、その積を左に 2 ビットだけシフト (4 で乗算するのと同じ) して明るくする。
- 加減算メンバ
- D3DTOP_ADD
- 引数の成分を加算する。
- D3DTOP_ADDSIGNED
- バイアス値 -0.5 を引数の成分に加算し、値の有効範囲を -0.5 から 0.5 にする。
- D3DTOP_ADDSIGNED2X
- バイアス値 -0.5 を引数の成分に加算し、その積を左に 1 ビットだけシフトする。
- D3DTOP_SUBTRACT
- 第 1 引数の成分から、対応する第 2 引数の成分を減算する。
- D3DTOP_ADDSMOOTH
- 第 1 および第 2 引数を加算し、次にその積を合計から減算する。
- 線形アルファ ブレンディング メンバ
- D3DTOP_BLENDDIFFUSEALPHA、D3DTOP_BLENDTEXTUREALPHA、D3DTOP_BLENDFACTORALPHA、および D3DTOP_BLENDCURRENTALPHA
- 各頂点からの補間アルファ (D3DTOP_BLENDDIFFUSEALPHA)、このステージのテクスチャからのアルファ (D3DTOP_BLENDTEXTUREALPHA)、D3DRS_TEXTUREFACTOR レンダリング ステートで設定されるスカラー アルファ (D3DTOP_BLENDFACTORALPHA)、または前のテクスチャ ステージからのアルファ (D3DTOP_BLENDCURRENTALPHA) を使用して、このステージの線形ブレンディングを行う。
- D3DTOP_BLENDTEXTUREALPHAPM
- あらかじめ乗算されたアルファを使用するテクスチャ ステージの線形ブレンディングを実行する。
- スペキュラ マッピング メンバ
- D3DTOP_PREMODULATE
- 現在のテクスチャ ステージと次のテクスチャ ステージの間で乗算を行う。
- D3DTOP_MODULATEALPHA_ADDCOLOR
- 第 1 引数のアルファを使用して第 2 引数のカラーを調整し、その結果を第 1 引数に加算する。この処理は、カラー処理 (D3DTSS_COLOROP) でのみサポートされる。
- D3DTOP_MODULATECOLOR_ADDALPHA
- 引数を調整し、第 1 引数のアルファを加算する。この処理は、カラー処理 (D3DTSS_COLOROP) でのみサポートされる。
- D3DTOP_MODULATEINVALPHA_ADDCOLOR
- D3DTOP_MODULATEALPHA_ADDCOLOR に類似しているが、第 1 引数のアルファの逆数を使用する。この処理は、カラー処理 (D3DTSS_COLOROP) でのみサポートされる。
- D3DTOP_MODULATEINVCOLOR_ADDALPHA
- D3DTOP_MODULATECOLOR_ADDALPHA に類似しているが、第 1 引数の色の逆数を使用する。この処理は、カラー処理 (D3DTSS_COLOROP) でのみサポートされる。
- バンプマッピング メンバ
- D3DTOP_BUMPENVMAP
- 次のテクスチャ ステージの環境マップ (輝度なし) による、ピクセル単位のバンプ マッピングを実行する。この処理は、カラー処理 (D3DTSS_COLOROP) でのみサポートされる。
- D3DTOP_BUMPENVMAPLUMINANCE
- 次のテクスチャ ステージの環境マップ (輝度あり) による、ピクセル単位のバンプ マッピングを実行する。この処理は、カラー処理 (D3DTSS_COLOROP) でのみサポートされる。
- D3DTOP_DOTPRODUCT3
- 各引数の要素を (符号付要素として) 乗算して積を加算し、得られた合計値をすべてのカラー チャネルに、アルファを含めて複製する。この処理がサポートされるのはカラー処理とアルファ処理に対してである。
DirectX 6.0 および 7.0 のマルチテクスチャ処理では、上記の入力は、符号付きデータをシミュレートするため、使用する前にすべて 0.5 シフトされ (y = x - 0.5)、結果のスカラーは正の値に制限され、3 つの出力チャネルすべてに複製される。また、カラー処理としては、rgb 成分を更新したアルファを更新しないことに注意すること。
ただし、DirectX 8.0 シェーダでは、出力を .rgb または .a コンポーネント、またはその両方 (デフォルト) にルーティングすることを指定できる。アルファ チャネルで個別のスカラー処理を指定することもできる。
- 三項テクスチャ ブレンディング メンバ
- D3DTOP_MULTIPLYADD
- 積和演算を実行する。最後の 2 つの引数を取り、これらを乗算し、残りの入力/ソース引数に加算し、これを結果に配置する。
SRGBA = Arg1 + Arg2 * Arg3
- D3DTOP_LERP
- 第 1 ソース引数で指定された割合で、第 2 および第 3 ソース引数の間を線形補間する。
SRGBA = (Arg1) * Arg2 + (1-Arg1) * Arg3.
- その他のメンバ
- D3DTOP_FORCE_DWORD
- この列挙型を強制的に 32 ビット サイズにコンパイルする。この値は使用されていない。
注意
この列挙型のメンバは、D3DTSS_COLOROP または D3DTSS_ALPHAOP 値で IDirect3DDevice8::SetTextureStageState メソッドを呼び出してカラー処理またはアルファ処理を設定する際に使用される。
上の式では、SRGBA はテクスチャ処理で作成される RGBA 色、Arg1、Arg2、および Arg3 はテクスチャ引数の完全 RGBA 色である。引数の個々の要素は、添字を付けて表記される。たとえば、引数 1 のアルファ要素は Arg1A として表される。
ヘッダー : D3d8types.h で宣言。
参照
D3DTEXTURESTAGESTATETYPE