전역 조명

편집 역사 토론
컴퓨터 그래픽스 게임 개발 마지막 수정: 2026-07-10 05:02:19

1. 개요[편집]

전역 조명(global illumination, GI)은 광원에서 나온 빛이 장면 안의 표면들 사이에서 여러 번 반사·굴절·산란되며 서로 영향을 주고받는 현상 전체를 계산하는 렌더링 기법이다. 광원에서 표면으로 직접 도달하는 빛만 계산하는 국소 조명(local illumination)과 달리, GI는 벽에 튕겨 방으로 번지는 은은한 빛, 붉은 카펫이 흰 벽을 발그레하게 물들이는 색번짐(color bleeding), 물체 사이 좁은 틈이 어두워지는 앰비언트 오클루전 같은 효과를 물리적으로 재현한다.

한마디로 GI는 “빛이 한 번만 튀는 게 아니라 방 안을 헤매고 다닌다”는 당연한 사실을 컴퓨터에게 이해시키는 일이다. 문제는 이 헤맴이 무한히 복잡해서, 정직하게 계산하면 비용이 천문학적이라는 것.1 그래서 컴퓨터 그래픽스의 역사 절반은 “GI를 어떻게 싸게 근사할 것인가”의 투쟁이었다고 해도 과언이 아니다.

2. 렌더링 방정식[편집]

GI의 이론적 토대는 1986년 짐 카지야(Jim Kajiya)가 정리한 렌더링 방정식(rendering equation)이다. 한 점 xx에서 방향 ωo\omega_o로 나가는 빛의 세기는, 그 점 자체가 내는 빛과 반구 전체에서 들어와 반사되는 빛의 합으로 표현된다.

Lo(x,ωo)=Le(x,ωo)+Ωfr(x,ωi,ωo)Li(x,ωi)(ωin)dωiL_o(x, \omega_o) = L_e(x, \omega_o) + \int_{\Omega} f_r(x, \omega_i, \omega_o)\, L_i(x, \omega_i)\, (\omega_i \cdot \mathbf{n})\, d\omega_i

여기서 LeL_e는 자체 발광, frf_r는 재질의 반사 특성을 나타내는 BRDF, 적분은 반구 Ω\Omega 전체의 입사광에 대한 것이다. 이 식이 지독한 이유는 재귀적이기 때문이다. 들어오는 빛 LiL_i는 다른 표면에서 나가는 빛 LoL_o이고, 그 표면 역시 또 다른 표면의 빛을 받는다. 결국 방 안 모든 표면이 서로 물려 있는 적분방정식이라, 해석해가 없다. 나비에-스토크스 방정식이 유체 해석의 벽이라면, 렌더링 방정식은 그래픽스의 벽인 셈.

3. 직접광과 간접광[편집]

렌더링 방정식을 실무적으로 나누면 직접광(direct lighting)과 간접광(indirect lighting)이 된다. 직접광은 광원 → 표면 → 눈, 딱 한 번 반사되는 성분으로 계산이 상대적으로 쉽다. 진짜 어려운 것은 간접광, 즉 두 번 이상 튕긴 빛이다. GI의 존재 이유가 바로 이 간접광에 있다.

간접광이 없으면 그림자는 완전히 새까맣고 실내는 광원이 직접 비추는 곳만 밝다. 반대로 간접광을 넣으면 광원이 안 보이는 구석까지 은은하게 밝아지며 장면이 비로소 “현실 같아” 보인다. 물리 기반 렌더링이 재질을 물리적으로 다루려면 이 GI 계산이 필수 전제가 된다.

4. 오프라인 GI 기법[편집]

영화·애니메이션처럼 프레임당 수십 분을 써도 되는 오프라인 렌더링에서는 정확도를 우선한다.

4.1. 경로 추적 (path tracing)[편집]

렌더링 방정식의 적분을 몬테카를로 방법으로 푸는 정공법이다. 픽셀마다 광선을 쏘고, 표면에 부딪히면 확률적으로 방향을 바꿔 튕기기를 반복하며 광원에 닿을 때까지 추적한다. 이를 수천~수만 번 반복해 평균을 내면 렌더링 방정식의 참값에 수렴한다. 레이 트레이싱의 확장판으로, 편향 없이 물리적으로 정확한 결과를 주지만 표본이 부족하면 화면이 노이즈(잡티)로 자글거린다.2

4.2. 포톤 매핑 (photon mapping)[편집]

광원에서 광자(photon)를 미리 뿌려 표면에 어디 얼마나 쌓였는지 지도를 만든 뒤, 렌더링 단계에서 그 밀도를 읽어 조명을 추정하는 2단계 기법이다. 코스틱스(caustics) — 물컵을 통과한 빛이 만드는 밝은 무늬 — 같은 까다로운 효과를 경로 추적보다 효율적으로 잡아낸다.

4.3. 래디오시티 (radiosity)[편집]

표면을 여러 패치로 쪼개고, 패치들이 서로 주고받는 에너지를 형태계수(form factor)로 연립방정식화해 푸는 방법이다. 확산 반사면끼리의 색번짐을 뷰에 무관하게 한 번에 계산할 수 있다. 표면을 요소로 쪼개 상호작용을 선형계로 푼다는 점에서 유한요소법과 사고방식이 판박이라, 실제로 열복사 해석과 수학적 뿌리를 공유한다.

5. 실시간 GI[편집]

게임처럼 초당 60프레임을 뽑아야 하는 세계에서는 정확도를 포기하고 속도를 산다.

기법방식특징
라이트맵GI를 미리 구워 텍스처에 저장정적 장면에 최적, 움직이는 물체엔 무력
GI 프로브공간 격자점에 조명 정보 샘플링동적 물체에 간접광 부여
SSGI화면공간에서 근사화면 밖 정보는 못 씀
하드웨어 RT GIGPU 레이트레이싱 실시간최신 GPU 필요, 노이즈 제거 후처리 필수

라이트맵(lightmap)은 정적인 벽·바닥의 GI를 오프라인에서 미리 계산해 텍스처로 구워두는(baking) 방식으로, 오랫동안 게임 GI의 국룰이었다. 다만 미리 구운 빛이라 낮이 밤으로 바뀌거나 벽이 무너지면 대응할 수 없다. 그래서 움직이는 캐릭터에는 공간에 흩뿌린 GI 프로브(light probe / irradiance volume)로 간접광을 입힌다. 근래에는 GPU의 하드웨어 레이 트레이싱 성능이 올라오면서, 굽지 않고 실시간으로 간접광을 계산하는 방식이 확산되고 있다. 물론 실시간이라 표본이 적어 노이즈가 심하고, 이를 지워주는 디노이저(denoiser)가 사실상 GPU 컴퓨팅의 힘을 빌린 별도의 마법이 되었다.3

6. 관련 문서[편집]

7. Footnotes[편집]

  1. 빛이 표면을 한 번 튕길 때마다 계산량이 반구 전체 적분만큼 늘어난다. 튕김이 nn번이면 사실상 nn중 적분이라, 정직하게 풀면 우주가 끝나기 전에 프레임 하나 못 뽑는다. GI가 “근사의 예술”인 이유.

  2. 경로 추적 노이즈는 표본 수의 제곱근에 반비례해 줄어든다. 즉 노이즈를 절반으로 줄이려면 표본을 네 배 늘려야 한다. 이 잔인한 수렴 속도가 GPU 디노이저 산업을 먹여 살린다.

  3. 픽사의 렌더맨(RenderMan)조차 2010년대에야 경로 추적으로 완전히 갈아탔다. 그 전까지는 래디오시티·포인트 기반 GI 등 온갖 근사를 덕지덕지 쌓아 올렸는데, 하드웨어가 받쳐주자 다들 “그냥 광선을 더 쏘자”로 회귀했다. 결국 물량이 우아함을 이겼다.