관련 색인이 없습니다.
texm3x2depth (픽셀 셰이더)
 
Microsoft DirectX 9.0

texm3x2depth (픽셀 셰이더)


이 픽셀에 대한 깊이 테스트로 사용하는 깊이값을 계산한다.

구문

texm3x2depth  dest,  src

레지스터

dest
출력 레지스터.
src
입력 레지스터.

주의

픽셀 셰이더의 버전1_11_21_31_42_02_x2_sw3_03_sw
texm3x2depthx

이 명령은,texm3x2pad 명령과 함께 사용해야 한다.

이러한 2 개의 명령을 사용할 때, 텍스처 레지스터는 다음의 순서에 따를 필요가 있다.

 
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 가 이 범위외의 경우, 깊이 버퍼에 저장 되는 결과는 정의되지 않게 된다.

tex3x2depth 의 실행 후는, 레지스터 t(m+1)는 셰이더에서는 사용할 수 없게 된다.

멀티 샘플링으로 이 명령을 사용하면 고해상도의 깊이 버퍼가 가지는 이점의 대부분이 없어진다. 픽셀 셰이더는 픽셀 마다 1 회 실행되므로, 서브 픽셀의 깊이 비교 테스트마다,texm3x2depth (픽셀 셰이더) 또는 texdepth 가 출력하는 단일의 깊이값이 사용된다.

시스템 요건

최저한의 operating system Windows 98


© 2002 Microsoft Corporation. All rights reserved.
↑TOP