다음을 통해 공유


dp3 - ps

원본 레지스터의 3-구성 요소 내적을 계산합니다.

Syntax

dp3 dst, src0, src1

 

라는 설치 관리자 실행 파일에 포함됩니다. 여기서

  • dst는 대상 레지스터입니다.
  • src0은 원본 레지스터입니다.
  • src1은 원본 레지스터입니다.

설명

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

 

다음 코드 조각은 수행된 연산을 보여 줍니다.

dest.x = dest.y = dest.z = dest.w = 
  (src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z);

이 명령은 벡터 파이프라인에서 실행되며 항상 색 채널에 기록됩니다. 버전 1_4의 경우 이 명령은 계속해서 벡터 파이프라인을 사용하지만 어떠한 채널에도 쓸 수 있습니다.

아래와 같이 대상 레지스터 .rgb(.xyz) 쓰기 마스크를 사용하는 명령이 dp3과 함께 실행될 수 있습니다.

dp3 r0.rgb, t0, v0            // Copy scalar result to color components
+mov r2.a, t0                 // Copy alpha component from t0 in parallel 

dp3 명령은 부호 있는 동적 범위로 아직 확장되지 않은 경우 입력 인수에 적용된 원본 레지스터 부호 있는 크기 조정 입력 인수 한정자(_bx2)를 사용하여 수정할 수 있습니다. 조명 셰이더의 경우 다음 예제에 표시된 것처럼 채도 명령 한정자(_sat)는 음수 값을 검은색으로 고정하는데 종종 사용됩니다.

dp3_sat r0, t0_bx2, v0_bx2    // t0 is a bump map, v0 contains the light direction

픽셀 셰이더 명령