렌더링 컴포넌트
오클루전 영역

큐브맵

__Cubemap__은 환경에 대한 반사를 나타내는 여섯 개의 사각형 텍스처 컬렉션입니다. 여섯 개의 사각형은 오브젝트를 둘러싸는 가상 큐브면을 형성합니다. 각각의 면은 월드 축의 방향을 따른 뷰를 나타냅니다 (위, 아래, 좌, 우, 앞, 뒤).

큐브맵은 오브젝트의 반사나 “주변 환경”을 캡처하는 데 사용됩니다. 예를 들어, skyboxesenvironment reflections는 주로 큐브맵을 사용합니다.

큐브맵화된 스카이박스와 반사
큐브맵화된 스카이박스와 반사

텍스처에서 큐브맵(Cubemap)을 생성하는 방법

큐브맵을 생성하는 가장 빠른 방법은 특별히 레이아웃된 텍스처에서 임포트하는 것입니다. 프로젝트 창에서 텍스처(Texture)를 선택하고 인스펙터 창에서 임포트 설정을 확인합니다. 임포트 설정에서 텍스처 타입(Texture Type)기본(Default), 노멀 맵(Normal Map) 또는 단일 채널(Single Channel) 로 설정하고, 텍스처 모양(Texture Shape)큐브(Cube) 로 설정합니다. 그러면 Unity가 텍스처를 큐브맵으로 자동 설정합니다.

큐브맵 텍스처 임포트 타입
큐브맵 텍스처 임포트 타입

일반적으로 사용되는 여러 큐브맵 레이아웃이 지원되며, 일부의 경우 Unity에서 자동으로 감지됩니다.

수직 및 수평 교차 레이아웃과 큐브맵 면의 행과 열이 다음 그림과 같이 지원됩니다.

일반적으로 사용되는 다른 레이아웃으로는 LatLong(위도-경도로써, 원통형이라고도 함)이 있습니다. 파노라마 이미지는 다음과 같이 이 레이아웃에 포함되는 경우가 많습니다.

SphereMap(구형 환경 맵) 이미지 역시 자주 사용됩니다.

기본적으로, Unity는 임포트된 텍스처의 종횡비를 고려하여 위의 레이아웃 중 가장 적합한 것을 선택합니다. 텍스처를 임포트하는 경우, 스카이박스와 반사에 사용될 수 있는 큐브맵이 생성됩니다.

Glossy Reflection 옵션은 반사 프로브에서 사용될 큐브맵 텍스처에 유용하게 사용할 수 있습니다. 이것은 평활도가 서로 다른 표면의 반사를 시뮬레이션하는 데 사용할 수 있는 특별한 방법(스페큘러 컨볼루션)으로 큐브맵 밉 레벨을 처리했습니다.

평활도가 다른 표면의 반사 프로브에 사용된 큐브맵
평활도가 다른 표면의 반사 프로브에 사용된 큐브맵

레거시 큐브맵 에셋

Unity는 서로 다른 여섯 개의 textures에서 큐브맵을 생성하는 기능도 지원합니다. 메뉴에서 __Assets > Create > Legacy > Cubemap__을 선택해야 합니다. 그런 다음, 인스펙터에서 여섯 개의 텍스처를 각각 빈 슬롯에 드래그해야 합니다.

레거시 큐브맵 인스펙터
레거시 큐브맵 인스펙터
프로퍼티: 기능:
Right..Back Slots 각각의 큐브맵 면에 해당하는 텍스처입니다.
Face Size 각각의 큐브맵 면의 픽셀 단위 너비 및 높이입니다. 텍스처는 이 크기에 맞게 자동으로 스케일됩니다.
Mipmap 밉맵이 생성되어야 하는지 여부입니다.
Linear 큐브맵이 리니어 색상을 사용해야 하는지 여부입니다.
Readable 큐브맵이 스크립트가 픽셀 데이터에 액세스할 수 있도록 할지 여부입니다.

위와 같이, 큐브맵을 생성하려면 큐브맵 텍스처 임포트 타입을 사용하는 것이 좋습니다(상단 참조). 이는 큐브맵 텍스처 데이터가 압축될 수 있게 하며, 에지 보정과 글로시 반사 컨볼루션을 가능하게 합니다. 또한, HDR 큐브맵도 지원됩니다.

기타 기법

다른 유용한 기법으로는, 큐브맵을 스크립트를 사용하여 Unity 씬의 콘텐츠에서 생성하는 방법이 있습니다. Camera.RenderToCubemap 함수는 씬 내의 원하는 임의의 포지션에서 여섯 면의 이미지를 기록할 수 있습니다. 이 함수의 스크립트 레퍼런스 페이지에 있는 코드 예제를 사용하면 이 작업을 쉽게 수행할 수 있도록 하는 메뉴 커맨드를 추가할 수 있습니다.


2018–01–31 일부 편집 리뷰를 거쳐 페이지 수정됨

렌더링 컴포넌트
오클루전 영역