유니티는 현실세계의 빛을 물리엔진에서 구현하기 위해
빛을 직접광과 간접광 두 종류로 구분하여 연산하고 있다.
이러한 기술을 전역 조명(GI)이라고 한다.
✔️ 직접광 (Direct Light)
방출되어 표면에 한번 닿은 후
눈(카메라)에 직접 반사되는 광원
✔️ 간접광 (Indirect Light)
표면에 여러번 닿는 광원, 스카이 라이트 등을 포함하여
궁극적으로 눈(카메라)에 반사되는 다른 모든 광
전역조명 (Global Illumination)
전역 조명(GI)은 빛이 표면에 닿고, 반사되어 다른 표면에 간접적으로 영향을 주는 조명 시스템을 의미한다.
이는 단순한 직접광만으로는 표현할 수 없는 현실적인 빛의 반사와 퍼짐을 가능하게 하며, 씬의 분위기와 몰입도를 크게 높여준다.

📌 실시간 조명 vs 베이크된 조명
전역 조명은 Bake와 Realtime을 선택할 수 있다. 실시간 조명(Realtime GI)은 말 그대로 빛을 실시간으로 계산하는 방식이고, 베이크된 조명(Baked GI)은 빛을 미리 계산하여 라이트맵(텍스쳐)로 저장해두고 실행 시간에 해당 데이터를 활용하는 방식이다. 각각 장단점이 있지만 리얼타임 방식은 엄청나게 많은 연산을 요구하기 때문에 정적인 부분에 대해서는 무조건 라이트를 구워놓는 것이 낫다. -> 라이트 매핑, 라이트 프로브
Realtime GI (실시간 조명)
- 씬 내에서 조명이나 오브젝트가 움직이는 경우에 사용된다.
- 빛의 반사를 실시간으로 계산하므로, 더욱 동적인 표현이 가능하다.
- 성능 소모가 크기 때문에 주의해서 사용해야 한다.
Baked GI (베이크된 조명)
- 정적인 오브젝트와 조명에 적합한 방식으로 라이트 매핑과 라이트 프로브 기술을 활용한다.
- 빛의 반사 계산을 사전에 미리 계산해 라이트맵에 저장한다.
- 라이트 프로브를 사용하지 않았을 경우 동적인 오브젝트에 대해 어색한 느낌을 주게 된다.
- 퍼포먼스에 매우 유리하며 모바일 게임, 배경 요소에 자주 사용된다.
📌 라이트 매핑 (Light Mapping)
라이트 매핑은 씬의 표면 밝기를 미리 계산하고 계산 결과를 나중에 사용하기 위해 라이트맵이라고 불리는 텍스쳐에 저장하는 프로세스이다. 라이트맵에는 직접광과 간접광이 모두 저장되며 실시간 광원은 라이트맵이 적용된 씬 위에 오버레이시켜 추가적으로 사용할 수 있지만, 라이트맵 자체를 대화식으로 변경할 수는 없다.
즉, 라이트 매핑은 직접광과 간접광이 연산된 '표면의 밝기'를 텍스쳐(라이트맵)으로 저장하여 활용하는 것이다.

이번 포스팅은 이론에 대한 내용이므로, 라이트맵을 굽는 방법은 다른 글에서 설명하도록 하겠다.
📌 라이트 프로브 (Light Probes)

마찬가지로 이번 포스팅은 이론에 대한 내용이므로, 라이트 프로브를 만드는 방법은 다른 글에서 설명하도록 하겠다.
물리엔진에서 빛의 연산은 아주 중요한 개념이다.
오늘은 유니티의 라이트 연산에 대한
기본적인 틀을 설명해보았다.
추후에 실제 엔진에서 라이트맵과 라이트 프로브를 굽고
전역 조명을 셋팅하는 방법을 포스팅 해보도록 하겠다.

전역 조명 - Unity 매뉴얼
전역 조명(GI)은 직접 표면에 닿는 광원(직접광)뿐만 아니라 다른 표면에 부딪혀 반사되는 광원(간접광)을 모델링하는 시스템입니다. 오브젝트는 서로의 형상에 영향을 미치기 때문에 간접 조명
docs.unity3d.com
wooj22 - Overview
🎮 Game Programmer. wooj22 has 22 repositories available. Follow their code on GitHub.
github.com
양우정
www.youtube.com
'Game Engine > Unity' 카테고리의 다른 글
| [Unity] 고정 조인트(Fixed Joint) (0) | 2025.04.08 |
|---|---|
| [Unity] 물리 머티리얼 (Physics Material) (0) | 2025.04.08 |
| [Unity] PlayerPrefs 클래스를 활용한 데이터 저장 (0) | 2025.04.08 |
| [Unity] 터널링(Tunneling)과 Collision Detection (0) | 2025.04.08 |
| [Unity] 유용하게 활용되는 유니티 어트리뷰트(Attribute) 모음 (0) | 2025.04.08 |