Cara: Membuat Hull Shader
Shader lambung adalah tahap pertama dari tiga tahap yang bekerja sama untuk mengimplementasikan tessellation. Output hull-shader mendorong tahap tessellator, serta tahap domain-shader. Topik ini menunjukkan cara membuat shader lambung.
Shader lambung mengubah sekumpulan titik kontrol input (dari shader vertex) menjadi satu set titik kontrol output. Jumlah titik input dan output dapat bervariasi dalam konten dan angka tergantung pada transformasi (transformasi umum akan menjadi transformasi dasar).
Shader lambung juga menghasilkan informasi konstanta patch, seperti faktor tessellation, untuk shader domain dan tessellator. Tahap tesselator fungsi tetap menggunakan faktor tessellation serta status lain yang dideklarasikan dalam shader lambung untuk menentukan berapa banyak tessellate.
Untuk membuat shader lambung
Desain shader lambung. Lihat Cara: Mendesain Hull Shader.
Mengkompilasi kode shader
Buat objek hull-shader menggunakan ID3D11Device::CreateHullShader.
HRESULT CreateHullShader( const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage *pClassLinkage, ID3D11HullShader **ppHullShader );
Inisialisasi tahap alur menggunakan ID3D11DeviceContext::HSSetShader.
void HSSetShader( ID3D11HullShader *pHullShader, ID3D11ClassInstance *const *ppClassInstances, UINT NumClassInstances );
Shader domain harus terikat ke alur jika shader lambung terikat. Secara khusus, tidak valid untuk langsung mengalirkan titik kontrol shader lambung dengan shader geometri.
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