Unity 큐브맵 가이드
큐브맵 개요
큐브맵(Cubemap)은 환경의 반사를 표현하기 위해 여섯 개의 사각형 텍스처로 구성된 컬렉션입니다. 큐브의 각 면은 월드 축 방향(위, 아래, 왼쪽, 오른쪽, 앞, 뒤)을 기준으로 한 뷰를 나타냅니다. 큐브맵은 오브젝트의 반사 및 주변 환경을 캡처하는 데 주로 사용되며, 스카이박스와 환경 반사에 활용됩니다.
큐브맵 생성 방법
큐브맵을 생성하는 가장 간단한 방법은 특수하게 레이아웃 된 텍스처를 가져오는 것입니다. Unity의 프로젝트 창에서 텍스처를 선택하고, 인스펙터 창에서 Import Settings를 설정합니다.
Import Settings 설정
| 속성 | 설명 |
|---|---|
| Texture Type | Default, Normal Map 또는 Single Channel로 설정 |
| Texture Shape | Cube로 설정 |
이 설정이 완료되면 텍스처가 자동으로 큐브맵으로 변환됩니다.
큐브맵 레이아웃
Unity는 여러 종류의 큐브맵 레이아웃을 지원하며, 이를 통해 다양한 이미지를 인식할 수 있습니다.
| 레이아웃 유형 | 설명 |
|---|---|
| 수직 교차 (Vertical Cross) | 상하 좌우로 배열된 큐브맵 |
| 수평 교차 (Horizontal Cross) | 좌우 상하로 배열된 큐브맵 |
| 위도-경도 (LatLong) | 구형 환경 맵 형태의 이미지 |
| SphereMap | 구형 이미지 형식으로 주로 사용됨 |
기본적으로 Unity는 임포트된 텍스처의 종횡비를 고려하여 가장 적합한 레이아웃을 선택합니다.
Glossy Reflection
Glossy Reflection 옵션은 반사 프로브에서 큐브맵 텍스처를 더 효과적으로 사용할 수 있게 돕습니다. 이는 다양한 평활도를 가진 표면의 반사를 시뮬레이션하는 스페큘러 컨볼루션 방법을 사용하여 큐브맵의 mip 레벨을 처리합니다.
큐브맵 에셋 생성
Legacy 큐브맵 에셋을 만들기 위해서는 메뉴에서 Assets > Create > Legacy > Cubemap을 선택하고, 여섯 개의 텍스처를 각각 빈 슬롯에드래그합니다.
레거시 큐브맵 인스펙터 프로퍼티
| 속성 | 설명 |
|---|---|
| Right..Back Slots | 해당 큐브맵 면의 텍스처 |
| Face Size | 큐브맵 면의 픽셀 단위 너비 및 높이 |
| Mipmap | 밉맵 생성 여부 |
| Linear | 큐브맵의 리니어 컬러 사용 여부 |
| Readable | 스크립트에서 픽셀 데이터에 접근할 수 있도록 할지 여부 |
큐브맵 텍스처 임포트 타입을 사용하는 것이 권장되며, 이를 통해 데이터 압축이 가능하고 Edge 보정 및 광택 반사 컨볼루션을 수행할 수 있습니다.
기타 큐브맵 생성 기법
스크립트를 통해 Unity 씬의 콘텐츠에서 큐브맵을 생성할 수도 있습니다. Camera.RenderToCubemap 함수는 씬 내의 지정된 위치에서 여섯 면의 이미지를 기록할 수 있습니다. 이 기능을 활용하는 여러 예시와 메뉴 커맨드를 추가할 수 있는 방법은 스크립트 레퍼런스 페이지에서 확인할 수 있습니다.
결론
큐브맵은 환경 반사를 구현하는 데 있어 필수적인 요소로, 다양한 방법으로 생성 및 활용할 수 있습니다. 이 문서에서는 큐브맵의 기본 개념과 생성 방법을 다루었으며, 이를 통해 더 다채로운 게임 환경을 구현할 수 있습니다.