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에 의해 출력된 단일 깊이 값이 각 하위 픽셀 깊이 비교 테스트에 사용됩니다.
관련 항목