次の方法で共有


テクスチャー座標の処理 (Direct3D 9)

次の図は、テクスチャー座標がソースから、処理を経て、ラスタライザーへと到達するパスを示したものです。

Texture coordinate path

テクスチャー座標は、2 つのソースから描画することができます。テクスチャー ステージでは、頂点フォーマット (D3DFVF_TEX1 ~ D3DFVF_TEX8) に含まれるテクスチャー座標を使用することも、Direct3D によって自動的に生成されたテクスチャー座標を使用することもできます。後者の場合の詳細については、「テクスチャー座標の自動生成 (Direct3D 9)」を参照してください。現在のテクスチャー ステージの D3DTSS_TEXTURETRANSFORMFLAGS テクスチャー ステージ ステートを D3DTTFF_DISABLE (既定設定) に設定すると、入力座標はトランスフォームされません。D3DTSS_TEXTURETRANSFORMFLAGS を他の値に設定すると、そのステージのトランスフォーム行列が入力座標に適用されます。

D3DTEXTURETRANSFORMFLAGS 列挙型は、D3DTSS_TEXTURETRANSFORMFLAGS テクスチャー ステージ ステートの有効値を定義します。テクスチャー座標トランスフォームを行わない D3DTTFF_DISABLE フラグを除き、この列挙型で定義された値によって、システムがラスタライザーに渡す出力座標の数が設定されます。D3DTTFF_COUNT1 ~ D3DTTFF_COUNT4 フラグは、出力座標からラスタライザーに 1 ~ 4 つの要素を渡すようにシステムに指示します。

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

    キューブ環境マップとボリューム テクスチャーを除き、ラスタライザーでは、3 つ以上の要素を使用してテクスチャー座標でテクスチャーを処理することはできません。現在のテクスチャーの処理に使用できる要素よりも多くの要素をそのステージに指定した場合、無関係な要素は無視されます。これは、1D テクスチャーに 2D テクスチャー座標を使用するときにも該当します。

追加情報は次のトピックに含まれます。