효과 변수 구문(Direct3D 10)

효과 변수는 다음 구문을 사용하여 선언됩니다.

Syntax

DataTypeVariableName [ : SemanticName ] <주석>;

속성 Description
DataType 모든 기본 또는 텍스처 유형입니다.
VariableName 효과 변수의 이름을 고유하게 식별하는 ASCII 문자열입니다.
SemanticName 변수를 사용하는 방법에 대한 추가 정보를 나타내는 ASCII 문자열입니다. 의미 체계는 미리 정의된 시스템 값 또는 사용자 지정 사용자 문자열일 수 있는 ASCII 문자열입니다.
주석 효과 시스템에서 무시되는 하나 이상의 사용자 제공 정보(메타데이터)입니다. 구문은 주석 구문(Direct3D 10)을 참조하세요.

 

모든 함수 외부에서 선언된 효과 변수는 scope 전역으로 간주됩니다. 함수 내에서 선언된 변수는 해당 함수의 로컬 변수입니다.

예제

BasicHLSL10 샘플은 재질 색, 밝은 속성 및 변환 행렬에 대한 의미 체계 없이 전역 변수를 사용합니다.

이 예제에서는 전역 효과 변수를 보여 줍니다.

float4 g_MaterialAmbientColor;      // Material's ambient color
float4 g_MaterialDiffuseColor;      // Material's diffuse color
float3 g_LightDir[3];               // Light's direction in world space
float4x4 g_mWorld;                  // World matrix for object

이 예제에서는 셰이더 함수에 로컬인 효과 변수를 보여 줍니다.

VS_OUTPUT RenderSceneVS( ... )
{
    float3 vNormalWorldSpace;
    float4 vAnimatedPos;

    // shader body
}

이 예제에서는 의미 체계가 있는 함수 매개 변수를 보여 줍니다.

VS_OUTPUT RenderSceneVS( float4 vPos : SV_POSITION,
                         float3 vNormal : NORMAL,
                         float2 vTexCoord0 : TEXCOORD0,
                         uniform int nNumLights,
                         uniform bool bTexture,
                         uniform bool bAnimate )
{
  ...
}

이 예제에서는 텍스처 변수 선언을 보여 줍니다.

Texture2D g_MeshTexture;            // Color texture for mesh

텍스처 샘플링은 텍스처 샘플러를 사용하여 수행됩니다. 효과에 샘플러를 설정하려면 샘플러 유형을 참조하세요.

효과 형식