D3DTEXTUREOP 列挙型

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
    D3DRS_TEXTUREFACTOR レンダリング ステートで設定したスカラー アルファを使って、このテクスチャ ステージの線形ブレンディングを行う。

    等式

  • D3DTOP_BLENDTEXTUREALPHAPM
    あらかじめ乗算されたアルファを使用するテクスチャ ステージの線形ブレンディングを実行する。

    等式

  • D3DTOP_BLENDCURRENTALPHA
    前のテクスチャ ステージからのアルファを使って、このテクスチャ ステージの線形ブレンディングを行う。

    等式

  • D3DTOP_PREMODULATE
    D3DTOP_PREMODULATE はステージ n で設定される。ステージ n の出力は arg1 である。さらに、ステージ n+1 にテクスチャがある場合、ステージ n+1 の D3DTA_CURRENT には、ステージ n+1 のテクスチャがあらかじめ乗算されている。

  • D3DTOP_MODULATEALPHA_ADDCOLOR
    第 1 引数のアルファを使用して第 2 引数の色を乗算し、その結果を第 1 引数に加算する。この処理は、カラー処理 (D3DTSS_COLOROP) でのみサポートされる。

    等式

  • D3DTOP_MODULATECOLOR_ADDALPHA
    引数を乗算し、第 1 引数のアルファを加算する。この処理は、カラー処理 (D3DTSS_COLOROP) でのみサポートされる。

    等式

  • D3DTOP_MODULATEINVALPHA_ADDCOLOR
    D3DTOP_MODULATEALPHA_ADDCOLOR に類似しているが、第 1 引数のアルファの 1 の補数を使う。この処理は、カラー処理 (D3DTSS_COLOROP) でのみサポートされる。

    等式

  • D3DTOP_MODULATEINVCOLOR_ADDALPHA
    D3DTOP_MODULATECOLOR_ADDALPHA に類似しているが、第 1 引数の色の 1 の補数を使う。この処理は、カラー処理 (D3DTSS_COLOROP) でのみサポートされる。

    等式

  • D3DTOP_BUMPENVMAP
    次のテクスチャ ステージの環境マップ (輝度なし) による、ピクセル単位のバンプ マッピングを実行する。この処理は、カラー処理 (D3DTSS_COLOROP) でのみサポートされる。

  • D3DTOP_BUMPENVMAPLUMINANCE
    次のテクスチャ ステージの環境マップ (輝度あり) による、ピクセル単位のバンプ マッピングを実行する。この処理は、カラー処理 (D3DTSS_COLOROP) でのみサポートされる。

  • D3DTOP_DOTPRODUCT3
    各引数の要素を (符号付要素として) 乗算して積を加算し、得られた合計値をすべてのカラー チャンネルに、アルファを含めて複製する。この処理がサポートされるのはカラー処理とアルファ処理に対してである。

    等式

    Microsoft® DirectX® 6.0 および DirectX 7.0 のマルチテクスチャ処理では、上記の入力は、符号付きデータをシミュレートするため、使う前にすべて 0.5 シフトする (y = x - 0.5)。結果のスカラーは、正の値に制限され、3 つの出力チャンネルすべてに複製される。また、カラー処理としては、rgb 成分を更新したアルファを更新しないので注意すること。

    ただし、DirectX 8.1 シェーダでは、出力を .rgb 成分または .a 成分、あるいはその両方 (デフォルト) にルーティングすることを指定できる。アルファ チャンネルで個別のスカラー処理の指定も可能である。

  • D3DTOP_MULTIPLYADD
    積和演算を実行する。最後の 2 つの引数を取り、これらを乗算し、残りの入力/ソース引数に加算し、これを結果に配置する。

    SRGBA= Arg1 + Arg2 * Arg3

  • D3DTOP_LERP
    第 1 ソース引数で指定された割合で、第 2 および第 3 ソース引数の間を線形補間する。

    SRGBA= (SRGBA