Microsoft DirectX 8.0 (C++) |
次の図は、テクスチャ座標が処理を通してラスタライザに送られるまでの流れを示している。
システムでは、2 つのソースからテクスチャ座標を描画できる。所定のテクスチャ ステージでは、頂点フォーマット (D3DFVF_TEX1 〜 D3DFVF_TEX8) に含まれるテクスチャ座標を使用するか、Microsoft® 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 テクスチャ座標を生成できる。
注 キューブ環境マップを除き、ラスタライザでは 3 つ以上の要素を使用してテクスチャを処理することはできない。カレント テクスチャを処理するために使用できる要素数よりも多くの要素をテクスチャ ステージに指定した場合、無関係な要素は無視される。これは、1D テクスチャに対して 2D テクスチャ座標を使用するときにもあてはまる。