Platform SDK: DirectX

フルシーン アンチエイリアシング

フルシーン アンチエイリアシングとは、シーン内の各ポリゴンのエッジをシングル パスでラスタライズしてぼかすことを指す。2 つめのパスは必要ない。フルシーン アンチエイリアシングは (サポートされている場合)、三角形および三角形のグループにのみ影響する。Direct3D サービスを使用して、線にアンチエイリアシングを適用することはできない。

[C++]

ハードウェアによっては、ソートしたポリゴンをアプリケーションが後ろから前へレンダリングするときだけしか、フルシーン アンチエイリアシングを適用できない。これが現在のデバイスに当てはまるかどうかを調べるには、IDirect3DDevice7::GetCaps メソッドを呼び出してデバイス機能を取得する。呼び出した後で、関連付けられた D3DPRIMCAPS 構造体の dwRasterCaps メンバをチェックする。デバイスがアンチエイリアシングに対して後ろから前へのレンダリングを要求している場合は、D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT 能力フラグが dwRasterCaps に示されている。ポリゴンの順序にかかわらずデバイスがアンチエイリアシングを行える場合は、D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT フラグが示されている。どちらのフラグもない場合は、デバイスがフルシーン アンチエイリアシングを行えないことを示す。

ポリゴンをソートする必要があるかどうか調べた後で、D3DRENDERSTATE_ANTIALIAS レンダリング ステートを D3DANTIALIAS_SORTDEPENDENT または D3DANTIALIAS_SORTINDEPENDENT にセットして、シーンを描画する。

フルシーン アンチエイリアシングが必要なくなったら、D3DRENDERSTATE_ANTIALIAS D3DANTIALIAS_NONE に設定して無効にする。

[Visual Basic]

ハードウェアによっては、ソートしたポリゴンをアプリケーションが後ろから前へレンダリングするときだけしか、フルシーン アンチエイリアシングを適用できない。これが現在のデバイスに当てはまるかどうかを調べるには、Direct3DDevice7.GetCaps メソッドを呼び出してデバイス機能を取得する。この呼び出しの後、関連付けられている D3DPRIMCAPS 型の lRasterCaps メンバを調べる。デバイスが後方から前方へのレンダリングをアンチエイリアシングに要求している場合は、D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT 能力フラグが lRasterCaps に公開される。ポリゴンの順序にかかわらずデバイスがアンチエイリアシングを実行できる場合は、D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT フラグが公開される。どちらのフラグもない場合は、デバイスがフルシーン アンチエイリアシングを行えないことを示す。

ポリゴンをソートする必要があるかどうかを調べた後、D3DRENDERSTATE_ANTIALIAS レンダリング ステートを D3DANTIALIAS_SORTDEPENDENT または D3DANTIALIAS_SORTINDEPENDENT に設定して、シーンを描画する。

フルシーン アンチエイリアシングが必要なくなったら、D3DRENDERSTATE_ANTIALIAS D3DANTIALIAS_NONE に設定して無効にする。