Синтаксис метода эффектов (Direct3D 11)
Метод эффекта объявляется с помощью синтаксиса, описанного в этом разделе.
TechniqueVersion TechniqueName [ <Заметки> ]
{
- pass *PassName* \[ <*Annotations* > \] {
- \[ *SetStateGroup*; \] \[ *SetStateGroup*; \] ... \[ *SetStateGroup*; \]
}
Параметры
Элемент | Описание | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TechniqueVersion |
Либо метод10, либо метод11. Методы, использующие функции, новые для Direct3D 11 (шейдеры 5_0, BindInterfaces и т. д.), должны использовать метод 11. |
||||||||||||||||||
Имя метода |
Необязательный элемент. Строка ASCII, однозначно идентифицирующая имя метода эффекта. |
||||||||||||||||||
<
Аннотации > |
[в] Необязательно. Один или несколько фрагментов предоставленных пользователем сведений (метаданных), которые игнорируются системой эффектов. Синтаксис см. в разделе Синтаксис заметки (Direct3D 11). |
||||||||||||||||||
Пройти |
Обязательный ключевое слово. |
||||||||||||||||||
PassName |
[в] Необязательно. Строка ASCII, однозначно идентифицирующая имя прохода. |
||||||||||||||||||
SetStateGroup |
[in] Задайте одну или несколько групп состояний, например:
|
Примеры
В этом примере задается состояние смешивания.
BlendState NoBlend
{
BlendEnable[0] = False;
};
...
technique10
{
pass p2
{
...
SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );
}
}
В этом примере настраивается состояние растеризатора для отрисовки объекта в проволочной рамке.
RasterizerState rsWireframe { FillMode = WireFrame; };
...
technique10
{
pass p1
{
....
SetRasterizerState( rsWireframe );
}
}
В этом примере задается состояние шейдера.
technique10 RenderSceneWithTexture1Light
{
pass P0
{
SetVertexShader( CompileShader( vs_4_0, RenderSceneVS( 1, true, true ) ) );
SetGeometryShader( NULL );
SetPixelShader( CompileShader( ps_4_0, RenderScenePS( true ) ) );
}
}