다음을 통해 공유


texm3x2depth - ps

이 픽셀의 깊이 테스트에 사용할 깊이 값을 계산합니다.

Syntax

texm3x2depth dst, src

 

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

  • dst는 대상 레지스터입니다.
  • src는 원본 레지스터입니다.

설명

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

 

이 명령은 texm3x2pad - ps 명령과 함께 사용해야 합니다.

이 두 명령을 사용할 때 텍스처 레지스터는 다음 시퀀스를 사용해야 합니다.

 
tex t(n)                     // Define tn as a standard 3-vector.(tn must be 
                             // defined in some way before it is used
texm3x2pad   t(m),   t(n)    // Where m > n
                             // Calculate z value
texm3x2depth t(m+1), t(n)    // Calculate w value; use both z and w to
                             // find depth

깊이 계산은 내적 연산을 사용하여 z와 w를 찾은 후에 수행됩니다. 깊이 계산이 수행되는 방법에 대한 자세한 내용은 다음과 같습니다.

texm3x2pad 명령은 z를 계산합니다.

z = TextureCoordinates(stage m)UVW * t(n)RGB

texm3x2depth 명령은 w를 계산합니다.

w = TextureCoordinates(stage m+1)UVW * t(n)RGB

깊이를 계산하고 결과를 t(m+1)에 저장합니다.

 
if (w == 0)
  t(m+1) = 1.0
else
  t(m+1) = z/w

계산된 깊이는 픽셀의 깊이 테스트에 사용되도록 태그 지정되어 픽셀의 기존 깊이 테스트 값을 바꿉니다.

z/w를(0-1) 범위에 클램프해야 합니다. z/w가 이 범위를 벗어나면 깊이 버퍼에 저장된 결과가 정의되지 않습니다.

texm3x2depth를 실행한 후 셰이더에서 레지스터 t(m+1)을 더 이상 사용할 수 없습니다.

멀티샘플링 시 이 명령을 사용하면 고해상도 깊이 버퍼의 이점이 대부분 제거됩니다. 픽셀 셰이더는 픽셀당 한 번 실행되기 때문에 texm3x2depth 또는 texdepth - ps에 의해 출력된 단일 깊이 값이 각 하위 픽셀 깊이 비교 테스트에 사용됩니다.

픽셀 셰이더 명령