Unity 라이트매핑 개요
개념 정리
라이트매핑은 씬의 표면 밝기를 미리 계산하고 그 결과를 라이트맵이라는 텍스처에 저장하는 과정입니다. 이 라이트맵은 이후에 필요한 조명 정보를 제공합니다. 이 과정의 주요 이점은 성능을 향상시키면서도 다양한 조명 효과를 구현할 수 있다는 것입니다.
라이트맵의 구성 요소
라이트맵은 여러 조명 정보(직접광 및 간접광)를 포함할 수 있으며, 오브젝트의 머티리얼과 연결된 셰이더에서 컬러(알베도) 및 노멀(릴리프) 등의 표면 정보와 함께 사용됩니다. 아래 이미지는 라이트맵이 적용된 간단한 씬과 Unity가 생성한 라이트맵 텍스처를 비교한 것입니다.
예시 설명 | 왼쪽 이미지 | 오른쪽 이미지 |
---|---|---|
씬 | 라이트맵이 적용된 간단한 씬 | Unity가 생성한 라이트맵 텍스처 |
포함 정보 | 그림자 및 광원 정보 캡처 | 직접광 및 간접광 포함 |
특징 및 제약 사항
- 데이터 수정 불가: 라이트맵에 베이크된 데이터는 런타임 시 변경할 수 없습니다. 실시간 광원은 라이트맵이 적용된 씬 위에 오버레이하여 추가적으로 사용할 수 있지만, 라이트맵 자체를 대화식으로 수정할 수 없습니다.
- 성능과의 균형: 실시간 조명을 사용하면 성능이 저하될 수 있으므로, 모바일 플랫폼이나 성능이 낮은 하드웨어에서는 라이트매핑 방식이 더 적합할 수 있습니다.
Unity의 라이트매퍼
Unity는 라이트매핑을 위해 다음의 주요 라이트매퍼를 제공합니다:
- 프로그레시브 라이트매퍼: 기본적으로 제공되는 라이트매퍼로서, 사용자에게 시각적인 실시간 피드백을 제공합니다.
- 인라이튼: 베이크된 전역 조명을 활용하는 고급 라이트매퍼입니다.
각 라이트매퍼 설정에 대한 더 많은 정보를 원하신다면 라이트매핑: 시작하기 섹션을 참고하시기 바랍니다.
활용 예제
다양한 활용 및 응용 예제를 통해 라이트매핑의 이해를 돕고 실무에 적용하는 데 필요한 정보를 제공하겠습니다.
예제 1: 라이트맵 생성을 위한 기본 씬 설정
- Unity에서 새로운 프로젝트를 생성합니다.
- 기본 몇 개의 객체(큐브, 구 등)를 씬에 배치합니다.
- 각 객체에 적절한 머티리얼을 적용합니다.
- 프로그레시브 라이트매퍼를 사용하여 라이트맵을 생성합니다.
예제 2: 실시간 조명과 라이트매핑의 조합
- 위에서 설정한 씬에 실시간 광원을 추가합니다.
- 라이트맵을 베이크한 후, 실시간 광원의 위치를 조정합니다.
- 성능 변화와 조명 효과를 비교하여 최적의 설정을 찾습니다.
결론
라이트맵의 사용은 게임의 비주얼 품질과 성능 사이에서 균형을 이루는 데 중요한 역할을 합니다. 적절한 라이트매퍼와 설정을 통해 개발자는 최적의 조명 효과를 구현할 수 있습니다. Unity의 공식 문서를 참고하여 다양한 옵션을 실험해 보시기 바랍니다.