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, *LPD3DTEXTUREOP;

定数

  • D3DTOP_DISABLE
    このテクスチャー ステージ、およびこれより高いインデックスのステージからの出力をすべて無効にします。テクスチャー マッピングを無効にするには、これを最初のテクスチャー ステージ (ステージ 0) のカラー処理として設定します。カラー処理が有効である場合は、アルファ処理を無効にすることはできません。カラー ブレンディングが有効である場合にアルファ処理を D3DTOP_DISABLE に設定すると、不定動作の原因となります。
  • D3DTOP_SELECTARG1
    このテクスチャー ステージの最初のカラー、またはアルファ引数をそのまま変更せずに出力引数として使用します。D3DTSS_COLOROP テクスチャー ステージ ステートを使ってこの処理を行うとカラー引数に影響を与え、D3DTSS_ALPHAOP を使った場合にはアルファ引数に影響を与えます。 Math equation
  • D3DTOP_SELECTARG2
    このテクスチャー ステージの 2 番目のカラー、またはアルファ引数をそのまま変更せずに出力引数として使用します。D3DTSS_COLOROP テクスチャー ステージ ステートを使ってこの処理を行うとカラー引数に影響を与え、D3DTSS_ALPHAOP を使った場合にはアルファ引数に影響を与えます。 Math equation
  • D3DTOP_MODULATE
    引数の成分を乗算します。 Math equation
  • D3DTOP_MODULATE2X
    引数の成分を乗算し、その結果を左に 1 ビットだけシフト (2 で乗算するのと同じ) して明るくします。 Math equation
  • D3DTOP_MODULATE4X
    引数の成分を乗算し、その結果を左に 2 ビットだけシフト (4 で乗算するのと同じ) して明るくします。 Math equation
  • D3DTOP_ADD
    引数の成分を加算します。 Math equation
  • D3DTOP_ADDSIGNED
    バイアス値 -0.5 を引数の成分に加算し、成分の有効範囲を -0.5 から 0.5 までに調整します。 Math equation
  • D3DTOP_ADDSIGNED2X
    バイアス値 -0.5 を引数の成分に加算し、その結果を左に 1 ビットだけシフトします。 Math equation
  • D3DTOP_SUBTRACT
    第 1 引数の成分から、対応する第 2 引数の成分を減算します。 Math equation
  • D3DTOP_ADDSMOOTH
    第 1 引数に第 2 引数を加算し、次にその加算結果から両者の積を減算します。 Math equation
  • D3DTOP_BLENDDIFFUSEALPHA
    各頂点からの補間したアルファを使って、このテクスチャー ステージの線形ブレンドを実行します。 Math equation
  • D3DTOP_BLENDTEXTUREALPHA
    このステージのテクスチャーからのアルファを使って、このテクスチャー ステージの線形ブレンドを実行します。 Math equation
  • D3DTOP_BLENDFACTORALPHA
    D3DRS_TEXTUREFACTOR レンダリング ステートで設定されたスカラー アルファを使って、このテクスチャー ステージの線形ブレンドを実行します。 Math equation
  • D3DTOP_BLENDTEXTUREALPHAPM
    あらかじめ乗算済みのアルファを使用するテクスチャー ステージの線形ブレンドを実行します。 Math equation
  • D3DTOP_BLENDCURRENTALPHA
    前のテクスチャー ステージからのアルファを使って、このテクスチャー ステージの線形ブレンドを実行します。 Math equation
  • D3DTOP_PREMODULATE
    D3DTOP_PREMODULATE はステージ n に設定されます。ステージ n の出力は arg1 です。また、ステージ n + 1 にテクスチャーがある場合、ステージ n + 1 の D3DTA_CURRENT はステージ n + 1 のテクスチャーとあらかじめ乗算されます。
  • D3DTOP_MODULATEALPHA_ADDCOLOR
    第 1 引数のアルファと第 2 引数のカラーを乗算し、その結果を第 1 引数に加算します。この処理は、カラー処理 (D3DTSS_COLOROP) に対してのみサポートされます。 Math equation
  • D3DTOP_MODULATECOLOR_ADDALPHA
    引数を乗算し、第 1 引数のアルファを加算します。この処理は、カラー処理 (D3DTSS_COLOROP) に対してのみサポートされます。 Math equation
  • D3DTOP_MODULATEINVALPHA_ADDCOLOR
    D3DTOP_MODULATEALPHA_ADDCOLOR と似ていますが、ここでは第 1 引数のアルファの逆数を使用します。この処理は、カラー処理 (D3DTSS_COLOROP) に対してのみサポートされます。 Math equation
  • D3DTOP_MODULATEINVCOLOR_ADDALPHA
    D3DTOP_MODULATECOLOR_ADDALPHA と似ていますが、ここでは第 1 引数のカラーの逆数を使用します。この処理は、カラー処理 (D3DTSS_COLOROP) に対してのみサポートされます。 Math equation
  • D3DTOP_BUMPENVMAP
    次に示すテクスチャー ステージの環境マップを使用して、ピクセル単位で輝度のないバンプ マッピングを行います。この処理は、カラー処理 (D3DTSS_COLOROP) に対してのみサポートされます。
  • D3DTOP_BUMPENVMAPLUMINANCE
    次に示すテクスチャー ステージの環境マップを使用して、ピクセル単位で輝度付きのバンプ マッピングを行います。この処理は、カラー処理 (D3DTSS_COLOROP) に対してのみサポートされます。
  • D3DTOP_DOTPRODUCT3
    各引数の成分を符号付きの成分として乗算し、それらの積を加算し、その結果を、アルファを含めてすべてのカラー チャンネルに複製します。この処理はカラー処理とアルファ処理に対してサポートされます。 Math equation DirectX 6 および DirectX 7 のマルチテクスチャー処理では、上記の入力はすべて半分下にシフト (y = x - 0.5) されたうえで符号付きデータをシミュレートするのに使用され、スカラーの結果は自動的に正の値に固定され、3 つの出力チャンネルに複製されます。なお、これはカラー処理のようにアルファを更新せず、RGB 成分だけを更新することにも注意してください。 しかし、DirectX 8.1 のシェーダーでは、出力を .rgb または .a 成分、もしくはその両方 (デフォルト) に転送するよう指定できます。アルファ チャンネルに対して別個にスカラー処理を指定することもできます。
  • D3DTOP_MULTIPLYADD
    積和処理を行います。最後の 2 つの引数をとり、これらを乗算して残りの入力/ソース引数に加算し、これを結果レジスタに格納します。 SRGBA = Arg1 + Arg2 * Arg3
  • D3DTOP_LERP
    第 1 ソース引数で指定された割合で、第 2 および第 3 ソース引数の間を線形補間します。 SRGBA = (Arg1) * Arg2 + (1- Arg1) * Arg3.
  • D3DTOP_FORCE_DWORD
    コンパイル時に、この列挙型のサイズを 32 ビットにするために定義されています。この値を指定しない場合、一部のコンパイラでは列挙型を 32 ビット以外のサイズでコンパイル可能です。この定数が使用されることはありません。

解説 

このタイプのメンバーは、IDirect3DDevice9::SetTextureStageState メソッドで D3DTSS_COLOROP 値または D3DTSS_ALPHAOP 値を使ってカラー処理またはアルファ処理を設定するときに使用します。

前述の数式で、SRGBA はテクスチャー処理によって得られる RGBA カラー、 Arg1、Arg2、および Arg3 はテクスチャー引数の完全な RGBA カラーです。引数の要素は、それぞれ添字を付けて表記されます。たとえば、引数 1 のアルファ成分は Arg1A と表記されます。

要件

ヘッダー: D3D9FFTypes.h 宣言

関連項目

D3DTEXTURESTAGESTATETYPE