Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn die Konstanten, Texturen und Shaderstatus deklariert und initialisiert wurden, müssen Sie nur den Effektstatus auf dem Gerät festlegen.
Note
In diesem Artikel werden Direct3D 11-Schnittstellen und Zustandsobjekte verwendet. Informationen zur Direct3D 10-Implementierung finden Sie unter Anwenden einer Technik (Direct3D 10).
Festlegen des Nicht-Shaderstatus im Gerät
Ein Teil des Pipeline-Zustands wird nicht durch einen Effekt festgelegt. Zum Beispiel bereitet das Löschen eines Renderziels das Renderziel für Daten vor. Bevor Sie den Effektstatus auf dem Gerät festlegen, sehen Sie hier ein Beispiel zum Löschen von Ausgabepuffern.
// Clear the render target and depth stencil
float ClearColor[4] = { 0.0f, 0.25f, 0.25f, 0.55f };
ID3D11RenderTargetView* pRTV = DXUTGetD3D11RenderTargetView();
pD3DDevice->ClearRenderTargetView( pRTV, ClearColor );
ID3D11DepthStencilView* pDSV = DXUTGetD3D11DepthStencilView();
pD3DDevice->ClearDepthStencilView( pDSV, D3D11_CLEAR_DEPTH, 1.0, 0 );
Festlegen des Effektstatus im Gerät
Das Festlegen des Effektzustands erfolgt durch Anwenden des Effektzustands innerhalb der Renderschleife. Dies geschieht von außen nach innen. Das heißt, wählen Sie eine Technik aus und legen Sie dann für jeden der Durchgänge den Status fest (je nach gewünschtem Ergebnis).
D3D11_TECHNIQUE_DESC techDesc;
pRenderTechnique->GetDesc( &techDesc );
for( UINT p = 0; p < techDesc.Passes; ++p )
{
}
....
pRenderTechnique->GetPassByIndex( p )->Apply(0);
pd3dDevice->DrawIndexed( (UINT)pSubset->IndexCount, 0,
(UINT)pSubset->VertexStart );
}
}
Ein Effekt rendert nichts, er legt einfach den Effektzustand auf das Gerät fest. Der Renderingcode wird aufgerufen, nachdem der Effektstatus den Gerätestatus aktualisiert hat. In diesem Beispiel führt der DrawIndexed-Aufruf das Rendering aus.
Zugehörige Themen