次の方法で共有


テクスチャラッピング

テクスチャ ラップは、Direct3D が各頂点に指定されたテクスチャ座標を使用してテクスチャポリゴンをラスタライズする基本的な方法を変更します。 多角形のラスター化中、システムはポリゴンの各頂点のテクスチャ座標間を補間して、ポリゴンのすべてのピクセルに使用するテクセルを決定します。 通常、システムはテクスチャを 2D 平面として扱い、テクスチャ内のポイント A からポイント B までの最短ルートを取得して新しいテクセルを補間します。ポイント A が u、v 位置 (0.8、0.1) を表し、ポイント B が (0.1,0.1) の場合、補間の線は次の図のようになります。

2 点間の補間線の図

この図の A と B の最短距離は、テクスチャのほぼ中央を通って実行されることに注意してください。 u テクスチャまたは v テクスチャ座標ラップを有効にすると、Direct3D が u 方向と v 方向のテクスチャ座標間の最短ルートを認識する方法が変わります。 定義上、テクスチャ ラップでは、0.0 と 1.0 が一致すると仮定して、ラスタライザーはテクスチャ座標セット間の最短ルートを取得します。 最後のビットは慎重な部分です。テクスチャラッピングを一方向に有効にすることを想定すると、システムはテクスチャをシリンダーに巻き付けたかのように扱います。 たとえば、次の図を考えてみましょう。

シリンダーに巻き付けられたテクスチャと2つの点の図

上の図は、u 方向の折り返しがテクスチャ座標の補間方法に与える影響を示しています。 通常のテクスチャまたはラップされていないテクスチャの例と同じポイントを使用すると、ポイント A と B の間の最短ルートがテクスチャの中央を越えなくなったことがわかります。0.0 と 1.0 が一緒に存在する境界を越えるようになりました。 v 方向でのラップは、側面に横たわる円柱の周りにテクスチャを巻きつける点で異なるものの、他の点では類似しています。 u 方向と v 方向の両方で折り返す方が複雑です。 この状況では、テクスチャをトーラス (ドーナツ) として想定できます。

テクスチャ ラッピングの最も一般的な実用的なアプリケーションは、環境マッピングを実行することです。 通常、環境マップをテクスチャ化したオブジェクトは非常に反射的に表示され、シーン内のオブジェクトの周囲のミラー化されたイメージが表示されます。 このディスカッションのために、4 つの壁を持つ部屋を描き、それぞれに文字 R、G、B、Y、および対応する色 (赤、緑、青、黄色) で塗りつぶします。 このような単純な部屋の環境マップは、次の図のようになります。

赤、緑、青、黄色の垂直ストライプのイラスト

部屋の天井が完全に反射する 4 面の柱で支えになっているとします。 環境マップテクスチャを柱にマッピングするのは簡単です。文字や色を反映しているかのように柱を作ることは簡単ではありません。 次の図は、該当するテクスチャ座標が上部の頂点の近くに一覧表示された、柱のワイヤー フレームを示しています。 テクスチャの端を折り返す縫い目が点線で表示されます。

点線で二等分された四角形の図

u 方向で折り返しが有効になっていると、テクスチャの柱は環境マップの色とシンボルを適切に表示し、テクスチャの前面の継ぎ目で、u 座標 0.0 と 1.0 が同じ場所を共有していると仮定して、ラスタライザーはテクスチャ座標間の最短ルートを適切に選択します。 テクスチャ付き柱は次の図のようになります。

赤、緑、青、黄色のクアドラントで構成される柱の図

テクスチャ ラッピングが有効になっていない場合、ラスタライザーは、信じ取り可能な反射画像を生成するために必要な方向に補間しません。 代わりに、柱の前面の領域には、テクスチャの中心を通過する u 座標 0.175 と 0.875 の間のテクセルの水平方向に圧縮されたバージョンが含まれています。 ラップ効果が損なわれています。

テクスチャの折り返しと、似た名前のテクスチャアドレッシングモードを混同しないでください。 テクスチャ ラッピングは、テクスチャ アドレス指定の前に実行されます。 [0.0, 1.0] の範囲外のテクスチャ座標がテクスチャ ラッピング データに含まれていないことを確認してください。これは未定義の結果を生成するためです。 テクスチャ アドレス指定の詳細については、「テクスチャ アドレッシング モード」を参照してください。

ディスプレイスメント マップの折り返し

ディスプレイスメント マップは、テッセレーション エンジンによって補間されます。 テッセレーション エンジンにはラップ モードを指定できないため、ディスプレイスメント マップではテクスチャ ラップを実行できません。 アプリケーションでは、補間のラップを任意の方向に強制する頂点のセットを使用できます。 アプリケーションでは、単純な線形補間として実行する補間を指定することもできます。

テクスチャ