テクスチャ

テクスチャの種類

拡散マップ(アルベドマップ)

表面の各テクセルで拡散表面色を表現し、ステッカーや塗装のような働きをする。

法線マップ

各テクセルで、RGB値にエンコードされた単位法線ベクトルを格納する。

グロスマップ

各テクセルでの、表面の光沢具合をエンコードする。

環境マップ

周囲の環境の色を保持し、反射のレンダリングに用いる。

テクスチャアドレッシングモード

テクスチャ座標を[0, 1]の範囲を超えて拡張する際に、範囲外のテクスチャ座標をどのように扱うかを定める。

ラップ

このモードでは、テクスチャはすべての方向に何度も繰り返される。

jjkkを任意の整数として、(j+u,k+u)(j + u, k + u)のテクスチャ座標はすべて座標(u,v)(u, v)に等しい。

ミラー

このモードはラップモードと同様の振る舞いをするが、テクスチャ座標(u,v)(u, v)に関して、

クランプ

このモードでは、テクスチャ座標が通常の範囲外になった場合、テクスチャの外縁周辺のテクセルの色が単純に拡張される。

ボーダーカラー

このモードでは、ユーザが指定した任意の色が、テクスチャ座標の範囲外の領域で使われる。

テクセル密度

テクセルとピクセルの比をテクセル密度という。

テクセルがそれぞれスクリーン上のピクセルに1対1にマッピングされる場合、テクセル密度は1である。

テクセル密度は、カメラに対する相対的な位置が変われば変化する。

テクセル密度が1より小さい場合

テクセルの大きさは、スクリーン上のピクセルよりも大きくなり、テクセルの境界が見えるようになる。

テクセル密度が1より大きい場合

スクリーン上のピクセルには多くのテクセルが割り当てられることになる。

この場合、実際には少数のテクセルの情報しかピクセルに反映されることがなく、モアレバンディングパターンが生じる。

また、ピクセルの境界にあるテクセルが、カメラの位置や角度のわずかな違いに応じて、別のピクセルの色を支配してしまい、テクセルの色が泳いだり点滅したり見える。

ミップマッピング

近いオブジェクトでも遠いオブジェクトでも、テクセル密度を常に1に近い値にしておきたい。

これをミップマッピングという手法で近似的に実現することができる。

ミップマッピングでは、テクスチャそれぞれに、低解像度のビットマップの系列を作成しておき、それぞれのビットマップは、幅と高さを系列の1つ前のビットマップの2分の1とする。

このそれぞれのビットマップイメージを、ミップマップミップレベル)という。

テクスチャのミップマップがあれば、カメラとの距離に基づいて、グラフィックスハードウェアは適切なミップレベルを選択し、1に近いテクセル密度を保つようにする。

テクスチャフィルタリング

テクセルとピクセルの間に明確な1対1のマッピングは存在せず、ピクセルの中心は、複数のテクセルの境界を含めて、テクスチャ座標のどの位置になりうる。

このような場合に、複数のテクセルをサンプリングし、結果の色を混合することで、実際に使われるテクセルの色を作り出すことをテクスチャフィルタリングという。

最近傍

ピクセルの中心に最も近いテクセルの色を使う。

バイリニア

ピクセルの中心を囲む4つのテクセルが選択され、最終的な色は選ばれたテクセルの色の重みつき平均となる。(重みは、ピクセルの中心から各テクセルの中心への距離に基づく。)

トライリニア

最も近い2つのミップマップにバイリニアフィルタリングを適用し、その結果をさらに線形補間する。

異方性

視野角から台形に見えるテクセルの歪みに応じてサンプリングし、テクスチャ付きの表面を斜めから見たときの質を向上させる。