DX9 에서는 IDirect3DDevice9::Clear() 함수 호출 한번으로 현재 설정된 모든 렌더타겟, 깊이스텐실 버퍼를 모두 clear 할 수 있다.
하지만 DX10 에서는 명시적으로 개별 버퍼에 대해 Clear를 수행해주어야 한다.
void ClearRenderTargetView(
ID3D10RenderTargetView *pRenderTargetView,
const FLOAT ColorRGBA[4]
);
void ClearDepthStencilView( ID3D10DepthStencilView *pDepthStencilView, UINT ClearFlags, FLOAT Depth, UINT8 Stencil );또 다른 점은, IDirect3DDevice::Clear() 함수를 보면,HRESULT Clear( DWORD Count, CONST D3DRECT * pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil );
DWORD(D3DCOLOR==DWORD) 값을 Clear 색으로 사용하지만 DX10 에서는 float 값을 사용한다.즉, 1보다 큰 값으로 Clear 할 수 있다. 물론 테스트해보진 않았다.또 IDirect3DDevice::Clear() 에서는 Clear할 영역을 지정할 수 있지만 DX10 함수에는 없다.근데 이 기능은 한번도 써본적이 없다. 굳이 필요하면 스크린 사각형 그려서 하는 수 밖에 없는 듯 하다.
'DirectX 10' 카테고리의 다른 글
그림자맵 샘플링 (0) | 2011.06.18 |
---|---|
공유 텍스쳐 설정 (0) | 2011.06.16 |
텍스쳐 해제 (0) | 2011.06.13 |
Rendering to multi window in DX10 (0) | 2011.03.13 |
쉐이더 파일 내에서 Render State 설정 (0) | 2010.11.20 |