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テクスチャ ステージ状態で使用する場合は color 引数、D3DTSS_ALPHAOPで使用する場合は alpha 引数に影響します。

この引数の数式 (s(rgba) = arg1)

D3DTOP_SELECTARG2

このテクスチャ ステージの 2 番目の色またはアルファ引数 (変更なし) を出力として使用します。 この操作は、D3DTSS_COLOROP テクスチャ ステージの状態で使用する場合は color 引数、D3DTSS_ALPHAOPで使用する場合は alpha 引数に影響します。

この引数の数式 (s(rgba) = arg2)

D3DTOP_MODULATE

引数のコンポーネントを乗算します。

モジュレート演算の数式 (s(rgba) = arg1 x arg 2)

D3DTOP_MODULATE2X

引数のコンポーネントを乗算し、明るくするために積を左の 1 ビット (実質的に 2 を乗算) にシフトします。

モジュレート 2x 演算の数式 (s(rgba) = (arg1 x arg 2) の後、左 1 にシフトします)

D3DTOP_MODULATE4X

引数のコンポーネントを乗算し、積を左の 2 ビット (実質的に 4 で乗算) にシフトして明るくします。

モジュレート4x演算の式(s(rgba)=(arg1 x arg 2)、次に左2にシフトする)

D3DTOP_ADD

引数のコンポーネントを追加します。

加算演算の式 (s(rgba) = arg1 + arg 2)

D3DTOP_ADDSIGNED

- 0.5 バイアスを持つ引数のコンポーネントを追加し、- 0.5 から 0.5 までの有効範囲の値を作成します。

符号付き演算の加算式 (s(rgba) = arg1 + arg 2 – 0.5)

D3DTOP_ADDSIGNED2X

- 0.5 バイアスを持つ引数のコンポーネントを追加し、積を左の 1 ビットにシフトします。

符号付き 2x 演算の加算式 ((s(rgba) = arg1 + arg 2 - 0.5) の後、左 1 にシフトします)

D3DTOP_SUBTRACT

最初の引数のコンポーネントから 2 番目の引数のコンポーネントを減算します。

減算演算の数式 (s(rgba) = arg1 - arg 2)

D3DTOP_ADDSMOOTH

1 番目と 2 番目の引数を追加します。その後、合計から製品を減算します。

スムーズ演算を追加する (s(rgba) = arg1 + arg 2 x (1 - arg1)) の数式

D3DTOP_BLENDDIFFUSEALPHA

各頂点から補間されたアルファを使用して、このテクスチャ ステージを直線的にブレンドします。

ブレンド拡散アルファ演算の数式 (s(rgba) = arg1 x alpha + arg 2 x (1 - alpha))

D3DTOP_BLENDTEXTUREALPHA

このステージのテクスチャのアルファを使用して、このテクスチャ ステージを直線的にブレンドします。

ブレンド テクスチャアルファ演算の数式 (s(rgba) = arg1 x alpha + arg 2 x (1 - alpha))

D3DTOP_BLENDFACTORALPHA

スカラー アルファ セットとD3DRS_TEXTUREFACTORレンダリング状態を使用して、このテクスチャ ステージを直線的にブレンドします。

blend factor alpha 演算の数式 (s(rgba) = arg1 x alpha + arg 2 x (1 - alpha))

D3DTOP_BLENDTEXTUREALPHAPM

事前乗算アルファを使用するテクスチャ ステージを直線的にブレンドします。

ブレンド テクスチャアルファ pm 演算の数式 (s(rgba) = arg1 + arg 2 x (1 - alpha))

D3DTOP_BLENDCURRENTALPHA

前のテクスチャ ステージから取得したアルファを使用して、このテクスチャ ステージを直線的にブレンドします。

ブレンド現在のアルファ演算の数式 (s(rgba) = arg1 x alpha + arg2 x (1 - alpha))

D3DTOP_PREMODULATE

D3DTOP_PREMODULATEはステージ n で設定されます。 ステージ n の出力は arg1 です。 さらに、ステージ n + 1 にテクスチャがある場合、ステージ n + 1 の任意のD3DTA_CURRENTは、ステージ n + 1 のテクスチャによって事前に乗算されます。

D3DTOP_MODULATEALPHA_ADDCOLOR

最初の引数のアルファを使用して、2 番目の引数の色を調整します。引数 1 に結果を追加します。 この操作は、カラー操作 (D3DTSS_COLOROP) でのみサポートされます。

add color モジュレート アルファ演算の数式 (s(rgba) = arg1(rgb) + arg1(a) x arg2(rgb))

D3DTOP_MODULATECOLOR_ADDALPHA

引数を調整します。次に、最初の引数のアルファを追加します。 この操作は、カラー操作 (D3DTSS_COLOROP) でのみサポートされます。

add alpha モジュレート カラー演算の数式 (s(rgba) = arg1(rgb) x arg2(rgb) + arg1(a))

D3DTOP_MODULATEINVALPHA_ADDCOLOR

D3DTOP_MODULATEALPHA_ADDCOLORに似ていますが、最初の引数のアルファの逆関数を使用します。 この操作は、カラー操作 (D3DTSS_COLOROP) でのみサポートされます。

色の追加の逆アルファ演算の数式 (s(rgba) = (1 - arg1(a)) x arg2(rgb) + arg1(rgb))

D3DTOP_MODULATEINVCOLOR_ADDALPHA

D3DTOP_MODULATECOLOR_ADDALPHAと同様ですが、最初の引数の色の逆関数を使用します。 この操作は、カラー操作 (D3DTSS_COLOROP) でのみサポートされます。

加算アルファ変調逆色演算の式 (s(rgba) = (1 - arg1(rgb)) x arg2(rgb) + arg1(a))

D3DTOP_BUMPENVMAP

輝度を使用せずに、次のテクスチャ ステージで環境マップを使用して、ピクセル単位のバンプ マッピングを実行します。 この操作は、カラー操作 (D3DTSS_COLOROP) でのみサポートされます。

D3DTOP_BUMPENVMAPLUMINANCE

次のテクスチャ ステージで環境マップを使用し、輝度を使用してピクセル単位のバンプ マッピングを実行します。 この操作は、カラー操作 (D3DTSS_COLOROP) でのみサポートされます。

D3DTOP_DOTPRODUCT3

各引数のコンポーネントを符号付きコンポーネントとしてモジュレートし、その製品を追加します。次に、アルファを含むすべてのカラー チャネルに合計をレプリケートします。 この操作は、色とアルファの操作でサポートされています。

ドット積 3 演算の数式 (s(rgba) = arg1(r) x arg2(r) + arg1(g) x arg2(g) + arg1(b) x arg2(b))

DirectX 6 および DirectX 7 では、符号付きデータをシミュレートするために使用する前に、上記の入力のマルチテキスト操作がすべて半分 (y = x - 0.5) シフトダウンされ、スカラー結果は正の値に自動的にクランプされ、3 つの出力チャネルすべてにレプリケートされます。 また、カラー操作ではアルファが更新されず、RGB コンポーネントが更新されるだけであることに注意してください。

ただし、DirectX 8.1 シェーダーでは、出力を .rgb または .a コンポーネントまたは両方 (既定値) にルーティングするように指定できます。 アルファ チャネルで別のスカラー演算を指定することもできます。

D3DTOP_MULTIPLYADD

乗算演算を実行します。 最後の 2 つの引数を受け取り、それらを乗算して、残りの入力/ソース引数に加算し、それを結果に配置します。

SRGBA = Arg1 + Arg2 * Arg3

D3DTOP_LERP

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 として表示されます。

必要条件

要件
ヘッダー
D3D9Types.h

関連項目

Direct3D 列挙

D3DTEXTURESTAGESTATETYPE