Quick Comparison
| 방식 | 핵심 | 장점 | 약점 |
|---|---|---|---|
| Baked GI | 미리 계산한 간접광 저장 | 런타임 비용 낮음 | 동적 변화에 약함 |
| Light probe | 위치별 간접광 샘플 | 동적 물체에 적용 쉬움 | 공간 해상도 제한 |
| Screen-space GI | 화면에 보이는 정보 사용 | 적용 쉬움 | 화면 밖 정보 없음 |
| Ray-traced GI | ray로 간접광 추적 | 물리적으로 자연스러움 | 비용과 noise |
| Voxel/clipmap GI | 장면을 볼륨으로 근사 | 동적 GI 가능 | 누수와 해상도 문제 |
정적 배경: baked lightmap
동적 object: probe 또는 probe grid
화면 안 보강: screen-space
고품질 동적 간접광: ray/hybrid, sample·history·denoise 예산 필요구조
직접광은 빛에서 표면으로 바로 들어오는 조명입니다. Global Illumination은 표면에 닿은 빛이 다른 표면에서 반사되어 다시 들어오는 간접광까지 다룹니다.
direct light: light -> surface
indirect light: light -> surface A -> surface B -> cameraGI가 없으면 그림자 영역이 완전히 어둡거나, 색 번짐이 없고, 실내 조명이 부자연스럽게 보일 수 있습니다. GI는 장면의 공간감과 재질감을 크게 좌우합니다.
Baked GI는 정적인 장면의 간접광을 lightmap 같은 texture에 미리 저장합니다. 런타임 비용은 낮지만, 문이 열리거나 조명이 움직이는 변화는 그대로 반영하기 어렵습니다.
light probe는 공간 곳곳에 간접광 샘플을 저장하고, 움직이는 물체가 자기 위치 주변 probe를 보간해 조명을 받게 합니다. screen-space GI는 depth와 color처럼 현재 화면에 있는 정보로 간접광을 추정하므로 적용은 쉽지만 화면 밖 정보가 빠집니다.
ray-traced GI는 ray를 쏴서 다른 표면에서 오는 빛을 직접 추적합니다. voxel이나 clipmap 기반 GI는 장면을 거친 볼륨으로 근사해 넓은 월드의 동적 간접광을 다루지만, 해상도와 light leaking 문제가 생길 수 있습니다.
각 방식은 저장하는 표현이 다릅니다. lightmap은 표면에 고정된 값을, probe는 공간 위치의 방향성 조명을, screen-space는 현재 depth/color에서 보이는 힌트를, ray path는 현재 frame의 hit와 sample을 사용합니다. 이 표현을 섞어도 누가 static environment를 담당하고 누가 dynamic object를 담당하는지 정하지 않으면 이중 조명 또는 어두운 전환이 생깁니다.
Irradiance와 radiance
irradiance는 표면으로 들어오는 빛의 양이고, radiance는 특정 방향으로 나가는 빛입니다. IBL에서는 environment map을 적분해 diffuse irradiance나 specular prefilter를 만들어 간접광을 근사합니다.
선택 기준
| 상황 | 먼저 볼 방식 |
|---|---|
| 정적인 배경 | baked lightmap |
| 움직이는 캐릭터의 간접광 | light probe |
| 화면 공간 보강 | SSAO, SSGI |
| 동적 조명과 반사 | ray-traced GI |
| 넓은 실시간 월드 | probe grid, clipmap, hybrid |
GI는 한 가지 기술로 끝나는 기능이 아니라 여러 근사법의 조합입니다. 정적/동적, 실내/실외, 품질/비용 기준을 먼저 나눠야 합니다.
temporal GI는 camera cut, object transform/geometry/material 변화, history invalidation을 처리해야 합니다. 이전 frame 정보를 그대로 누적하면 noise는 줄어도 이동한 물체 뒤에 오래된 간접광이 남습니다.
주의할 점
Screen-space GI는 화면에 보이는 정보만 사용합니다. 카메라 밖의 벽이나 가려진 표면에서 오는 간접광은 알 수 없습니다.
Baked GI는 품질이 안정적이지만 동적 물체, 시간 변화, 파괴 가능한 환경에는 별도 보정이 필요합니다.
AO는 접촉부를 어둡게 하는 visibility 근사에 가깝고, GI 전체를 대체하지 않습니다. AO만 강하게 올리면 간접광이 아니라 단순한 때 낀 그림자처럼 보일 수 있습니다.
light leaking은 probe/voxel 해상도와 occlusion representation이 실제 벽을 충분히 구분하지 못할 때 생깁니다. probe spacing을 무작정 촘촘히 하기 전에 interior/exterior 분리, visibility term, leak 방지 volume을 지원하는지 확인합니다.
참고 링크
1 sources