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).
Zugehörige Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für