유니티 라이팅 기법 - realtime, Baked GI(라이트맵), Precomputed Realtime GI
게임에서 전역 조명(GI)을 정확하게 시뮬레이션하는것은 도전적이며 연산 비용이 많이 듭니다. 그래서 게임 플레이 중에 계산하는 대신 미리 이러한 계산을 처리하기 위한 다양한 방법을 사용합니다.
전역 조명(GI, Global illumination)은 빛이 세계에서 상호 작용하고 반사되는 과정을 복잡하게 시뮬레이션하기 위해 사용되는 다양한 기법과 수학적 모델을 설명하는 용어입니다.
일반적으로 유니티의 조명 기법은 실시간(realtime) 또는 사전 계산된(precomputed)으로 간주할 수 있으며 두가지 기법을 조합하여 몰입감 있는 장면 조명을 만들수있습니다.
실시간 라이팅(Realtime Lighting)
기본적으로 유니티에서 몇가지 조명 타입(directional, spot, point)은 실시간(realtime) 방식입니다. 이것은 조명이 씬에 직접적인 빛을 제공하고 매 프레임마다 업데이트됨을 의미합니다. 조명과 게임 오브젝트가 씬 내에서 이동할때 조명은 즉시 업데이트되며 씬 뷰와 게임 뷰에서 이것을 확인할 수 있습니다.
실시간 라이팅은 씬의 오브젝트를 조명하는 가장 기본적인 방법이며 캐릭터와 움직이는 물체를 조명하는데 유용합니다. 하지만 유니티의 실시간 조명의 광선(light rays)은 반사되지않습니다. 위 이미지에서 실시간 조명에 의해 생긴 그림자는 완전 검정색이며 바운스된 빛이 표현되지않은것을 확인할수있습니다. 보다 현실적인 장면을 만들기 위해서는 유니티의 사전 계산된 조명 솔루션을 활성화해야 합니다.
Baked GI Lighting
라이트맵(lightmap)을 베이킹(baking)할 때 씬의 정적인(static) 오브젝트에 대한 조명 효과가 계산되고 텍스처에 기록됩니다. 그리고 이 텍스처는 씬의 지오메트리 위에 오버레이되어 조명 효과를 만들어냅니다. 라이트맵은 표면을 비추는 직접 조명(direct light)과 다른 오브젝트와 표면에서 반사된 간접 조명(indirect light)을 포함할수있습니다.
베이킹된 조명(Baked GI Lighting)에서 라이트맵은 게임플레이중 변경될수없습니다(static) 실시간 조명(realtime)이 라이트맵이 있는 씬에(lightmapped scene)서 부가적으로 사용될수있지만 라이트맵을 변경할수없습니다. 이 방법을 사용하면 게임 플레이 중에 조명을 이동시킬수없지만 성능 향상을 위한 잠재력을 확보할 수 있습니다(모바일 플랫폼과 같이 성능이 낮은 하드웨어)
Precomputed Realtime GI
기존의 정적 라이트맵은 씬 내의 조명 조건 변화에 반응할 수 없지만 Precomputed Realtime GI(사전 계산된 실시간 전역 조명)을 사용하면 조명 변화에 실시간으로 반응하는 반사광을 포함하는 전역 조명을 만들수있습니다(조명의 위치와 색상이 변경되는 경우) Precomputed Realtime GI의 대상인 정적인 지오메트리(static)는 게임오브젝트에서 static으로 설정되어야합니다.
프로젝트의 특성과 목표 하드웨어 성능에 적합한 조명 방법을 사용합니다. 일반적으로 비디오 메모리와 처리능력이 비교적 제한적인 모바일 플래폼에서 Baked GI 조명방법을 사용할수있으며 독립형 컴퓨터(standalone)와 게임 콘솔에서 사전계산된 실시간 GI를 사용하거나 두가지 시스템을 동시에 사용할수있습니다.
참고
Introduction to Lighting and Rendering
https://learn.unity.com/tutorial/introduction-to-lighting-and-rendering-2019-3?uv=2019.4
Precomputed Realtime GI
https://docs.unity3d.com/560/Documentation/Manual/LightMode-Realtime.html
'유니티게임개발 > 기초공부' 카테고리의 다른 글
안드로이드 장치 모니터에서 모바일 앱 디버깅하기(android device monitor, 지원중단) (0) | 2023.07.07 |
---|---|
유니티 안티 엘리어싱(anti-aliasing) - FXAA, TAA, MSAA, SSAA (0) | 2023.07.02 |
유니티 가상현실(VR) 프로젝트 기술문서 모음 (0) | 2023.06.23 |
유니티 모바일 게임 프로젝트 최적화 기술문서 모음 (0) | 2023.06.23 |
유니티 게임 최적화 기술문서 모음 (0) | 2023.06.22 |