Microsoft DirectX 8.0 (C++)

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 色、Arg1Arg2、および Arg3 はテクスチャ引数の完全 RGBA 色である。引数の個々の要素は、添字を付けて表記される。たとえば、引数 1 のアルファ要素は Arg1A として表される。

動作環境

  ヘッダー : D3d8types.h で宣言。

参照

D3DTEXTURESTAGESTATETYPE