Menerapkan Teknik (Direct3D 11)
Dengan konstanta, tekstur, dan status shader yang dideklarasikan dan diinisialisasi, satu-satunya hal yang tersisa untuk dilakukan adalah mengatur status efek di perangkat.
Mengatur Status Non-Shader di Perangkat
Beberapa status alur tidak diatur oleh efek. Misalnya menghapus target render menyiapkan target render untuk data. Sebelum mengatur status efek di perangkat, berikut adalah contoh menghapus buffer output.
// 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 );
Mengatur Status Efek di Perangkat
Mengatur status efek dilakukan dengan menerapkan status efek dalam perulangan render. Ini dilakukan dari luar masuk Artinya, pilih teknik, lalu atur status untuk setiap pass (tergantung pada hasil yang Anda inginkan).
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 );
}
}
Efek tidak merender apa pun, hanya mengatur status efek ke perangkat. Kode penyajian dipanggil setelah status efek memperbarui status perangkat. Dalam contoh ini, panggilan DrawIndexed melakukan penyajian.
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk