함수 인수
함수는 하나 이상의 입력 인수를 사용합니다. 각 인수를 선언하려면 다음 구문을 사용합니다.
[InputModifier] 형식 이름 [: 의미 체계] [InterpolationModifier] [= Initializers] |
[한정자] 형식 이름 [: 의미 체계] [: 보간 한정자] [= 이니셜라이저]
여러 함수 인수가 있는 경우 쉼표로 구분됩니다.
매개 변수
항목 | 묘사 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
inputModifier |
인수를 입력, 출력 또는 둘 다로 식별하는 선택적 용어입니다.
매개 변수는 항상 값으로 전달됩니다. in은 함수가 시작되기 전에 호출 애플리케이션에서 매개 변수 값을 복사해야 했음을 나타냅니다. out은 매개 변수의 마지막 값을 복사하고 함수가 반환될 때 호출 애플리케이션으로 반환되어야 했음을 나타냅니다. inout은 둘 다 지정하기 위한 약식입니다. 균일한 값은 상수 레지스터에서 가져옵니다. 각 꼭짓점 셰이더 또는 픽셀 셰이더 호출은 균일한 변수에 대해 동일한 초기 값을 표시합니다. 전역 변수는 균일하게 선언된 것처럼 처리됩니다. 최상위가 아닌 함수의 경우 uniform은 동의어입니다. 매개 변수 사용이 지정되지 않은 경우 매개 변수 사용은 것으로 간주됩니다. |
||||||||||
형식 |
인수 형식입니다. 는 유효한 HLSL 형식수 있습니다. |
||||||||||
이름 |
셰이더 함수의 이름을 고유하게 식별하는 ASCII 문자열입니다. |
||||||||||
의미 체계 |
데이터의 의도된 사용량을 식별하는 선택적 문자열입니다(의미 체계(DirectX HLSL)참조). |
||||||||||
InterpolationModifier |
선택적 보간 한정자 셰이더가 보간 방법을 결정할 수 있도록 합니다. 함수 인수의 보간 한정자는 픽셀 셰이더 함수에 대한 입력으로 사용되는 인수에만 적용됩니다. |
||||||||||
이니셜라이저 |
초기화를 위한 선택적 값입니다. 다중 구성 요소 데이터 형식을 초기화하려면 여러 값이 필요합니다. |
발언
함수 인수는 함수 선언에서 쉼표로 구분된 인수 목록에 나열됩니다. C 함수와 마찬가지로 각 인수에는 매개 변수 이름과 형식이 선언되어 있어야 합니다. HLSL 함수에 대한 인수는 선택적으로 의미 체계, 초기 값 및 픽셀 셰이더 입력에 보간 형식을 포함할 수 있습니다.
함수 인수의 형식 멤버별 보간 한정자를 포함할 수 있는 구조체일 수 있습니다. 함수 인수에도 보간 한정자가 있는 경우 함수 인수 한정자는 Type 내에서 선언된 보간 한정자를 재정의합니다.
예제
이 예제(BasicHLSL10 샘플)는 꼭짓점 셰이더 함수에 대한 균일하고 균일하지 않은 입력을 보여 줍니다.
VS_OUTPUT RenderSceneVS(
float4 vPos : POSITION,
float3 vNormal : NORMAL,
float2 vTexCoord0 : TEXCOORD,
uniform int nNumLights,
uniform bool bTexture,
uniform bool bAnimate )
{
...
}
이 예제(ContentStreaming 샘플)는 입력 구조를 사용하여 인수를 픽셀 셰이더 함수에 전달합니다.
VSBasicIn input
struct VSBasicIn
{
float4 Pos : POSITION;
float3 Norm : NORMAL;
float2 Tex : TEXCOORD0;
};
PSBasicIn VSBasic(VSBasicIn input)
{
...
}