Microsoft DirectX 8.0 (C++)

D3DTEXTURESTAGESTATETYPE

テクスチャ ステージ ステートを定義する。

typedef enum _D3DTEXTURESTAGESTATETYPE {
    D3DTSS_COLOROP               =  1,
    D3DTSS_COLORARG1             =  2,
    D3DTSS_COLORARG2             =  3,
    D3DTSS_ALPHAOP               =  4,
    D3DTSS_ALPHAARG1             =  5,
    D3DTSS_ALPHAARG2             =  6,
    D3DTSS_BUMPENVMAT00          =  7,
    D3DTSS_BUMPENVMAT01          =  8,
    D3DTSS_BUMPENVMAT10          =  9,
    D3DTSS_BUMPENVMAT11          = 10,
    D3DTSS_TEXCOORDINDEX         = 11,
    D3DTSS_ADDRESSU              = 13,
    D3DTSS_ADDRESSV              = 14,
    D3DTSS_BORDERCOLOR           = 15,
    D3DTSS_MAGFILTER             = 16,
    D3DTSS_MINFILTER             = 17,
    D3DTSS_MIPFILTER             = 18,
    D3DTSS_MIPMAPLODBIAS         = 19,
    D3DTSS_MAXMIPLEVEL           = 20,
    D3DTSS_MAXANISOTROPY         = 21,
    D3DTSS_BUMPENVLSCALE         = 22,
    D3DTSS_BUMPENVLOFFSET        = 23,
    D3DTSS_TEXTURETRANSFORMFLAGS = 24,
    D3DTSS_ADDRESSW              = 25,
    D3DTSS_COLORARG0             = 26,
    D3DTSS_ALPHAARG0             = 27,
    D3DTSS_RESULTARG             = 28,

    D3DTSS_FORCE_DWORD           = 0x7fffffff
} D3DTEXTURESTAGESTATETYPE;

定数

D3DTSS_COLOROP
テクスチャ ステージ ステートはテクスチャ カラー ブレンディング処理であり、D3DTEXTUREOP 列挙型のメンバにより識別される。最初のテクスチャ ステージ (ステージ 0) のデフォルト値は D3DTOP_MODULATE であり、それ以外のすべてのステージのデフォルト値は D3DTOP_DISABLE である。
D3DTSS_COLORARG1
テクスチャ ステージ ステートは、そのステージに対する最初の色引数であり、テクスチャ引数フラグにより識別される。デフォルトの引数は D3DTA_TEXTURE である。

読み書き用のテンポラリ レジスタの色を選択するには、D3DTA_TEMP を指定する。D3DTA_TEMP は、D3DPMISCCAPS_TSSARGTEMP デバイス能力が存在する場合にサポートされる。このレジスタのデフォルト値は、(0.0, 0.0, 0.0, 0.0) である。

D3DTSS_COLORARG2
テクスチャ ステージ ステートは、そのステージに対する 2 番目の色引数であり、テクスチャ引数フラグにより識別される。デフォルトの引数は D3DTA_CURRENT である。

読み書き用のテンポラリ レジスタの色を選択するには、D3DTA_TEMP を指定する。D3DTA_TEMP は、D3DPMISCCAPS_TSSARGTEMP デバイス能力が存在する場合にサポートされる。このレジスタのデフォルト値は、(0.0, 0.0, 0.0, 0.0) である。

D3DTSS_ALPHAOP
テクスチャ ステージ ステートは、テクスチャ アルファ ブレンディング処理であり、D3DTEXTUREOP 列挙型のメンバによって識別される。最初のテクスチャ ステージ (ステージ 0) のデフォルト値は D3DTOP_SELECTARG1 であり、それ以外のすべてのステージのデフォルト値は D3DTOP_DISABLE である。
D3DTSS_ALPHAARG1
テクスチャ ステージ ステートは、そのステージに対する最初のアルファ引数であり、テクスチャ引数フラグにより識別される。デフォルトの引数は D3DTA_TEXTURE である。ステージにテクスチャが設定されていない場合は、D3DTA_DIFFUSE がデフォルトの引数となる。

読み書き用のテンポラリ レジスタの色を選択するには、D3DTA_TEMP を指定する。D3DTA_TEMP は、D3DPMISCCAPS_TSSARGTEMP デバイス能力が存在する場合にサポートされる。このレジスタのデフォルト値は、(0.0, 0.0, 0.0, 0.0) である。

D3DTSS_ALPHAARG2
テクスチャ ステージ ステートは、ステージの 2 番目のアルファ引数であり、テクスチャ引数フラグにより識別される。デフォルトの引数は D3DTA_CURRENT である。

読み書き用のテンポラリ レジスタの色を選択するには、D3DTA_TEMP を指定する。D3DTA_TEMP は、D3DPMISCCAPS_TSSARGTEMP デバイス能力が存在する場合にサポートされる。このレジスタのデフォルト値は、(0.0, 0.0, 0.0, 0.0) である。

D3DTSS_BUMPENVMAT00
テクスチャ ステージ ステートは、バンプ マッピング行列の [0][0] 係数に対する浮動小数点値である。デフォルト値は 0.0 である。
D3DTSS_BUMPENVMAT01
テクスチャ ステージ ステートは、バンプ マッピング行列の [0][1] 係数に対する浮動小数点値である。デフォルト値は 0.0 である。
D3DTSS_BUMPENVMAT10
テクスチャ ステージ ステートは、バンプ マッピング行列の [1][0] 係数に対する浮動小数点値である。デフォルト値は 0.0 である。
D3DTSS_BUMPENVMAT11
テクスチャ ステージ ステートは、バンプ マッピング行列の [1][1] 係数に対する浮動小数点値である。デフォルト値は 0.0 である。
D3DTSS_TEXCOORDINDEX
このテクスチャ ステージで使用するために設定されたテクスチャ座標インデックス。このフラグは、固定機能頂点処理でのみ使用する。たとえば、頂点シェーダでは使用しない。頂点シェーダを使ってレンダリングするときは、各ステージのテクスチャ インデックスをデフォルト値に設定する必要がある。各ステージのデフォルトのインデックスは、ステージ インデックスと同じである。このステートには、テクスチャ ステージで使用する、各頂点の座標セットのゼロから始まるインデックスを設定する。頂点 1 個に対して最大 8 組までのテクスチャ座標を設定できる。頂点が、指定されたインデックスのテクスチャ座標セットを含んでいない場合は、u および v 座標 (0,0) がデフォルトで使用される。

また、アプリケーションでは、(設定されるインデックスとの論理和として) 以下のフラグのいずれかを設定して、テクスチャ トランスフォーム用の入力テクスチャ座標を自動的に生成するようMicrosoft® Direct3D® に要求できる。ゼロに解決される D3DTSS_TCI_PASSTHRU を除いて、設定されるインデックスと以下のフラグのいずれかを使用すると、テクスチャ ラッピング モードの決定にインデックスが厳密に使用される。このフラグは環境マッピングを行う場合には特に有効である。

D3DTSS_TCI_PASSTHRU
頂点フォーマット内の指定されたテクスチャ座標を使用する。この値はゼロに解決される。
D3DTSS_TCI_CAMERASPACENORMAL
このステージのテクスチャ トランスフォームの入力テクスチャ座標として、カメラ空間にトランスフォームされた頂点法線を使用する。
D3DTSS_TCI_CAMERASPACEPOSITION
このステージのテクスチャ トランスフォームの入力テクスチャ座標として、カメラ空間にトランスフォームされた頂点位置座標を使用する。
D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR
このステージのテクスチャ トランスフォームの入力テクスチャ座標として、カメラ空間にトランスフォームされた反射ベクトルを使用する。反射ベクトルは入力頂点位置座標と法線ベクトルから計算される。
D3DTSS_ADDRESSU
D3DTEXTUREADDRESS 列挙型のメンバ。u 座標で使用するテクスチャ アドレッシング方法を選択する。デフォルト値は D3DTADDRESS_WRAP である。
D3DTSS_ADDRESSV
D3DTEXTUREADDRESS 列挙型のメンバ。v 座標で使用するテクスチャ アドレッシング方法を選択する。デフォルト値は D3DTADDRESS_WRAP である。
D3DTSS_BORDERCOLOR
[0.0,1.0] の範囲の外にあるテクスチャ座標のラスタ化を実行するときに使用する色を記述する D3DCOLOR 値。デフォルト色は 0x00000000 である。
D3DTSS_MAGFILTER
テクスチャをプリミティブにレンダリングするときに使用するテクスチャ拡大フィルタを示す D3DTEXTUREFILTERTYPE 列挙型のメンバ。デフォルト値は D3DTEXF_POINT である。
D3DTSS_MINFILTER
D3DTEXTUREFILTERTYPE 列挙型のメンバで、テクスチャをプリミティブ上へレンダリングするときに使用するテクスチャ縮小フィルタを示す。デフォルト値は D3DTEXF_POINT である。
D3DTSS_MIPFILTER
D3DTEXTUREFILTERTYPE 列挙型のメンバで、ミップマップ レベル間で使用するテクスチャ フィルタを示す。デフォルト値は D3DTEXF_NONE である。
D3DTSS_MIPMAPLODBIAS
ミップマップ詳細バイアスのレベル。これを利用すると、テクスチャに質量感を与えたり、ぼやけた感じを与えることができる。デフォルト値は 0 である。このステートの値は浮動小数点値である。IDirect3DDevice8::SetTextureStageState および IDirect3DDevice8::GetTextureStageStateDWORD 値を使用するため、以下のコード例で示すように、値を格納した変数をキャストしなければならない。
pd3dDevice->SetTextureStageState(D3DTSS_MIPMAPLODBIAS, *((LPDWORD) (&fBias)));

バイアスの各単位 (+/-1.0) は、正確に 1 ミップマップ レベルごとに選択範囲を変更する。負のバイアスは、使用するミップマップ レベルを大きくする。結果はシャープになるが、ぎざぎざしたイメージになる。正のバイアスは、使用するミップマップ レベルを小さくする。結果はぼやけたイメージになる。また、正のバイアスを指定すると、参照されるテクスチャ データが少なくなり、システムによってはパフォーマンスが向上する場合がある。

D3DTSS_MAXMIPLEVEL
アプリケーションで許容する最大ミップマップ詳細レベル ミップマップ チェーンの先頭を始点とするインデックスとして表現される。低い値の方が、ミップマップ チェーン内の高い詳細レベルを表す。0 がデフォルト値で、全レベルが使用可能であることを示す。0 以外の値は、指定されたインデックスより高い詳細レベルのミップマップを表示できないことを示す。
D3DTSS_MAXANISOTROPY
異方性レベルの最大値。デフォルト値は 1 である。
D3DTSS_BUMPENVLSCALE
バンプマップ輝度に使用する浮動小数点数のスケール値。デフォルト値は 0.0 である。
D3DTSS_BUMPENVLOFFSET
バンプマップ輝度に使用する浮動小数点数のオフセット。デフォルト値は 0.0 である。
D3DTSS_TEXTURETRANSFORMFLAGS
テクスチャ ステージのテクスチャ座標のトランスフォームを制御する D3DTEXTURETRANSFORMFLAGS 列挙型のメンバ。デフォルトは D3DTTFF_DISABLE である。
D3DTSS_ADDRESSW
D3DTEXTUREADDRESS 列挙型のメンバ。w 座標で使用するテクスチャ アドレッシング方法を選択する。デフォルト値は D3DTADDRESS_WRAP である。
D3DTSS_COLORARG0
三項演算 (積和および線形補間) の 3 番目の色オペランドの設定。テクスチャ引数フラグによって識別される。この設定は、D3DTEXOPCAPS_MULTIPLYADD または D3DTEXOPCAPS_LERP デバイス能力が存在する場合にサポートされる。

読み書き用のテンポラリ レジスタの色を選択するには、D3DTA_TEMP を指定する。D3DTA_TEMP は、D3DPMISCCAPS_TSSARGTEMP デバイス能力が存在する場合にサポートされる。このレジスタのデフォルト値は、(0.0, 0.0, 0.0, 0.0) である。

D3DTSS_ALPHAARG0
三項演算 (積和および線形補間) のアルファ チャネル セレクタ オペランドの設定。テクスチャ引数フラグによって識別される。この設定は、D3DTEXOPCAPS_MULTIPLYADD または D3DTEXOPCAPS_LERP デバイス能力が存在する場合にサポートされる。

読み書き用のテンポラリ レジスタの色を選択するには、D3DTA_TEMP を指定する。D3DTA_TEMP は、D3DPMISCCAPS_TSSARGTEMP デバイス能力が存在する場合にサポートされる。このレジスタのデフォルト値は、(0.0, 0.0, 0.0, 0.0) である。

D3DTSS_RESULTARG
このステージの結果のデスティネーション レジスタを選択するための設定。テクスチャ引数フラグによって識別される。この値は、D3DTA_CURRENT (デフォルト値) または D3DTA_TEMP に設定できる。D3DTA_TEMP は、入力引数として以降のステージに読み込むことができる単一のテンポラリ レジスタである。フォグ ブレンダおよびフレーム バッファに渡される最終的な色は D3DTA_CURRENT から取得されるので、最後にアクティブなテクスチャ ステージ ステートはカレントへの書き込みに設定しなければならない。

この設定は、D3DPMISCCAPS_TSSARGTEMP デバイス能力が存在する場合にサポートされる。

D3DTSS_FORCE_DWORD
この列挙型を強制的に 32 ビット サイズにコンパイルする。この値は使用されていない。

注意

この列挙型のメンバは、テクスチャ ステート値を取得および設定するために IDirect3DDevice8::GetTextureStageState メソッドおよび IDirect3DDevice8::SetTextureStageState メソッドで使用する。

D3DTSS_BUMPENVMAT00、D3DTSS_BUMPENVMAT01、D3DTSS_BUMPENVMAT10、および D3DTSS_BUMPENVMAT11 バンプ マッピング行列係数の有効範囲は、-8.0 以上 8.0 未満である。この範囲は、数学的には [-8.0,8.0] と表記する。

動作環境

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

参照

IDirect3DDevice8::GetTextureStageStateIDirect3DDevice8::SetTextureStageState