Priv's Blog

Unity Light 세팅 관련 기본적인 용어 정리 본문

Dev. Study Note/Unity

Unity Light 세팅 관련 기본적인 용어 정리

Priv 2023. 4. 8. 16:33


 

 

1. 환경광(Environment Lighting)

게임 상에 기본적으로 깔리는 광원.

모든 게임 오브젝트에 적용되며, 모든 방향에서 동일한 세기의 빛이 들어온다.

명암, 그림자를 만들지 않는 광원이다.

게임의 전체적인 색 분위기를 결정할 수 있다.

 


 

2. 글로벌 일루미네이션(Global Illumination)

물체의 표면에 직접 닿는 빛과 다른 물체의 표면에서 반사되어 들어오는 간접광까지 표현한다.

GI라고 줄여서 표현하기도 한다.

성능을 매우 많이 요구하기 때문에 실시간 GI는 처리하기가 버겁다.

Unity 엔진에서는 실시간 글로벌 일루미네이션, 베이크 된 글로벌 일루미네이션을 제공한다.

2가지를 함께 사용하거나 1가지만 사용할 수도 있다.

실시간 글로벌 일루미네이션, 베이크 된 글로벌 일루미네이션 모두 고정된 오브젝트(Static)에게만 적용된다.

글로벌 일루미네이션에 반영될 빛이 실시간으로 변할 수 있도록 허용할 것인지에 차이가 있으며, 두 옵션 모두 라이트맵을 생성해 사용한다.

 

2.1) 실시간 글로벌 일루미네이션(Realtime Global Illumination)

자원 소모량이 매우 심하기 때문에 고사양을 요구한다.

빛의 세기, 방향 등이 달라졌을 경우 이를 실시간으로 반영하여 GI를 계산해 표현한다.

라이트맵을 여러 방향으로 생성하여 사용하며, 이 라이트맵에는 빛의 예상 반사 방향, 예상 이동 경로 등의 정보가 미리 계산되어 저장된다.

이 덕분에 게임 도중에 빛의 방향이 달라져도 간접광을 새로 계산할 때 비용 부담이 적어진다.

실시간 글로벌 일루미네이션이라는 용어를 쓰고는 있지만, 미리 계산해두어야 하는 라이팅 데이터 에셋이 요구되기 때문에 미리 계산된 실시간 글로벌 일루미네이션이라고도 부른다.

 

2.2) 베이크 된 글로벌 일루미네이션(Baked Global Illumination)

고정된 빛에 의한 간접광들을 라이트맵으로 구워서 게임 오브젝트 위에 미리 입힌다.

이 때문에 게임 도중에 실시간으로 간접광 효과가 바뀌지 않는다.

실시간 글로벌 일루미네이션 방식보다 표현의 질, 런타임 성능은 더 좋지만, 게임 도중에 빛의 정보가 바뀌어도 반영이 되지 않는다는 단점이 있다.

즉, 게임 도중에 밝기가 갑자기 밝아지거나, 어두워지면 이질감이 발생하기 쉽다.

베이크 된 글로벌 일루미네이션은 세부 라이팅 모드 3가지를 제공한다.

  • 베이크 된 간접 모드: 간접광만 구워서 미리 계산한다. 직사광, 그림자는 실시간으로 계산한다.
  • 섀도우 마스크 모드 (기본값): 간접광을 표현하는 라이트맵, 그림자를 표현하는 섀도우마스크 맵을 함께 구워서 사용한다.
  • 감산 모드: 간접광, 직사광, 그림자를 하나의 라이트맵에 통째로 구워서 사용한다. 성능이 제일 좋지만, 품질은 가장 떨어진다.

 


 

3. Light 컴포넌트

빛을 표현하기 위해서는 Light 컴포넌트가 게임 오브젝트에 부착되어 있어야 한다.

여기에는 3가지 종류의 모드를 지원한다.

  • 베이크 됨 모드: 빛을 미리 라이트맵에 굽는다.
  • 실시간 모드: 빛을 실시간으로 계산한다.
  • 혼합 모드: 동적 게임 오브젝트는 실시간 연산, 정적 게임 오브젝트는 라이트맵을 사용한다.

여기서 혼합 모드를 사용하면 게임 오브젝트 종류에 따라 연산 방식이 달라진다.

이 때문에 게임 오브젝트가 동적인지 정적인지에 따라 영향을 받는 빛 효과도 달라진다.

  • 동적 게임 오브젝트: 실시간 직사광, 실시간 그림자, 그림자맵을 활용한 실시간 그림자.
  • 정적 게임 오브젝트: 실시간 직사광, 라이트맵을 통해 미리 구워진 간접광, 미리 구워진 그림자, 그림자 맵을 활용한 실시간 그림자.

 


 


수고하셨습니다!


Comments