다음을 통해 공유


dcl_semantics(sm3 - ps asm)

꼭짓점 셰이더 출력과 픽셀 셰이더 입력 간의 연결을 선언합니다.

Syntax

dcl_semantics [_centroid] dst[.write_mask]

 

여기서

  • _semantics: 의도한 데이터 사용량을 식별하며, D3DDECLUSAGE 의 값 중 하나일 수 있습니다(D3DDECLUSAGE_ prefix 없음). 또한 시맨틱에 정수 인덱스를 추가하여 유사한 시맨틱을 사용하는 매개 변수를 구분할 수 있습니다.
  • [_Centroid]는 선택적 명령 한정자입니다. 입력 레지스터를 선언하는 dcl_usage 지침 및 텍스처 조회 명령에서 지원됩니다. centroid는 공백 없이 추가됩니다.
  • dst: 대상 레지스터입니다. ps_3_0 레지스터를 참조하세요.
  • write_mask: 동일한 출력 레지스터는 고유한 쓰기 마스크를 사용할 때마다 여러 번 선언할 수 있습니다(따라서 개별 구성 요소에 다른 시맨틱을 적용할 수 있음). 그러나 동일한 시맨틱은 선언에서 여러 번 사용할 수 없습니다. 즉, 벡터는 4-구성 요소 이하여야 하며 4-구성 요소 레지스터 경계(개별 출력 레지스터)를 넘을 수 없습니다. _psize 시맨틱을 사용하는 경우 스칼라로 간주되므로 전체 쓰기 마스크를 가져야 합니다. _position 시맨틱을 사용하는 경우 네 가지 구성 요소를 모두 써야 하므로 전체 쓰기 마스크가 있어야 합니다.

설명

픽셀 셰이더 버전 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
dcl_usage x x

 

모든 dcl_usage 명령은 실행 가능한 첫 번째 명령 앞에 나타나야 합니다.

선언 예

ps_3_0

; Declaring inputs
dcl_normal      v0.xyz
dcl_blendweight v0.w ; Must be same reg# as normal, matching vshader packing
dcl_texcoord1   v1.y ; Mask can be any subset of mask from vshader semantic
dcl_texcoord0   v1.zw; Has to be same reg# as texcoord1, to match vshader

; Declaring samplers
dcl_2d s0
dcl_2d s1

def c0, 0, 0, 0, 0

mov r0.x, v1.y ; texcoord1
mov r0.y, c0
texld r0, r0, s0

texld r1, v1.zw, s1
...
(output regs in ps_3_0 are same as ps_2_0: oC0-oC3, oDepth)

픽셀 셰이더 명령

Antialias 샘플