본문 바로가기

Unity/Tips

[Unity] HDRP - Exposure, Lighting, Light Intensities (2/5)

728x90
반응형

 

 

참고자료

 

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


 

Exposure

  • 씬의 어두운 부분을 카메라로 바라보면 이미지가 완전히 검게 변하거나 너무 밝게 변할 때가 있다.
 
  • 노출을 이해하는 것이 조명 프로세스의 핵심이다.
    → 물리 기반 조명을 설정할 때도 마찬가지

노출이란?

  • 카메라의 센서에 영향을 미치는 광원의 양


노출의 범위 (왼쪽부터 오른쪽으로 갈 수록 노출 값이 높아짐)

 

  • 노출 값이 높으면 광원양도 증가, 노출 값이 낮으면 광원양도 감소
노출의 삼각형

 

  • 여기서부터 노출에 영향을 미치는 요소들을 제대로 알기 위해서는 사진학의 원리가 들어가게 된다.
  • 사진을 찍기위해서는 다음과 같은 세가지 요인을 고려해야 한다. (특히나 DSLR이나 미러리스, 필름 카메라의 경우)

Sensitivity 감도 (ISO)

  • 센서가 광원에 얼마나 반응할지를 결정
  • 감도가 높을수록 이미지가 밝아진다.

Shutter Speed 셔터 스피드(Seconds)

  • 카메라가 광원을 받아들이는 데 걸리는 시간을 결정
  • 당연히 셔터 스피드가 짧을수록 광원을 받아들이는 시간이 짧기 때문에 이미지가 어두워지고, 셔터 스피드가 길수록 이미지가 밝아진다.

Aperture 조리개 값

  • 렌즈를 얼마나 개방할지를 조정한다.
  • 당연히 조리개가 많이 열릴수록 센서에 더 많은 광원이 전달되고 이미지가 밝아지고, 닫힐수록 광원의 양도 줄어든다.
  • 물리적으로 정확한 방법으로 씬의 조명을 연출하려면 적합한 노출을 사용해야 한다.
    → 그렇지 않으면 조명의 일관성이 떨어져, 자연 조명과 인공 조명 간의 균형을 맞추기가 어렵다.

Project Settings > HDRP Default Settings > Exposure
  • 이 곳에서 기본적인 노출을 설정할 수 있다.
  • Volume을 통해서 원하는 공간에 노출을 오버라이드할 수 있다.
  • 더 넓은 공간에 다양한 구역마다 노출 오버라이드가 필요한 경우 (실내)

Exposure Mode를 Automatic으로 설정한 모습

 

  • Automatic 모드도 충분히 쓸만하다.

 

Automatic 모드에서는 씬 조명을 샘플링하는 방식을 제어할 수 있는 미터링 옵션이 있다.

Average

  • 목표 노출 계산에 전체 프레임을 사용하는데, 노출을 안정적으로 조절 가능

Spot

  • 프레임 중앙에 있는 일부 픽셀만 샘플링한다.
조금 불안정한 모드
  • 이미지 가운데에 픽셀이 밝으면 전체 씬에서 노출이 줄어들게 되고, 반대로 픽셀이 어두우면 노출이 과도해지기 때문이다.

Center Weighted

  • 이미지 가운데 부분의 픽셀에는 가중치가 부여된다. 앞서 말한 두 가지 장점을 모두 얻을 수 있다.
  • 또한 Limit Min / Max를 통해 최소 최대치를 설정할 수 있다.
    → 어두운 영역을 봐도 하늘의 노출이 과하지 않고, 밝은 오브젝트가 시야에 들어와도 최종 이미지가 극적으로 변하지는 않는다.
    → 동시에 씬의 조건에 따라 조명이 동적으로 변화한다.

Compensation

  • 씬의 노출을 수동으로 높이거나 낮출 수 있다.
  • 그러나, Limit Min / Max 값을 넘어갈 수 없기 때문에 Compensation은 노출을 약간만 조정할 때 사용하면 좋다.
  • 노출 설정이 잘못된 것을 고칠 때 사용해서는 안된다.

  • Unity에서는 실제 카메라처럼 노출을 설정할 수 있는 물리적 카메라도 제공
    → Exposure Mode중 Use Physical Camera를 사용하면 된다.
  • 직접 셔터스피드, 조리개, 감도를 설정할 수 있다.
    → Camera의 Physical 탭에서 설정 가능

ISO, Shutter Speed, Aperture를 설정할 수 있다. 실제 카메라처럼
  • 이 Mode는 대개 조명의 변화가 없는 컷씬이나 뷰티 샷과 같은 데 사용하면 좋다.
    → 완전히 수동으로 설정해야 하기 때문에 !!

 


 

Lighting

  • Lighting(조명)을 설정하려면 몇 가지 주요 컴포넌트를 조정해야한다.

  1. Directional Light(직접 조명)은 보통 태양으로부터 방출된다.
  2. 보통은 강력한 간접 광원이 있는데, 바로 전역(Global) 볼륨(Volume)의 HDRI Sky다.
  3. 안개는 태양광을 반사하기 때문에 극적인 효과를 낸다.

  • 조명에 영향을 미치는 요소를 시각화하려면 Render Pipeline Debug를 실행해야한다.
Window > Render Pipeline > Render Pipeline Debug
Render Pipeline Debug

 

  • Lighting Debug Mode를 활성화하면, 각 컴포넌트가 조명에 미치는 영향을 알 수 있다.
  • DirectDiffuse를 선택하면 간접 조명 없이 조명만 렌더링하므로 그림자가 검게 드리워진다.

Bake를 하기 위해서

 

  • Bake할 Profile Voulme을 설정
  • Sky는 어떤 Sky를 사용할 것인지 설정
  • Lighting Mode를 통해 어떤 조명을 베이킹할 것인지 (간접 조명)

  • Lightmapper는 GPU를 선택해 Bake의 시간을 줄이자.
  • AI Denosier를 활성화 한다. (Indirect Denoiser를 Optix로)
    → 직접, 간접 샘플이 적어도 좋은 결과물을 만들 수 있다.
  • Lightmap Resolution을 원하는 품질에 따라 텍셀 해상도를 설정한다.


Light Intensities

  • 씬에서의 태양광, 월광, 인공 조명 등의 직접 조명을 어떻게 설정해야 할까?
  • HDRP는 물리 기반이며 조명에 실제 단위를 사용
Directional light intensity and color

 

  • 표에서 값을 찾아 Unity에 입력하기만 하면 된다.

  • 처음에는 씬에 조명을 추가해도 보이지 않는다.
  • 만약, 방향 광원(Directional Light)를 추가하고 그 강도(Intensity)를 3으로 유지한다면 그 광원이 해당 씬에서는 전혀 영향을 미치지 않는 것처럼 보이지만 성능 리소스는 여전히 소모하고 있다.
  • 물리적으로 정확한 색 온도를 태양에 적용하지 않으면 이미지의 사실성이 떨어진다.

Spot Light를 추가하고 난 모습

 

  • 조명이 보이지 않는다면, ​Light의 Emission의 Reflector가 체크되어 있는지와 Shadows의 Enable이 체크가 되어 있는지 확인하면 된다.
728x90