Microsoft DirectX 8.0 (Visual Basic)

テクスチャ座標トランスフォームを有効にする

D3DTSS_TEXTURETRANSFORMFLAGS テクスチャ ステージ ステートは、テクスチャ座標トランスフォームの適用を制御する。このテクスチャ ステージ ステートの値は、CONST_D3DTEXTURETRANSFORMFLAGS 列挙で定義されている。

D3DTSS_TEXTURETRANSFORMFLAGS が D3DTTFF_DISABLE (デフォルト値) に設定されているときは、テクスチャ座標トランスフォームは無効である。テクスチャ座標トランスフォームがステージ 0 に対して有効な場合、次のコードはこれを無効にする。

' この例では、変数 D3DDevice に Direct3DDevice8 オブジェクトへの
' 有効な参照が格納されている。

Call D3DDevice.SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, _
                                    D3DTTFF_DISABLE)

CONST_D3DTEXTURETRANSFORMFLAGS に定義されているその他の値は、テクスチャ座標トランスフォームを有効にするため、また、結果として生成されるテクスチャ座標の要素のうち、ラスタライザに渡す個数を制御するために使用する。例として次のコードを考える。

' この例では、変数 D3DDevice に Direct3DDevice8 オブジェクトへの
' 有効な参照が格納されている。

Call D3DDevice.SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, _ 
                                    D3DTTFF_COUNT2)

D3DTTFF_COUNT2 値は、テクスチャ ステージ 0 用のトランスフォーム行列セットを適用し、トランスフォーム後のテクスチャ座標の最初の 2 つの要素をラスタライザに渡すようシステムに指示する。

D3DTTFF_PROJECTED テクスチャ トランスフォーム フラグは、射影されるテクスチャの座標を示す。このフラグが指定されている場合、ラスタライザはトランスフォーム対象の要素を最後の要素で除算する。例として次のコードを考える。

' この例では、変数 D3DDevice に IDirect3DDevice8 インターフェイスへの
' 有効なポインタが格納されている。

Call D3DDevice.SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, _ 
                                    D3DTTFF_COUNT3 | D3DTTFF_PROJECTED)

この例では、3 つのテクスチャ座標要素をラスタライザに渡すようにシステムに知らせる。ラスタライザでは、最初の 2 つの要素を 3 つ目の要素で除算して、テクスチャの処理に必要な 2D テクスチャ座標を生成する。