UNITY_REVERSED_Z - 리버스 Z 버퍼를 사용하는 플랫폼에서 정의합니다. 저장되는 Z 값의 범위는 10이 아니라 01입니다.
https://docs.unity3d.com/kr/2018.4/Manual/SL-BuiltinMacros.html
일단 플렛폼에 따라서, Z 버퍼가 1~0 이 아니라 0~ 1 인 경우가 있다.
https://docs.unity3d.com/Manual/SL-PlatformDifferences.html
DirectX 11, DirectX 12, Metal인 경우
위와 같은 Reverse를 쓰는데,
The depth (Z) buffer 가 가까운 곳은 1.0 , 멀어질수록 0 으로 되는 방식이다.
Clip space 범위는 [near,0] ( near plane 거리는 near plane 이고... far plane으로 멀어질수록 0으로 줄어든다 )
다른 플렛폼들 : 전통적인 방법을 사용한다
The depth (Z) buffer 가 가까운 곳은 0.0 멀어질수록 1.0으로 되는 방식이다
Clip space는 특정 플렛폼에 따른다
Direct3D-like 플렛폼에서는...
range가 [0,far] 이다 (0.0은 near plane이고 far plane으로 멀어질수록 1.0이 된다)
OpenGL-like 플렛폼에서는...
range가 [-near,far] 이다 (meaning minus the near plane distance at the near plane, increasing to the far plane distance at the far plane). (근거리 평면에서 근거리 평면 거리를 빼고 원거리 평면에서 원거리 평면 거리로 증가함을 의미합니다)
댓글