큐브맵(Cubemap) 은 환경에 대한 반사를 나타내는 여섯 개의 사각형 텍스처 컬렉션입니다. 여섯 개의 사각형은 오브젝트를 둘러싸는 가상 큐브면을 형성합니다. 각각의 면은 월드 축의 방향을 따른 뷰를 나타냅니다 (위, 아래, 좌, 우, 앞, 뒤).
큐브맵은 오브젝트의 반사나 “주변 환경”을 캡처하는 데 사용됩니다. 예를 들어, skyboxes 와 environment reflections는 주로 큐브맵을 사용합니다.
큐브맵을 생성하는 가장 좋은 방법은 특별하게 레이아웃된 textures에서 큐브맵을 임포트하는 것입니다.
Cubemap
텍스처 임포트 타입을 선택하면 Unity가 자동으로 이를 생성합니다. 일반적으로 사용되는 몇 가지 큐브맵 레이아웃이 지원됩니다
(대부분 자동으로 감지됨).
수직 및 수평 교차 레이아웃과 큐브맵 면의 행과 열이 다음 그림과 같이 지원됩니다.
일반적으로 사용되는 다른 레이아웃으로는 LatLong
(위도-경도로, 원통형이라고도 함)이 있습니다.
파노라마 이미지는 다음과 같이 이 레이아웃에 포함되는 경우가 많습니다.
SphereMap
(구형 환경 맵) 이미지 역시 자주 사용됩니다.
기본적으로, Unity는 임포트된 텍스처의 종횡비를 고려하여 위의 레이아웃 중 가장 적합한 것을 선택합니다. 텍스처를 임포트하는 경우, 스카이박스와 반사에 사용될 수 있는 큐브맵이 생성됩니다.
Glossy Reflection
옵션은 반사 프로브에서 사용될 큐브맵 텍스처에 유용하게 사용할 수 있습니다.
이것은 평활도가 서로 다른 표면의 반사를 시뮬레이션하는 데 사용할 수 있는
특별한 방법(스페큘러 컨볼루션)으로 큐브맵 밉 레벨을 처리했습니다.
Unity는 서로 다른 여섯 개의 textures에서 큐브맵을 생성하는 기능도 지원합니다. 메뉴에서 Assets > Create > Legacy > Cubemap 을 선택해야 합니다. 그런 다음, 인스펙터에서 여섯 개의 텍스처를 각각 빈 슬롯에 드래그해야 합니다.
프로퍼티: | 기능: |
---|---|
Right..Back Slots | 각각의 큐브맵 면에 해당하는 텍스처입니다. |
Face Size | 각각의 큐브맵 면의 픽셀 단위 너비 및 높이입니다. 텍스처는 이 크기에 맞게 자동으로 스케일됩니다. |
Mipmap | 밉맵이 생성되어야 하는지 여부입니다. |
Linear | 큐브맵이 리니어 색상을 사용해야 하는지 여부입니다. |
Readable | 큐브맵이 스크립트가 픽셀 데이터에 액세스할 수 있도록 할지 여부입니다. |
위와 같이, 큐브맵을 생성하려면 큐브맵 텍스처 임포트 타입을 사용하는 것이 좋습니다(상단 참조). 이는 큐브맵 텍스처 데이터가 압축될 수 있게 하며, 에지 보정과 글로시 반사 컨볼루션을 가능하게 합니다. 또한, HDR 큐브맵도 지원됩니다.
다른 유용한 기법으로는, 큐브맵을 스크립트를 사용하여 Unity 씬의 콘텐츠에서 생성하는 방법이 있습니다. Camera.RenderToCubemap 함수는 씬 내의 원하는 임의의 포지션에서 여섯 면의 이미지를 기록할 수 있습니다. 이 함수의 스크립트 레퍼런스 페이지에 있는 코드 예제를 사용하면 이 작업을 쉽게 수행할 수 있도록 하는 메뉴 커맨드를 추가할 수 있습니다.