각 픽셀이 고도의 정확한 깊이 값을 포함하는 Render Textures를 생성하는 것이 가능합니다.(RenderTextureFormat.Depth를 참고하시기 바랍니다). 이것은 대부분 어떠한 효과들이 사용가능한 씬의 깊이를 필요로 할 때 사용됩니다 (예를 들어, 부드러운 입자들, 스크린 공간 주변의 흡착 그리고 반투명성 모두는 씬의 깊이를 필요로 합니다).
깊이 텍스쳐에서 픽셀 값들은 비선형의 분포를 가지는 0부터 1사이의 값을 가집니다. 정밀도는 사용되는 깊이 버퍼에 따라서 보통 24 또는 16 bit입니다. 깊이 텍스쳐로부터 읽을 때 0과 1 사이의 고도 정밀값이 주어집니다. 사용자가 카메라로 부터의 거리값이 필요할 때 또는 선형 값이 필요할 때 사용자는 그것을 수동적으로 계산해야 합니다.
Unity의 깊이 텍스쳐는 다른 플랫폼에서 다르게 구현됩니다.
대부분의 시간에 깊이 텍스쳐는 카메라로 부터의 깊이를 표현하기 위해 사용됩니다. UnityCG.cginc
helper include 파일은 이런 경우에 위의 복잡함을 처리하기 위해 몇몇의 매크로를 포함합니다:
예를 들어 이 쉐이더는 물체의 깊이를 렌더합니다:
Shader "Render Depth" { SubShader { Tags { "RenderType"="Opaque" } Pass { Fog { Mode Off } CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct v2f { float4 pos : SV_POSITION; float2 depth : TEXCOORD0; }; v2f vert (appdata_base v) { v2f o; o.pos = mul (UNITY_MATRIX_MVP, v.vertex); UNITY_TRANSFER_DEPTH(o.depth); return o; } half4 frag(v2f i) : COLOR { UNITY_OUTPUT_DEPTH(i.depth); } ENDCG } } }
이 특성은 iOS 타겟을 위해서 지원되지 않습니다.
< 이 특성은Android 타겟을 위해서 지원되지 않습니다.