Sintaks Teknik Efek (Direct3D 10)
Teknik efek dideklarasikan dengan sintaks berikut.
technique10 TechniqueName [ <Anotasi> ]
{
- pass *PassName* \[ <*Anotasi* > \] {
- \[ *SetStateGroup*; \] \[ *SetStateGroup*; \] ... \[ *SetStateGroup*; \]
}
Parameter
-
teknik10
-
Kata kunci yang diperlukan.
-
Nama Teknik
-
Pilihan. String ASCII yang secara unik mengidentifikasi nama teknik efek.
-
Anotasi
-
[in] Opsional. Satu atau beberapa bagian informasi yang disediakan pengguna (metadata) yang diabaikan oleh sistem efek. Untuk sintaks, lihat Sintaks Anotasi (Direct3D 10).
-
Lulus
-
Kata kunci yang diperlukan.
-
PassName
-
[in] Opsional. String ASCII yang secara unik mengidentifikasi nama pass.
-
SetStateGroup
-
[in] Atur satu atau beberapa grup status seperti:
StateGroup Sintaks Status Campuran SetBlendState( arguments );
Lihat [OMSetBlendState](/windows/desktop/api/D3D10/nf-d3d10-id3d10device-omsetblendstate) untuk daftar argumen.
Status stensil kedalaman SetDepthStencilState( arguments );
Lihat OMSetDepthStencilState untuk daftar argumen.
Status Rasterizer SetRasterizerState( arguments );
Lihat [RSSetState](/windows/desktop/api/D3D10/nf-d3d10-id3d10device-rssetstate) untuk daftar argumen.
Status Shader SetXXXShader( CompileShader( shader_profile, ShaderFunction( args ) ) );
atau
SetXXXShader( CompileShader( NULL ) );
atau
SetXXXShader( NULL );
SetXXXShader adalah salah satu SetVertexShader, SetGeometryShader, atau SetPixelShader (yang mirip dengan metode API VSSetShader, GSSetShader, dan PSSetShader).
Grup status efek tercantum dalam status efek.
Contoh
Contoh ini (dari sampel CubeMapGS) menetapkan status blending.
BlendState NoBlend
{
BlendEnable[0] = False;
};
...
technique10
{
pass p2
{
...
SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );
}
}
Contoh ini menyiapkan status rasterizer untuk merender objek dalam wireframe.
RasterizerState rsWireframe { FillMode = WireFrame; };
...
technique10
{
pass p1
{
....
SetRasterizerState( rsWireframe );
}
}
Contoh ini menetapkan status shader (dari sampel BasicHLSL10); yang menggunakan vertex dan pixel shader.
technique10 RenderSceneWithTexture1Light
{
pass P0
{
SetVertexShader( CompileShader( vs_4_0, RenderSceneVS( 1, true, true ) ) );
SetGeometryShader( NULL );
SetPixelShader( CompileShader( ps_4_0, RenderScenePS( true ) ) );
}
}
Topik terkait