ps_3_0 레지스터
픽셀 셰이더는 꼭짓점 데이터를 가져오고, 픽셀 데이터를 출력하고, 계산 중에 임시 결과를 유지하고, 텍스처 샘플링 단계를 식별하기 위해 레지스터에 의존합니다. 각각 고유한 기능을 가진 여러 형식의 레지스터가 있습니다. 이 섹션에는 픽셀 셰이더 버전 3_0에 의해 구현된 입출력 레지스터에 대한 참조 정보가 포함되어 있습니다.
새 레지스터
입력 레지스터
입력 레지스터(v#)는 이제 완전히 부동 소수점이며 텍스처 좌표 레지스터(t#)가 여기에 통합되었습니다. 셰이더 상단의 dcl_semantics(sm3 - ps asm)는 특정 Input_Register에 포함된 내용을 설명하는 데 사용됩니다. 이 모델에는 픽셀 형식에 대한 의미 체계가 도입되었습니다(꼭짓점 쪽과 유사). 입력 레지스터가 텍스처 좌표와 같은 색상으로 정의되면 클램핑이 수행되지 않습니다. 색상으로 정의된 레지스터의 평가는 멀티샘플링 시 텍스처 좌표와 다릅니다.
얼굴 레지스터
얼굴 레지스터(vFace)는 이 모델의 새로운 기능입니다. 이는 결국 기본 형식 영역을 포함하게 될 부동 소수점 스칼라 레지스터입니다. 그러나 ps_3_0에서는 이 레지스터의 부호만 유효합니다. 따라서 값이 0보다 작으면(부호 비트가 음수로 설정됨) 기본 형식은 후면입니다(영역은 음수, 시계 반대 방향). 따라서 ps_3_0에서는 이 레지스터를 0(> 0 또는 < 0)과 비교하는 것이 의미가 있습니다. 픽셀 셰이더 내에서 애플리케이션은 사용할 조명 기술을 결정할 수 있습니다. 이 방법으로 양면 조명을 얻을 수 있습니다. 이 레지스터에는 선언이 필요하므로 선언되지 않은 사용은 오류로 표시됩니다. 줄 및 점 기본 형식의 경우 이 레지스터는 정의되지 않습니다. 얼굴 레지스터는 다음 명령과 함께 조건으로만 사용할 수 있습니다. setp_comp - ps, if_comp - ps 또는 break_comp - ps.
루프 카운터 레지스터
루프 카운터 레지스터(aL)는 이 모델의 새로운 기능입니다. loop - ps/endloop - ps 블록을 실행할 때마다 자동으로 증가합니다. 필요한 경우 상대 주소 지정을 위해 블록에서 사용할 수 있습니다. 루프 외부에서 루프 카운터 레지스터를 사용하는 것은 유효하지 않습니다.
위치 레지스터
위치 레지스터(vPos)는 이 모델의 새로운 기능입니다. 해당 채널의 현재 픽셀(x, y)을 포함합니다. (z, w) 채널은 정의되지 않습니다. 이 레지스터에는 선언이 필요하므로 선언되지 않은 사용은 오류로 표시됩니다. 선언될 때 이 레지스터는 .x, .y, .xy 마스크 중 정확히 하나를 가져야 합니다.
입력 레지스터 형식
등록 | 속성 | 개수 | R/W | # 읽기 포트 | # 읽기/inst | 차원 | RelAddr | 기본값 | DCL 필요 |
---|---|---|---|---|---|---|---|---|---|
v# | 입력 레지스터 | 10 | R | 1 | 제한 없음 | 4 | aL | None | Yes |
r# | 임시 등록 | 32 | R/W | 3 | 제한 없음 | 4 | 예 | None | No |
C# | 상수 Float 레지스터 | 224 | R | 1 | 제한 없음 | 4 | 예 | 0000 | No |
i# | 상수 정수 레지스터 | 16 | R | 1 | 1 | 4 | 예 | 0000 | No |
b# | 상수 부울 레지스터 | 16 | R | 1 | 1 | 1 | 예 | FALSE | 예 |
p0 | 조건자 레지스터 | 1 | R | 1 | 1 | 1 | 예 | None | No |
s# | 샘플러(Direct3D 9 asm-ps) | 16 | R | 1 | 1 | 4 | 예 | 참고 1 참조 | Yes |
vFace | Face_Register | 1 | R | 1 | 제한 없음 | 1 | 예 | None | Yes |
vPos | Position_Register | 1 | R | 1 | 제한 없음 | 4 | 예 | None | Yes |
aL | Loop_Counter_Register | 1 | R | 1 | 제한 없음 | 1 | 해당 없음 | 없음 | No |
참고:
- 샘플러 조회에 대한 기본값이 있지만 값은 텍스처 형식에 따라 다릅니다.
읽기 포트 수는 단일 명령에서 읽을 수 있는 서로 다른 레지스터(레지스터 형식별)의 수입니다.
출력 레지스터 형식
등록 | 속성 | 개수 | R/W | 차원 | RelAddr | 기본값 | DCL 필요 |
---|---|---|---|---|---|---|---|
oC# | 출력 색상 레지스터 | 다중 요소 텍스처(Direct3D 9)를 참조하세요. | W | 4 | 예 | None | No |
oDepth | 출력 깊이 레지스터 | 1 | W | 1 | 예 | None | 아니요 |
관련 항목