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)
관련 항목