효과 함수 구문(Direct3D 10)

효과 함수는 HLSL로 작성되며 다음 구문을 사용하여 선언됩니다.

Syntax

ReturnTypeFunctionName ( [ ArgumentList ] )

{

\[ *Statements* \]

};

속성 설명
ReturnType 모든 HLSL 형식
FunctionName 셰이더 함수의 이름을 고유하게 식별하는 ASCII 문자열입니다.
ArgumentList 하나 이상의 인수를 쉼표로 구분합니다( 함수 인수(DirectX HLSL 참조)).
함수 본문을 구성하는 하나 이상의 문 (DirectX HLSL 참조)입니다. 함수가 본문 없이 정의되면 프로토타입으로 간주됩니다. 및 는 사용 전에 본문으로 다시 정의해야 합니다.

 

효과 함수는 셰이더이거나 단순히 셰이더에서 호출하는 함수일 수 있습니다. 함수는 이름, 매개 변수 형식 및 대상 플랫폼으로 고유하게 식별됩니다. 따라서 함수를 오버로드할 수 있습니다. 모든 유효한 HLSL 함수는 이 형식에 맞아야 합니다. HLSL 함수에 대한 자세한 구문 목록은 함수(DirectX HLSL)를 참조하세요.

예제

BasicHLSL10 샘플은 픽셀 셰이더와 꼭짓점 셰이더를 모두 사용합니다. 픽셀 셰이더 함수를 RenderScenePS라고 하며 아래에 나와 있습니다.

       
PS_OUTPUT RenderScenePS( VS_OUTPUT In,
                         uniform bool bTexture ) 
{ 
    PS_OUTPUT Output;

    // Lookup mesh texture and modulate it with diffuse
    if( bTexture )
        Output.RGBColor = g_MeshTexture.Sample(MeshTextureSampler, In.TextureUV) *  
                              In.Diffuse;
    else
        Output.RGBColor = In.Diffuse;

    return Output;
}

효과 형식