블로그 이미지

[언리얼 엔진4 강좌] 글로벌 일루미네이션

2015. 10. 4. 08:00
  


라이트매스(Lightmass)


Lightmass는 언리얼 내에서 사실적인 스태틱 라이트를 계산하기 위해 개발된 라이팅 시스템을 말합니다. 이 시스템은 과거의 언리얼 버전에서 사용하던 라이팅 시스템보다 강력한 글로벌 일루미네이션을 구현합니다. Lightmass는 지역 그림자(Area Shadowing)와 확산 상호반사(Diffuse Interreflection)와 같은 정교한 빛의 상호작용을 통하여 라이트 맵에 조명 정보를 기록합니다. 라이트 맵은 한번 형성되면 다시 라이팅 빌드를 하기전까지 수정을 할 수 없기 때문에 주로 고정된 오브젝트에 사용됩니다.  



에어리어 라이트와 쉐도우(Area Light and Shadow)


현실에서 빛과 그림자는 광원의 크기에 영향을 받습니다. 예를 들어 광원의 크기가 커질수록 더욱 부드러운 빛과 그림자를 만들어 냅니다. 이러한 현실에 존재하는 광원의 물리적 크기를 흉내낸 조명을 지역 조명(Area Light)라 하며, 언리얼 엔진의 Point Light와 Spot Light를 통하여 이를 시뮬레이션할 수 있습니다. 이 두 종류의 라이트는 공통적으로 동그란 구형의 광원을 갖고 있으며, Source Radius 속성을 통하여 광원의 크기를 조절할 수 있습니다. 결국 Source Radius 값은 그림자의 부드러운 정도에 영향을 미치며, 보다 사실적이고 고품질의 결과물을 얻는 효과가 있습니다.



Source Radius : 5


Source Radius : 30


디퓨즈 인터리플렉션(Diffuse Interreflection)


확산 상호반사(Diffuse Interreflection)는 빛이 반사되어 퍼져나가는 효과를 말합니다. 이는 글로벌 일루미네이션을 구현하는데 있어 시각적으로 가장 중요한 라이팅 효과이기도 합니다. 만일 이 효과가 발생하지 않는다면 직접 빛을 받는 지역을 제외하고 나머지 영역은 어둠으로 채워질 것입니다. 확산 상호반사는 카메라의 보는 방향이나 위치에 상관없이 모든 방향에 똑같이 빛을 반사합니다. 


Num Indirect Lighting Bounces : 0


Num Indirect Lighting Bounces : 3


또한 재질의 기본 색상에 영향을 받기 때문에 빛이 반사되는 주변에 재질의 색이 함께 묻어나는 컬러 블리딩(Color Bleeding) 효과를 발생시킵니다.



앰비언트 오클루전 (Ambient Occlusion)


Ambient Occlusion은 모서리, 갈라진 틈, 물체와 물체가 접하는 부분 등 빛이 폐색되는 영역을 어둡게 만들어주는 셰이딩 기법입니다. 이는 어떠한 라이팅의 영향을 받지 않고 오직 오브젝트 간의 거리를 기준으로 계산됩니다. Lightmass는 앰비언트 조명을 통하여 빛이 폐색되는 영역을 자연스럽게 어둡게 만들어주는데, Ambient Occlusion 옵션을 활성화하면 좀 더 장면에 깊이감이 부여되고  물체와 물체 간의 입체적인 상관 관계가 부각됩니다. Ambient Occlusion은 그림자와 함께 라이트맵에 구워지며, 음영의 급격한 변화를 표현하기 위해 고해상도의 라이트맵이 요구됩니다.


Use Ambient Occlusion : On


라이팅 빌드 시간 최적화하는 방법


- 라이트매스 임포턴스 볼륨(Lightmass Importance Volume) 배치 


라이트매스는 레벨의 모든 영역에 빛의 입자를 방출합니다. 따라서 레벨의 크기가 클수록 방출하게 되는 입자의 수가 함께 늘어나 라이팅 빌드 시간이 증가하게 됩니다. Lightmass Importance Volume은 라이트매스가 광자를 빙출하는 영역을 제한하여 정교한 간접광을 필요한 지역에 집중할 수 있도록 해줍니다. 대신 볼륩 밖 영역은 한 차례 반사되는 저품질의 간접광을 갖게 됩니다. 주광원 하나에 한 개의 Lightmass Importance Volume만 허용하기 때문에 레벨 안에 여러 개의 볼륨을 배치한다해서 빛 입자를 밀집시키는데 도움이 되지 않습니다.



- 라이트맵 해상도 설정


라이트맵의 해상도가 높을수록 정교하고 고품질의 조명을 얻을 수 있습니다. 하지만 고해상도의 라이트맵은 텍스쳐 메모리를 더 많이 사용하며 라이팅 빌드 시간도 늘어나는 단점을 갖고 있습니다. 따라서 시각적으로 중요한 지역 또는 그림자의 정교한 형태를 요구하는 영역에서 선택적으로 고해상도의 라이트맵을 사용하고, 직사광 아래 놓여있지 않고 단순히 부드러운 간접 그림자를 드리우는 영역에서는 저해상도 라이트맵을 적용합니다. 


Light Map Resolution : 128


Light Map Resolution : 256


- 라이트매스 솔버(Lightmass Solver) 퀄리티 설정



라이팅 빌드 옵션의 Lighting Quality 탭에서 선택하는 퀄리티에 따라 자동으로 설정됩니다. Preview, Medium, High, Production 과 같이 네가지 옵션을 지원합니다. Preview에서 Production으로 올라갈수록 고품질의 결과물을 얻을 수 있지만 이에 비례하여 라이팅 빌드 시간도 함께 증가하게 됩니다. Lighting Build Info 대화창을 통하여 단일 메시별로 라이팅 빌드 시간을 확인할 수 있습니다.