dcl_input_sv(sm4 - asm)

이전 단계에서 제공될 시스템 값을 예상하는 셰이더 입력 레지스터를 선언합니다.

dcl_input_sv vN[.mask], systemValueName[, interpolationMode]
항목 Description
vN
[in] 꼭짓점 데이터 레지스터입니다.
  • N은 레지스터 번호를 식별하는 정수입니다.
  • [.mask]는 사용할 레지스터 성분을 지정하는 선택적 성분 마스크(.xyzw)입니다.
systemValueName
[in] "SV_" 접두사가 없는 문자열(시스템 값 의미 체계 참조)인 시스템 값 이름입니다.
interpolationMode
[in] 선택적 항목으로, 래스터화 중에 값이 계산되는 방식에 영향을 미치는 보간 모드입니다. 이 모드는 픽셀 셰이더에서만 사용됩니다. 다음 값 중 하나일 수 있습니다.
  • constant - 레지스터 값 사이를 보간하지 않습니다.
  • linear - 레지스터 값 사이를 선형으로 보간합니다.
  • linearCentroid - 선형과 동일하지만 다중 샘플링 시 중심이 클램프됩니다.
  • linearNoperspective - 선형과 동일하지만 원근 보정이 없습니다.
  • linearNoperspectiveCentroid - 선형과 동일하지만 원근 보정이 없고 다중 샘플링 시 중심이 클램프됩니다.

시스템 값 선언에 대한 성분 마스크는 [xyzw]의 적절한 하위 집합일 수 있습니다. 선언은 겹칠 수 없습니다(각 선언은 xyzw 시퀀스를 따라야 함). 스칼라 시스템 값(예: 클립 거리 및 컬 거리)을 선언할 때 단일 레지스터에서 여러 시스템 값을 선언할 수 있습니다. 그렇게 하는 경우 보간 모드와 같은 다른 한정자가 일치하는지 확인합니다.

이 명령은 다음 셰이더 단계에 적용됩니다.

꼭짓점 셰이더 기하 도형 셰이더 픽셀 셰이더
x x x

이 명령은 어셈블리에서 셰이더 디버그를 돕기 위해 포함되었습니다. 셰이더 모델 4를 사용하여 어셈블리 언어로 셰이더를 작성할 수 없습니다.

다음은 몇 가지 예입니다.

// valid
dcl_input v0.y, linear
dcl_input_sv v0.w, clipDistance
dcl_input_sv v0.z, cullDistance
// invalid declarations
dcl_input v0.y, linear
dcl_input_sv v0.x, clipDistance  // the y component was previously declared, this declaration must use 
                                 // either the z or w component

dcl_input v0.y, linearNoPerspective                  // the interpolation mode is linear-no-perspective
dcl_input_sv v0.z, renderTargetArrayIndex, constant  // the interpolation modes is constant
                                                     // the interpolation modes must match

최소 셰이더 모델

이 함수는 다음 셰이더 모델에서 지원됩니다.

셰이더 모델 지원됨
셰이더 모델 5
셰이더 모델 4.1
셰이더 모델 4
셰이더 모델 3(DirectX HLSL) 아니요
셰이더 모델 2(DirectX HLSL) 아니요
셰이더 모델 1(DirectX HLSL) 아니요

셰이더 모델 4 어셈블리(DirectX HLSL)