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

プリミティブが 3D プリミティブから 2D 画面へのマッピングによってレンダリングされるときに、テクスチャ フィルタリングによって、プリミティブの 2D レンダリングされた画像の各ピクセルの色が生成されます。

Direct3D では、プリミティブをレンダリングするとき、3D プリミティブを 2D 画面にマッピングします。 プリミティブにテクスチャがある場合、Direct3D はそのテクスチャを必ず使用して、プリミティブの 2D レンダリングされた画像の各ピクセルのカラーを生成します。 プリミティブの画面上の画像のピクセルごとに、テクスチャからカラー値を取得する必要があります。 このプロセスは、テクスチャフィルタリングと呼ばれます。

テクスチャ フィルタリング処理が実行されるとき、使用されるテクスチャは通常、拡大または縮小されます。 つまり、テクスチャは、それ自体よりも大きいまたは小さいプリミティブ イメージにマッピングされます。 テクスチャの拡大では、多数のピクセルが 1 つのテクセルにマッピングされることがあります。 その結果、外観が粗くなる場合があります。 テクスチャが縮小されると、多くの場合、1 つのピクセルが多数のテクセルにマッピングされます。 その結果、イメージが不鮮明になったり、輪郭がギザギザになったりすることがあります。 このような問題を解決するには、ピクセルに適したカラーになるようにテクセルのカラーになんらかのブレンドを実行する必要があります。

Direct3D によって、テクスチャ フィルタリングの複雑なプロセスが単純化されます。 Direct3D には、線形フィルタリング、異方性フィルタリング、およびミップマップ フィルタリングという 3 種類のテクスチャ フィルタリングが用意されています。 テクスチャ フィルタリングを選択しなかった場合、Direct3D では最近点サンプリングという手法が使用されます。

それぞれのテクスチャ フィルタリングには、長所と短所があります。 たとえば、線形テクスチャ フィルタリングでは、最終イメージでエッジがギザギザになったり、外観が粗くなったりすることがあります。 ただし、このテクスチャ フィルタリングは計算処理のオーバーヘッドが少ない方法です。 ミップマップによるフィルタリングでは、通常、適切な結果が生成されます。特に、異方性フィルタリングと組み合わせた場合に結果がよくなります。 ただし、Direct3D でサポートされる方法の中で最も多くのメモリを必要とします。

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

Direct3D は、次のテクスチャ フィルタリング手法をサポートします。

このセクションの内容

トピック 説明

最近点サンプリング

アプリケーションでは、必ずしもテクスチャ フィルタリングを使用する必要はありません。 Direct3D は、テクセル アドレスを計算するように設定できます。この場合、整数に評価されることはあまりなく、最も近い整数アドレスを持つテクセルの色がコピーされます。 このプロセスは、最近点サンプリングと呼ばれます。

バイリニア テクスチャ フィルタリング

バイリニア フィルタリングは、サンプリング ポイントに最も近い 4 つのテクセルの加重平均を計算します。 このフィルタリング手法は、最近点フィルタリングよりも正確で一般的です。 このアプローチは最新のグラフィックス ハードウェアに実装されているため、効率的です。

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

サーフェスがスクリーンの平面に対して角度をなして配置されている 3D オブジェクトのテクセルに見られるゆがみを異方性と呼びます。 異方性プリミティブのピクセルをテクセルにマッピングすると、形状がゆがみます。

ミップマップでのテクスチャ フィルタリング

ミップマップは連続したテクスチャで、各テクスチャは同じイメージを徐々に低い解像度で表したものです。 ミップマップでの各イメージの高さと幅、つまりレベルは、直前のレベルを 2 の累乗で割った値になります。

 

テクスチャ