Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Když jsou konstanty, textury a stav shaderu deklarované a inicializované, jedinou věcí, kterou zbývá udělat, je nastavit stav efektu v zařízení.
Nastavit nestínící stav zařízení
Některé stavy potrubí nejsou nastaveny efektem. Například vymazání cílové plochy vykreslování připraví tuto plochu na zpracování dat. Než nastavíte stav efektu v zařízení, tady je příklad vymazání výstupních vyrovnávacích pamětí.
// 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 );
Nastavení stavu efektu v zařízení
Nastavení stavu efektu se provádí aplikováním tohoto stavu efektu v rámci vykreslovací smyčky. To se provádí zvenku dovnitř. To znamená, že vyberte techniku a pak nastavte stav pro každý průchod (v závislosti na požadovaném výsledku).
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 );
}
}
Efekt nic nevykreslí, jednoduše nastaví stav efektu na zařízení. Kód vykreslování se volá poté, co stav efektu aktualizuje stav zařízení. Volání DrawIndexed provede v tomto příkladu vykreslování.
Související témata