Platform SDK: DirectX
テクスチャ座標トランスフォームを有効にする  [C++]

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

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

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

lpd3dDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE);

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

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

lpd3dDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);

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

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

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

lpd3dDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, 
D3DTTFF_COUNT3 | D3DTTFF_PROJECTED );

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

[Visual Basic]

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

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

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

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

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

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

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

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

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

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

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

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