Platform SDK: DirectX

テクスチャ座標処理の流れ

次の図は、テクスチャ座標が処理を通してラスタライザに送られるまでの流れを示す。

[C++]

システムでは、2 つのソースからテクスチャ座標を描画できる。所定のテクスチャ ステージでは、頂点フォーマット (D3DFVF_TEX1 〜 D3DFVF_TEX8) に含まれるテクスチャ座標を使用するか、Direct3D で自動生成したテクスチャ座標を使用できる。文字の大文字/小文字の区別の詳細については、「テクスチャ座標の自動生成」を参照すること。現在のテクスチャ ステージの D3DTSS_TEXTURETRANSFORMFLAGS テクスチャ ステージ ステートを D3DTTFF_DISABLE に設定すると (デフォルト設定)、入力座標はトランスフォームされない。D3DTSS_TEXTURETRANSFORMFLAGS を別の値に設定すると、そのステージのトランスフォーム行列が入力座標に適用される。

D3DTEXTURETRANSFORMFLAGS 列挙型は、D3DTSS_TEXTURETRANSFORMFLAGS テクスチャ ステージ ステートに有効な値を定義する。テクスチャ座標トランスフォームを実行しない D3DTTFF_DISABLE フラグを除き、この列挙に定義される値は、システムによってラスタライザに渡される出力座標の個数を設定する。D3DTTFF_COUNT1 〜 D3DTTFF_COUNT4 フラグの場合、1、2、3、または 4 つの要素が出力座標からラスタライザに渡される (現在 1D テクスチャ座標はサポートされていない)。

D3DTTFF_PROJECTED フラグは特別なフラグである。このフラグは、テクスチャ座標が射影テクスチャ用のものであることをシステムに知らせる。D3DTTFF_PROJECTED フラグと D3DTEXTURETRANSFORMFLAGS のその他のメンバを組み合わせることで、すべての要素を最後の要素で除算してからラスタ化を実行するようにラスタライザに知らせる。たとえば、3 要素のテクスチャ座標 (または、トランスフォーム後の、3 要素のテクスチャ座標) を明示的に使用するとき、D3DTTFF_COUNT3 および D3DTTFF_PROJECTED フラグを組み合わせて使用すると、ラスタライザで最初の 2 つの要素を最後の要素で除算して、2D テクスチャの位置座標指定に必要な 2D テクスチャ座標を生成できる。

[Visual Basic]

システムでは、2 つのソースからテクスチャ座標を描画できる。所定のテクスチャ ステージでは、頂点フォーマット (D3DFVF_TEX1 〜 D3DFVF_TEX8) に含まれるテクスチャ座標を使用するか、Direct3D で自動生成したテクスチャ座標を使用できる。文字の大文字/小文字の区別の詳細については、「テクスチャ座標の自動生成」を参照すること。現在のテクスチャ ステージの D3DTSS_TEXTURETRANSFORMFLAGS テクスチャ ステージ ステートを D3DTTFF_DISABLE に設定すると (デフォルト設定)、入力座標はトランスフォームされない。D3DTSS_TEXTURETRANSFORMFLAGS を別の値に設定すると、そのステージのトランスフォーム行列が入力座標に適用される。

CONST_D3DTEXTURETRANSFORMFLAGS 列挙は、D3DTSS_TEXTURETRANSFORMFLAGS テクスチャ ステージ ステートに有効な値を定義する。テクスチャ座標トランスフォームを実行しない D3DTTFF_DISABLE フラグを除き、この列挙に定義される値は、システムによってラスタライザに渡される出力座標の個数を設定する。D3DTTFF_COUNT1 〜 D3DTTFF_COUNT4 フラグの場合、1、2、3、または 4 つの要素が出力座標からラスタライザに渡される。

D3DTTFF_PROJECTED フラグは特別なフラグである。このフラグは、テクスチャ座標が射影テクスチャ用のものであることをシステムに知らせる。D3DTTFF_PROJECTED フラグと CONST_D3DTEXTURETRANSFORMFLAGS のその他のメンバを組み合わせることで、すべての要素を最後の要素で除算してからラスタ化を実行するようにラスタライザに知らせる。たとえば、3 要素のテクスチャ座標 (または、トランスフォーム後の、3 要素のテクスチャ座標) を明示的に使用するとき、D3DTTFF_COUNT3 および D3DTTFF_PROJECTED フラグを組み合わせて使用すると、ラスタライザで最初の 2 つの要素を最後の要素で除算して、2D テクスチャの処理に必要な 2D テクスチャ座標を生成できる。

 :  キューブ環境マップを除き、ラスタライザでは 3 つ以上の要素を使用してテクスチャを処理することはできない。カレント テクスチャを処理するために使用できる要素数よりも多くの要素を、テクスチャ ステージに指定した場合、無関係な要素は無視される。これは、1D テクスチャに対して 2D テクスチャ座標を使用するときにも当てはまる。