Microsoft DirectX 8.0 (C++)

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

異方性とは、スクリーン平面に対して角度をなして位置したサーフェスを持つ 3D オブジェクトのテクセルの可視的なゆがみである。異方性プリミティブからのピクセルをテクセルにマッピングするとき、プリミティブの形状がゆがむ。Microsoft® Direct3D® では、テクスチャ空間に逆マッピングされるスクリーン ピクセルの伸長度 (長さ÷幅) としてピクセルの異方性を測定する。

異方性テクスチャ フィルタリングは、線形テクスチャ フィルタリングまたはミップマップ テクスチャ フィルタリングと併用することで、レンダリング結果を向上させることができる。IDirect3DDevice8::SetTextureStageState メソッドを呼び出して、異方性テクスチャ フィルタリングを有効にする。第 1 パラメータの値を、テクスチャ フィルタリング方法を選択するテクスチャの整数インデックス番号 (0 〜 7) に設定する。第 2 パラメータとして D3DTEXTUREMAGFILTER、D3DTEXTUREMINFILTER、または D3DTEXTUREMIPFILTER を渡して、拡大、縮小、またはミップマップ フィルタを設定する。第 3 パラメータを D3DTEXF_ANISOTROPIC に設定する。詳細については、「テクスチャ フィルタリング ステート」を参照すること。

また、異方性の度合いをゼロより大きな値に設定する必要がある。これを設定するには、IDirect3DDevice8::SetTextureStageState メソッドを呼び出す。第 1 パラメータには、異方性の度合いを設定するテクスチャの整数インデックス番号 (0 〜 7) を設定する。第 2 パラメータには、D3DTSS_MAXANISOTROPY を渡す。最後のパラメータは、異方性の度合いでなければならない。

異方性の度合いを 1 に設定すると、異方性フィルタリングが無効になり、1 より大きな値を設定すると、異方性フィルタリングが有効になる。異方性の度合いとして設定可能な値の範囲を判別するには、D3DCAPS8 構造体の MaxAnisotropy フラグをチェックする。