티스토리 뷰

Unity/Shader Graph

Scene Color & Scene Depth

연홍 2021. 1. 13. 14:56
728x90

Scene Color

Scene Color

노멀라이즈된 화면좌표(default설정)로 예상되는 입력 UV를 사용하여 현재 카메라의 색상버퍼의 값을 가져옵니다.

URP에서는 _CameraOpaqueTexture의 값을 사용하며

(RenderPipeline에서의 Opaque Texture 옵션이 켜져있어야함.)

이 텍스쳐는 Transparent 설정에서만 작동합니다.

(Master노드의 Surface를 Transparent로 설정)

입력의 UV는 화면좌표 (ScreenPositon)의 UV와 동일합니다.

Screen Position

Opaque Texture 씬의 모든 카메라에 대한 기본값으로 _CameraOpaqueTexture를 생성하려면 활성화 합니다. 이것은 내장 렌더 파이프 라인의 GrabPass처럼 작동합니다. Opaque Texture는 URP가 투명 메시를 렌더링하기 직전에 장면의 스냅 샷을 제공합니다. Camera Inspector에서 개별 카메라에 대해 이를 재정의 할 수 있습니다.

화면왜곡에 사용하면 될것 같다. (유리나 물쉐이더 등)

Scene Depth

노멀라이즈된 화면좌표로 예상되는 입력 UV를 사용하여 현재 카메라의 깊이버퍼에 대한 값을 가져옵니다.

URP에서는 _CameraDepthTexture의 값을 사용하며,

(RenderPipeline에서의 Depth Texture 옵션이 켜져있어야함.)

이 텍스쳐는 Transparent 설정을 사용하거나 OpaqueQueue보다 나중이어야 작동합니다.

(Master노드의 Surface를 Transparent로 설정)

  • URP 7.3.1에서는 camera postprocessing을 켜야 작동하는 버그가 있습니다.
  • Orthographic의 경우는 이미 선형이므로 raw모드를 사용해야 합니다.
  • ScreenPosition(UV)를 Raw로 받으면 해당 쉐이더의 영향을 받는 모델의 표면의 깊이값을 얻을 수 있습니다.
    (예, fog, 수평선에 이용)

 

Scene Depth

Linear01

Linear01  0 1 사이의 선형 깊이 값을 반환합니다. 이렇게하면 Linear01Depth 함수를 사용하여 원시 값이 변환되므로 0.5 는 far와near clip plane 사이의 정가운데 입니다. (참고 : Perspective 카메라에서만 사용해야함)

Raw

Raw 는 텍스처에서 직접 원시 깊이 값을 반환합니다. 이 값은 0 에서 1 사이이며 near clip plane 에서 far clip plane까지 도달합니다. Perspective 카메라 투영을 사용하는 경우이 값은 선형이 아닙니다.(예를 들어 값 0.5는 둘 사이의 중간이 아닙니다.) 하드웨어에 따라 깊이 버퍼가 반전 되어 원시 값 0이 실제로는 far clip plane 있고 1near clip plane 있도록할 수도 있습니다. NVIDIA link

Eye

Eye LinearEyeDepth함수를 사용하여 깊이 값을 선형으로 변환하지만 눈 공간 단위로 변환합니다.  0 은 카메라 위치에 정확히, 1은 카메라에서  1 단위, 1010단위 떨어져 있습니다. (참고 : Perspective 카메라에서만 사용해야 함)

 

 

'Unity > Shader Graph' 카테고리의 다른 글

Voronoi  (0) 2021.01.15
Render Texture  (0) 2021.01.14
Vertex Displacement  (0) 2021.01.14
Fresnel Effect  (0) 2021.01.13
Polar Coordinates  (0) 2021.01.13
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31