효과 기술 구문(Direct3D 10)
효과 기술은 다음 구문을 사용하여 선언됩니다.
technique10 TechniqueName [ <Annotations> ]
{
- pass *PassName* \[ <*Annotations* > \] {
- \[ *SetStateGroup*; \] \[ *SetStateGroup*; \] ... \[ *SetStateGroup*; \]
}
매개 변수
-
technique10
-
필수 키워드입니다.
-
TechniqueName
-
선택 사항입니다. 효과 기술의 이름을 고유하게 식별하는 ASCII 문자열입니다.
-
주석
-
[in] 선택적 항목으로, 효과 시스템에서 무시되는 하나 이상의 사용자 제공 정보(메타데이터)입니다. 구문은 주석 구문(Direct3D 10)을 참조하세요.
-
전달
-
필수 키워드입니다.
-
PassName
-
[in] 선택적 항목으로, 패스의 이름을 고유하게 식별하는 ASCII 문자열입니다.
-
SetStateGroup
-
[in] 다음과 같은 하나 이상의 상태 그룹을 설정합니다.
StateGroup Syntax 혼합 상태 SetBlendState( arguments );
인수 목록은 [OMSetBlendState](/windows/desktop/api/D3D10/nf-d3d10-id3d10device-omsetblendstate)를 참조하세요.
깊이 스텐실 상태 SetDepthStencilState( arguments );
인수 목록은 OMSetDepthStencilState 를 참조하세요.
래스터라이저 상태 SetRasterizerState( arguments );
인수 목록은 [RSSetState](/windows/desktop/api/D3D10/nf-d3d10-id3d10device-rssetstate)를 참조하세요.
셰이더 상태 SetXXXShader( CompileShader( shader_profile, ShaderFunction( args ) ) );
또는
SetXXXShader( CompileShader( NULL ) );
또는
SetXXXShader( NULL );
SetXXXShader는 SetVertexShader, SetGeometryShader 또는 SetPixelShader 중 하나입니다(API 메서드 VSSetShader, GSSetShader 및 PSSetShader와 유사).
효과 상태 그룹은 효과 상태로 나열됩니다.
예제
이 예제( CubeMapGS 샘플에서)는 혼합 상태를 설정합니다.
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 );
}
}
다음은 셰이더 상태를 설정하는 예제입니다( BasicHLSL10 샘플에서). 꼭짓점 및 픽셀 셰이더를 사용합니다.
technique10 RenderSceneWithTexture1Light
{
pass P0
{
SetVertexShader( CompileShader( vs_4_0, RenderSceneVS( 1, true, true ) ) );
SetGeometryShader( NULL );
SetPixelShader( CompileShader( ps_4_0, RenderScenePS( true ) ) );
}
}
관련 항목