Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med konstanterna, texturerna och skuggningstillståndet deklarerade och initierade är det enda som återstår att göra att ange effekttillståndet på enheten.
Ange icke-skuggningstillstånd på enheten
Vissa pipelinetillstånd anges inte av en effekt. Vid rensning av ett återgivningsmål görs återgivningsmålet redo att ta emot data. Här är ett exempel på hur du rensar utdatabuffertar innan du anger effekttillståndet på enheten.
// Clear the render target and depth stencil
float ClearColor[4] = { 0.0f, 0.25f, 0.25f, 0.55f };
ID3D10RenderTargetView* pRTV = DXUTGetD3D10RenderTargetView();
pd3dDevice->ClearRenderTargetView( pRTV, ClearColor );
ID3D10DepthStencilView* pDSV = DXUTGetD3D10DepthStencilView();
pd3dDevice->ClearDepthStencilView( pDSV, D3D10_CLEAR_DEPTH, 1.0, 0 );
Ange effekttillstånd i enheten
Du ställer in effekttillståndet genom att tillämpa effekttillståndet i återgivningsloopen. Detta görs utifrån in. Det vill säga välj en teknik och ange sedan tillståndet för vart och ett av passen (beroende på önskat resultat).
D3D10_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 );
}
}
En effekt renderar ingenting, utan anger helt enkelt enhetens effekttillstånd. Återgivningskoden anropas efter att effekttillståndet uppdaterar enhetens tillstånd. I det här exemplet utför DrawIndexed-anropet återgivningen.
Relaterade ämnen