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

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

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

異方性テクスチャ フィルタリングは、線形テクスチャ フィルタリングまたはミップマップ テクスチャ フィルタリングと併用することで、レンダリング結果を向上させることができる。IDirect3DDevice9::SetSamplerState メソッドを呼び出して、異方性テクスチャ フィルタリングを有効にする。第 1 引数の値を、テクスチャ フィルタリング方法を選択するテクスチャの整数インデックス番号 (0 ~ 7) に設定する。第 2 引数として D3DSAMP_MAGFILTERD3DSAMP_MINFILTER、または D3DSAMP_MIPFILTER を渡して、拡大、縮小、またはミップマップ フィルタを設定する。第 3 引数を D3DTEXF_ANISOTROPIC に設定する。

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

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