다음을 통해 공유


셰이더 형식

효과에서 셰이더 변수를 선언하는 구문이 Direct3D 9에서 Direct3D 10으로 변경되었습니다.

Direct3D 10의 셰이더 형식

셰이더 형식 구문을 사용하여 효과 패스(Direct3D 10) 내에서 셰이더 변수를 선언합니다.

SetPixelShader Compile( ShaderTarget, ShaderFunction ); SetGeometryShader Compile( ShaderTarget, ShaderFunction ); SetVertexShader Compile( ShaderTarget, ShaderFunction );

매개 변수

항목 설명
SetXXXShader
셰이더 개체를 만드는 Direct3D API 호출입니다. SetPixelShader, SetGeometryShader 또는 SetVertexShader일 수 있습니다.
ShaderTarget
컴파일할 셰이더 모델입니다. 이는 모든 Direct3D 9 대상과 셰이더 모델 4 대상(vs_4_0, gs_4_0 및 ps_4_0)을 포함한 모든 대상에 유효합니다.
ShaderFunction
셰이더 진입점 함수의 이름이 포함된 ASCII 문자열입니다. 셰이더가 호출될 때 실행을 시작하는 함수입니다. (...)는 셰이더 인수를 나타냅니다. 다음은 셰이더 만들기 API에 전달되는 동일한 인수입니다.VSSetShader 또는 GSSetShader 또는 PSSetShader.

다음은 특정 셰이더 모델용으로 컴파일된 꼭짓점 셰이더 및 픽셀 셰이더 개체를 만드는 예입니다. Direct3D 10 예에서는 기하 도형 셰이더가 없으므로 포인터가 NULL로 설정됩니다.

// Direct3D 10
technique10 Render
{
    pass P0
    {
        SetVertexShader( CompileShader( vs_4_0, VS() ) );
        SetGeometryShader( NULL );
        SetPixelShader( CompileShader( ps_4_0, PS() ) );
    }
}

Direct3D 9의 셰이더 형식

셰이더 형식 구문을 사용하여 효과 패스(Direct3D 9용) 내에서 셰이더 변수를 선언합니다.

PixelShader = compile ShaderTarget ShaderFunction(...);VertexShader = compile ShaderTarget ShaderFunction(...);

매개 변수

항목 설명
XXXShader
컴파일된 셰이더를 나타내는 셰이더 변수입니다. PixelShader 또는 VertexShader일 수 있습니다.
ShaderTarget
컴파일할 셰이더 모델입니다. 셰이더 변수의 형식에 따라 다릅니다.
ShaderFunction(...)
셰이더 진입점 함수의 이름이 포함된 ASCII 문자열입니다. 셰이더가 호출될 때 실행을 시작하는 함수입니다. (...)는 셰이더 인수를 나타냅니다. 다음은 셰이더 만들기 API에 전달되는 동일한 인수입니다. SetVertexShader 또는 SetPixelShader.

다음은 특정 셰이더 모델용으로 컴파일된 꼭짓점 셰이더 및 픽셀 셰이더 개체의 예입니다.

// Direct3D 9
technique RenderSceneWithTexture1Light
{
    pass P0
    {          
        VertexShader = compile vs_2_0 RenderSceneVS( 1, true, true );
        PixelShader  = compile ps_2_0 RenderScenePS( true );
    }
}

추가 정보

데이터 형식(DirectX HLSL)