1

シーン全体のアンチエイリアシングを有効にすると、テクスチャへのレンダリング時に問題が発生します。

これは何が起こっているかのイメージです (レンダリングされたイメージにはいくつかのエッジがあります)。 http://i.imgur.com/VcFNn.png

AA がオフの場合 - これは何も起こらず、すべて問題ありません。

このような問題が発生するのはなぜですか? AA がオンのときにテクスチャをレンダリングする正しい方法は何ですか?

前もって感謝します。

4

1 に答える 1

0

最初に行うべきことは、ゲームがフル シーンのアンチエイリアシングを実行できることを確認することです (これは、作業用のグラフィック カードが用意されていることを前提としています)。その方法は、次のようにすることです。

/*
* The code below assumes that pD3D is a valid pointer 
*   to a IDirect3D9 interface.
*/

if( SUCCEEDED(pD3D->CheckDeviceMultiSampleType( D3DADAPTER_DEFAULT, 
                    D3DDEVTYPE_HAL , D3DFMT_R8G8B8, FALSE, 
                    D3DMULTISAMPLE_2_SAMPLES, NULL ) ) )
// Full-scene antialiasing is supported. Enable it here.

デバイスがサポートしている場合は、マルチサンプリングのパラメータを設定するだけです:

/*
* The example below assumes that pD3D is a valid pointer 
* to a IDirect3D9 interface, d3dDevice is a pointer to a 
* IDirect3DDevice9 interface, and hWnd is a valid handle
* to a window.
*/

D3DPRESENT_PARAMETER d3dPP
ZeroMemory( &d3dPP, sizeof( d3dPP ) );
d3dPP.Windowed        = FALSE
d3dPP.SwapEffect      = D3DSWAPEFFECT_DISCARD;
d3dPP.MultiSampleType = D3DMULTISAMPLE_2_SAMPLES;
pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                    D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                    &d3dpp, &d3dDevice)

お役に立てれば!

于 2013-08-20T17:16:12.377 に答える