Проблемы сглаживания
Когда включено сглаживание полной сцены, у меня возникают некоторые проблемы при рендеринге на текстуру.
Вот изображение того, что происходит (у визуализированного изображения есть некоторые края). http://i.imgur.com/VcFNn.png
Когда АА выключен - ничего этого не происходит, и все идет хорошо.
Почему у меня могут возникнуть эти проблемы, и как правильно рендерить текстуру, когда включен AA?
Заранее спасибо.
1 ответ
Первое, что вы должны сделать, это убедиться, что ваша игра способна работать с полным сглаживанием сцены (то есть предположить, что у вас есть готовая видеокарта для работы). Способ сделать это, сделав это:
/*
* 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)
Надеюсь это поможет!