Merender Efek (Direct3D 11)

Efek dapat digunakan untuk menyimpan informasi, atau untuk merender menggunakan sekelompok status. Setiap teknik menentukan beberapa set shader vertex, shader lambung, shader domain, shader geometri, shader piksel, shader komputasi, status shader, status sampler dan tekstur, status tampilan akses yang tidak diurutkan dan status alur lainnya. Jadi setelah Anda mengatur status menjadi efek, Anda dapat merangkum efek penyajian yang dihasilkan dari status tersebut dengan membuat dan merender efeknya.

Ada beberapa langkah untuk menyiapkan efek untuk penyajian. Yang pertama adalah kompilasi, yang memeriksa kode seperti HLSL terhadap sintaks bahasa HLSL dan aturan kerangka kerja efek. Anda dapat mengkompilasi efek dari aplikasi Anda menggunakan panggilan API atau Anda dapat mengkompilasi efek secara offline menggunakan utilitas pengkompilasi efek fxc.exe. Setelah efek Anda berhasil dikompilasi, buat dengan memanggil set API yang berbeda (tetapi sangat mirip).

Setelah efek dibuat, ada dua langkah tersisa untuk menggunakannya. Pertama, Anda harus menginisialisasi nilai status efek (nilai variabel efek) menggunakan sejumlah metode untuk mengatur status jika tidak diinisialisasi di HLSL. Untuk beberapa variabel, ini dapat dilakukan sekali ketika efek dibuat; yang lain harus diperbarui setiap kali aplikasi Anda memanggil perulangan render. Setelah variabel efek diatur, Anda memberi tahu runtime untuk merender efek dengan menerapkan teknik. Topik-topik ini semuanya dibahas secara lebih rinci di bawah ini.

Secara alami ada pertimbangan performa untuk menggunakan efek. Pertimbangan ini sebagian besar sama jika Anda tidak menggunakan efek. Hal-hal seperti meminimalkan jumlah perubahan status dan mengatur variabel berdasarkan frekuensi pembaruan. Taktik ini digunakan untuk meminimalkan jumlah data yang perlu dikirim dari CPU ke GPU, dan karenanya meminimalkan potensi masalah sinkronisasi.

Di bagian ini

Topik Deskripsi
Mengkompilasi Efek
Setelah efek ditulis, langkah selanjutnya adalah mengkompilasi kode untuk memeriksa masalah sintaks.
Membuat Efek
Efek dibuat dengan memuat bytecode efek yang dikompilasi ke dalam kerangka kerja efek. Tidak seperti Efek 10, efek harus dikompilasi sebelum membuat efek. Efek yang dimuat ke dalam memori dapat dibuat dengan memanggil D3DX11CreateEffectFromMemory.
Atur Status Efek
Beberapa konstanta efek hanya perlu diinisialisasi. Setelah diinisialisasi, status efek diatur ke perangkat untuk seluruh perulangan render. Variabel lain perlu diperbarui setiap kali perulangan render dipanggil. Kode dasar untuk mengatur variabel efek ditunjukkan di bawah ini, untuk setiap jenis variabel.
Menerapkan Teknik
Dengan konstanta, tekstur, dan status shader yang dideklarasikan dan diinisialisasi, satu-satunya hal yang tersisa untuk dilakukan adalah mengatur status efek di perangkat.

Efek (Direct3D 11)