본문 바로가기

Unity/Tips

[Unity] HDRP - Shadows, Reflections (3/5)

728x90
반응형

참고자료

 

  • 해당 영상을 바탕으로 해당 게시물을 작성했습니다.


Shadows

  • Project Settings > Quality > HDRP의 Shadows에서 그림자의 기본 해상도와 정밀도, 전체 품질 등을 조정할 수 있다.

Directional Shadows

  • 태양광의 인스펙터에서 Shadows 섹션을 살펴보면 된다.
  • Update Mode는 HDRP에서 강제로 그림자를 계속 새로 고치도록 설정할 때 특히 유용하다.

Resolution

  • 어떤 광원에나 원하는 그림자 해상도를 선택할 수 있다.
  • 해상도가 낮을수록 흐릿해 보이고 그림자가 물체와 연결된 느낌이 약해진다.
  • Low, Medium, High, Ultra에 대한 설정은 Project Settings에서 조정할 수 있다.

  • 필터링 품질 (Filtering Quality)를 Medium으로 설정하면 고해상도 그림자가 인위적으로 선명하게 보일때가 있다.
    → HDRP 설정에서 Filtering Quality를 High로 설정하면 이 문제를 크게 개선할 수 있다. 그림자가 물체로부터 멀어질수록 흐려질것이다. (성능 多)
    → 이 효과는 Spot Light나 Point Light에서도 적용할 수 있다.

  • 지구의 관점에서 각지름 크기(Shape > Angular Diameter)를 올바르게 시뮬레이션하려면 0.5로 설정해두면 된다.

  • 그림자를 Render Pipeline Debug에서 디버그 뷰로 보면, 그 효과를 더욱 분명하게 알 수 있다. (언리얼의 기능과 비슷한 듯)

  • 볼륨(Volume) 시스템으로 그림자 캐스케이드 설정을 조정할 수도 있다. 그러나 캐스케이드 그림자는 방향 광원(Directional Light)에만 사용된다. 다른 조명에는 적용되지 않는다.

​​

Volume 시스템의 Shadows

 

 

  • Visualize Cascades를 사용해서 디버그 뷰로 볼 수 있다.
  • Split를 조정해 캐스케이드가 퍼지는 걸 제어할 수 있다.
  • Border를 통해 경계 값을 오버라이드하여 두 캐스케이드 간의 블렌딩을 조정할 수도 있다.
    → LOD 기능하고 비슷한 것 같다 !

  • 캐스케이드는 하나당 화면의 약 $\frac {1}{4}$ 정도를 채우게 조정하는 편이 리소스 소모를 효율적으로 분배하는 동시에 좁은 범위에서 품질을 극대화할 수 있다.


Punctual shadows

  • Point Light와 Spot Light 그림자. 방향 광원(Directional Light)과는 다른 캐스케이드 시스템을 사용한다.

Point Light

  • ​Slope-Scale Depth Bias 옵션은 조명과 수직인 표면에서 나타나는 계단 현상을 해결하는 데 매우 유용하다.
Debug 뷰로 본 Point Light의 모습, Slope-Scale Depth Bias가 낮을수록 계단 현상이 심해진다.

Slope-Scale Depth Bias를 높여 계단 현상을 해결

  • Normal Bias를 높여서 해결했지만, 그로 인해 그림자가 오브젝트 안쪽으로 꺼지는 부작용이 생긴다.

Fade Distance

  • 그림자가 일정 거리 이상 멀어지면 사라지게 하는 유용한 기능
  • 조명을 최적화할 때 매우 중요하다. (특히나 Point Light)
  • 요즘 게임의 경우 그림자 거리를 30미터 미만으로 설정하는게 보통


Contact Shadows

  • 화면상의 정보를 이용하여 뎁스 버퍼(Depth Buffer)레이마칭(Ray Marching)으로 그림자를 더욱 디테일하게 만들어준다.
  • 특히 중, 장거리에서 그림자 캐스케이드의 해상도가 낮으면 생길 수 있는 공백을 채우는 데 매우 유용한 기술
  • 볼륨 중 하나에 컨택트 섀도우 오버라이드를 추가해 광선 길이(Length)를 미터 단위로 설정하는 등, 자유롭게 설정 가능 → Debug 뷰로 확인 가능
  • Low, Medium, High 선택 가능. 역시나 HDRP Quality Settings에서 설정가능

Directional Light의 그림자 거리를 0으로 하고, Contact Shadows를 비활성화한 상태

 

  • 당연히 그림자가 보이지 않는다.

Directional Light의 그림자 거리를 0으로 하고, Contact Shadows를 활성화한 상태

 

  • 화면에 보이는 먼 거리의 오브젝트에 적절한 그림자를 제공할 수 있다.


 

Reflections

  • HDRP에서는 하늘이 씬에 자동으로 반사됨
  • 오브젝트도 반사시킬 수 있다.

1. 반사 프로브를 수동으로 배치하면 된다.

  • 프로브들이 주변 환경을 캡처한 다음 주변 오브젝트에 스페큘러 정보를 캐스팅한다.

2. 또 다른 기법은 스크린 공간 반사다.

  • 전체 프레임에 씬을 반사하게끔 만드는 기법

Reflection Probes

  • 반사 프로브(Reflection Probes)는 오브젝트이므로 월드에 직접 배치가 가능
  • 요점은 공간에 고정된 상태로 반사하기 때문에 환경에 자유롭게 배치하되, 프로젝트에 필요한 품질을 구현할 수 있게 배치에 신경 써야 한다.
  • 반사의 리소스 소모를 줄이려면 HDRP Default Settings의 Frame Settings > Realtime Reflection을 통해 조절할 수 있다. 아니면, 프로브를 통해 개별적으로 조정할 수 있다.

Screen Space Reflections

  • 또 다른 기법 중 하나인 스크린 공간 반사, SRR
사용하려면 HDRP의 Screen Space Reflection을 활성화하면 된다.

  • SSR 설정은 볼륨(Volume)시스템과 함께 조정할 수 있다.

 

Voume 시스템 안에 있는 Screen Space Reflection

 

  • 이 기술은 화면상의 데이터에만 의존하므로 화면 밖에 있는 오브젝트에는 반사를 적용할 수 없다.
  • 용도는 제한적이지만, 카메라와 평행으로 높인 평면의 반사 품질을 높일 수 있다. 불투명한 오브젝트에 가려진 부분의 정보는 렌더러에 제공 x
  • Quality HDRP Settings에서 Low, Medium, High 옵션 조정 가능
  • 반사 프로브를 사용하는 게 더 좋지만, 반사 프로브를 많이 사용할 수 없는 경우 스크린 공간 반사(SSR)를 사용하는 것이 좋다.

 

 

 

 

 

728x90