Efek (Direct3D 11)

Efek DirectX adalah kumpulan status alur, diatur oleh ekspresi yang ditulis dalam HLSL dan beberapa sintaks yang khusus untuk kerangka kerja efek.

Setelah mengkompilasi efek, gunakan API kerangka kerja efek untuk merender. Fungsionalitas efek dapat berkisar dari sesuatu sesederhana shader vertex yang mengubah geometri dan shader piksel yang menghasilkan warna solid, hingga teknik penyajian yang membutuhkan beberapa pass, menggunakan setiap tahap alur grafis, dan memanipulasi status shader serta status alur yang tidak terkait dengan shader yang dapat diprogram.

Langkah pertama adalah mengatur status yang ingin Anda kontrol dalam efek. Ini termasuk status shader (puncak, lambung, domain, geometri, piksel dan shader komputasi), tekstur dan status sampler yang digunakan oleh shader, dan status alur lain yang tidak dapat diprogram. Anda dapat membuat efek dalam memori sebagai string teks, tetapi biasanya, ukurannya cukup besar sehingga berguna untuk menyimpan status efek dalam file efek (file teks yang berakhiran ekstensi .fx). Untuk menggunakan efek, Anda harus mengkompilasinya (untuk memeriksa sintaks HLSL serta sintaks kerangka kerja efek), menginisialisasi status efek melalui panggilan API, dan memodifikasi perulangan render Anda untuk memanggil API penyajian.

Efek merangkum semua status render yang diperlukan oleh efek tertentu ke dalam satu fungsi penyajian yang disebut teknik. Pass adalah sub-set teknik, yang berisi status render. Untuk menerapkan beberapa efek penyajian pass, terapkan satu atau beberapa pass dalam teknik. Misalnya, Anda ingin merender beberapa geometri dengan satu set buffer kedalaman/stensil, lalu menggambar beberapa sprite di atasnya. Anda dapat menerapkan penyajian geometri di pass pertama, dan gambar sprite di pass kedua. Untuk merender efeknya, Anda cukup merender kedua loop render Anda. Anda dapat menerapkan sejumlah teknik dalam efek. Tentu saja, semakin besar jumlah teknik, semakin besar waktu kompilasi untuk efeknya. Salah satu cara untuk mengeksploitasi fungsi ini adalah dengan menciptakan efek dengan teknik yang dirancang untuk berjalan pada perangkat keras yang berbeda. Ini memungkinkan aplikasi untuk menurunkan performa dengan baik berdasarkan kemampuan perangkat keras yang terdeteksi.

Sekumpulan teknik dapat dikelompokkan dalam grup (yang menggunakan sintaks "fxgroup"). Teknik dapat dikelompokkan dengan cara apa pun. Misalnya, beberapa grup dapat dibuat, satu per materi; setiap materi dapat memiliki teknik untuk setiap tingkat perangkat keras; setiap teknik akan memiliki satu set pass yang mendefinisikan materi pada perangkat keras tertentu.

Di bagian ini

Topik Deskripsi
Mengatur Status dalam Efek
Dengan Direct3D 11, status efek untuk tahap alur tertentu diatur oleh struktur.
Antarmuka Sistem Efek
Sistem efek mendefinisikan beberapa antarmuka untuk mengelola status efek.
Mengkhususkan Antarmuka
ID3DX11EffectVariable memiliki sejumlah metode untuk mentransmisikan antarmuka ke jenis antarmuka tertentu yang Anda butuhkan.
Antarmuka dan Kelas dalam Efek
Ada banyak cara untuk menggunakan kelas dan antarmuka di Efek 11.
Merender Efek
Efek dapat digunakan untuk menyimpan informasi, atau untuk merender menggunakan sekelompok status.
Mengkloning Efek
Mengkloning efek menciptakan salinan efek yang kedua dan hampir identik.
Sintaks Keluar Aliran
Shader geometri dengan stream out dinyatakan dengan sintaks tertentu.
Perbedaan Antara Efek 10 dan Efek 11
Topik ini menunjukkan perbedaan antara Efek 10 dan Efek 11.

Panduan Pemrograman untuk Direct3D 11