Sintaks Grup Efek (Direct3D 11)
Grup efek dideklarasikan dengan sintaks yang dijelaskan di bagian ini.
fxgroup GroupName [ <Annotations > ]
{
TechniqueVersion TechniqueName [ <Annotations > ]
{
...
}
TechniqueVersion TechniqueName [ <Annotations > ]
{
...
}
}
Parameter
Item | Deskripsi |
---|---|
fxgroup |
kata kunci yang dikueri. |
GroupName |
Wajib diisi. String ASCII yang secara unik mengidentifikasi nama grup efek. Tidak seperti teknik, grup harus memiliki nama untuk memastikan bahwa teknik memiliki pengidentifikasi unik (lihat bagian Grup dan Teknik di bawah). |
< Anotasi > |
[in] Opsional. Satu atau beberapa bagian informasi yang disediakan pengguna (metadata) yang diabaikan oleh sistem efek. Untuk sintaks, lihat Sintaks Anotasi (Direct3D 11). |
TechniqueVersion |
Baik "technique10" atau "technique11". Teknik yang menggunakan fungsionalitas baru untuk Direct3D 11 (shader 5_0, BindInterfaces, dll) harus menggunakan "technique11". |
Nama Teknik |
Pilihan. String ASCII yang secara unik mengidentifikasi nama teknik efek. |
Grup dan Teknik
Untuk mempertahankan kompatibilitas dengan efek fx_4_0, grup bersifat opsional. Ada grup implisit bernama NULL yang mengelilingi semua teknik global.
Pertimbangkan contoh berikut:
technique11 GlobalTech
{
}
fxgroup Group1
{
technique11 Tech1 { ... }
technique11 Tech2 { ... }
}
fxgroup Group2
{
technique11 Tech1 { ... }
technique11 Tech2 { ... }
}
Di C++, seseorang bisa mendapatkan teknik berdasarkan nama dengan dua cara. Perintah berikut akan menemukan teknik yang jelas:
pEffect->GetTechniqueByName( "GlobalTech" );
pEffect->GetTechniqueByName( "|GlobalTech" );
pEffect->GetTechniqueByName( "Group1|Tech1" );
pEffect->GetTechniqueByName( "Group1|Tech2" );
pEffect->GetTechniqueByName( "Group2|Tech1" );
pEffect->GetTechniqueByName( "Group2|Tech2" );
pEffect->GetGroupByName("Group1")->GetTechniqueByName( "Tech1" );
pEffect->GetGroupByName("Group1")->GetTechniqueByName( "Tech2" );
pEffect->GetGroupByName("Group2")->GetTechniqueByName( "Tech1" );
pEffect->GetGroupByName("Group2")->GetTechniqueByName( "Tech2" );
Untuk memastikan bahwa ID3DX11Effect::GetTechniqueByName berfungsi sama dengan Efek 10, semua grup yang ditentukan harus memiliki nama.