Freigeben über


Erstellen eines Tiefenpuffers (Direct3D 9)

Ein Tiefenpuffer ist eine Eigenschaft des Geräts. Um einen Tiefenpuffer zu erstellen, der von Direct3D verwaltet wird, legen Sie die entsprechenden Member der D3DPRESENT_PARAMETERS-Struktur fest, wie im folgenden Codebeispiel gezeigt.

D3DPRESENT_PARAMETERS d3dpp; 
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed               = TRUE;
d3dpp.SwapEffect             = D3DSWAPEFFECT_COPY;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;

Durch Festlegen des EnableAutoDepthStencil-Members auf TRUE weisen Sie Direct3D an, Tiefenpuffer für die Anwendung zu verwalten. Beachten Sie, dass AutoDepthStencilFormat auf ein gültiges Tiefenpufferformat festgelegt werden muss. Das flag D3DFMT_D16 gibt einen 16-Bit-Tiefenpuffer an, sofern verfügbar.

Mit dem folgenden Aufruf der IDirect3D9::CreateDevice-Methode wird ein Gerät erstellt, das dann einen Tiefenpuffer erstellt.

if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                                D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                &d3dpp, &d3dDevice ) ) )
return E_FAIL;

Der Tiefenpuffer wird automatisch als Renderziel des Geräts festgelegt. Wenn das Gerät zurückgesetzt wird, wird der Tiefenpuffer automatisch zerstört und in der neuen Größe neu erstellt.

Verwenden Sie zum Erstellen einer neuen Tiefenpufferoberfläche die IDirect3DDevice9::CreateDepthStencilSurface-Methode .

Um eine neue Tiefenpufferoberfläche für das Gerät festzulegen, verwenden Sie die IDirect3DDevice9::SetDepthStencilSurface-Methode .

Um den Tiefenpuffer in Ihrer Anwendung zu verwenden, müssen Sie den Tiefenpuffer aktivieren. Ausführliche Informationen finden Sie unter Aktivieren der Tiefenpufferung (Direct3D 9).

Tiefenpuffer