CONST_D3DTEXTUREOP
ステージごとのテクスチャ ブレンディング処理を定義する。
Enum CONST_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 (&H10)
D3DTOP_PREMODULATE = 17 (&H11)
D3DTOP_MODULATEALPHA_ADDCOLOR = 18 (&H12)
D3DTOP_MODULATECOLOR_ADDALPHA = 19 (&H13)
D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20 (&H14)
D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21 (&H15)
D3DTOP_BUMPENVMAP = 22 (&H16)
D3DTOP_BUMPENVMAPLUMINANCE = 23 (&H17)
D3DTOP_DOTPRODUCT3 = 24 (&H18)
D3DTOP_MULTIPLYADD = 25 (&H19)
D3DTOP_LERP = 26 (&H1A)
End Enum
定数
- 制御メンバ
- 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
注意
この型のメンバは、D3DTSS_COLOROP または D3DTSS_ALPHAOP テクスチャ ステージ ステート値を使用して Direct3DDevice8.SetTextureStageState メソッドを呼び出し、カラー処理やアルファ処理を設定するときに使われる。
上の式では、SRGBA はテクスチャ処理で作成される RGBA 色、Arg1 および Arg2 はテクスチャ引数の完全 RGBA 色である。引数の個々の成分は、添字を付けて表記される。たとえば、引数 1 のアルファ成分は Arg1A として表される。
参照
CONST_D3DTEXTURESTAGESTATETYPE