텍스처
텍스처 타입

텍스처 임포트

이 페이지에서는 Unity 에디터 텍스처 임포터를 사용하여 텍스처를 임포트하는 과정에 대한 자세한 내용과 팁을 설명합니다. 아래로 스크롤하여 전체 내용을 확인하거나, 아래에서 확인하고자 하는 항목을 선택합니다.

지원되는 파일 포맷

Unity는 다음 파일 포맷을 읽을 수 있습니다.

  • BMP
  • EXR
  • GIF
  • HDR
  • IFF
  • JPG
  • PICT
  • PNG
  • PSD
  • TGA
  • TIFF

Unity는 멀티레이어 PSD 및 TIFF 파일만 임포트할 수 있습니다. 이런 파일은 임포트 시에 자동으로 평면화되지만, 레이어는 에셋 자체에서 유지됩니다. 따라서 이런 파일 형식을 기본으로 사용하면 작업물을 전혀 잃지 않게 됩니다. 이 기능은 중요합니다. 텍스처의 복사본을 하나만 갖고 있으면서 Photoshop, 3D 모델링 앱 및 Unity 같은 여러 애플리케이션에 사용할 수 있기 때문입니다.

HDR 텍스처(HDR Textures)

HDR 정보가 포함된 EXR 또는 HDR 파일에서 임포트하는 경우 텍스처 임포터에서 결과물 텍스처에 적합한 HDR 포맷이 자동으로 선택됩니다. 이 포맷은 어느 플랫폼을 위해 빌드하느냐에 따라 자동으로 변경됩니다.

텍스처 크기

이상적인 경우, 텍스처 크기는 각 면에서 2의 제곱(즉, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1,024, 2,048 픽셀(px) 등)이어야 합니다. 텍스처는 정사각형이 아니어도 됩니다. 즉, 너비와 높이가 다를 수 있습니다. 특정 플랫폼에서는 최대 텍스처 크기를 제한합니다. DirectX의 경우, 여러 피처 레벨의 최대 텍스처 크기가 다음과 같습니다.

Graphics API/Feature 레벨 2D 및 큐브맵 텍스처 최대 크기(px)
DX9 Shader Model 2(2004년 이전 PC GPU)/OpenGL ES 2.0 2,048
DX9 Shader Model 3(2006년 이전 PC GPU)/Windows Phone DX11 9.3 level/OpenGL ES 3.0 4,096
DX10 Shader Model 4(2007년 이전 PC GPU)/OpenGL ES 3.1 8,192
DX11 Shader Model 5/GL4 (2008년 이후 PC GPU) 16,384

참고:

  • 텍스처 임포터에서 선택 가능한 크기는 최대 8K(즉 8,192 x 8,192 px)로 제한됩니다.
  • Mali-Txxx GPU(Wikipedia 참조)와 OpenGL ES 3.1(www.opengl.org)은 최대 4,096px의 큐브맵 텍스처 크기만 지원합니다.

Unity에서 NPOT(2의 제곱이 아닌 수) 텍스처 크기를 사용할 수도 있지만, NPOT 텍스처 크기는 일반적으로 메모리를 조금 더 차지하고 GPU에서 샘플링하는 속도가 더 느릴 수 있으므로 가능한 경우 항상 2의 제곱수인 크기를 사용하면 더 나은 성능을 얻을 수 있습니다. 플랫폼이나 GPU가 NPOT 텍스처 크기를 지원하지 않는 경우 Unity는 다음으로 가장 가까운 2의 제곱수 크기로 텍스처를 확장하고 패딩합니다. 이 프로세스에는 메모리가 더 많이 사용되므로 (특히 구형 모바일 디바이스에서)로딩 속도가 느려집니다. 일반적으로 GUI 용도로만 NPOT 크기를 사용해야 합니다.

임포트 시 텍스처 임포터의 Advanced 섹션에 있는 Non Power of 2 옵션을 사용하여 NPOT 텍스처 에셋 스케일을 확대할 수 있습니다.

UV 매핑

2D 텍스처를 3D 모델에 매핑하는 경우, 3D 모델링 애플리케이션에서 UV 매핑이라는 일종의 래핑을 수행합니다. Unity에서 머티리얼을 사용해 텍스처를 스케일하거나 움직일 수 있습니다. 노멀 및 세부 맵 스케일에 특히 유용합니다.

밉맵(Mip maps)

밉맵는 이미지의 점진적으로 더 작아지는 버전이 나열된 리스트로, 리얼타임 3D 엔진에서 성능을 최적화하는 데 사용됩니다. 카메라에서 멀리 떨어진 오브젝트에 더 작은 Texture 버전이 사용됩니다. 밉맵을 사용하면 메모리가 33% 더 많이 사용되지만, 밉맵을 사용하지 않으면 성능이 크게 저하될 수 있습니다. 인게임 텍스처에는 항상 밉맵을 사용해야 하며, 작게 만들어진 텍스처(예: GUI 텍스처), Skybox, 커서 및 쿠키)는 예외입니다. 밉맵은 여러 형태의 텍스처 앨리어싱 및 쉬머링을 방지하는 데도 필수적입니다.

노멀 맵(Normal maps)

노멀 맵은 노멀 맵 셰이더에서 로우 폴리곤 모델에 디테일이 더 많이 포함된 것처럼 보이게 하는 데 사용합니다. Unity에서는 RGB 이미지로 인코딩된 노멀 맵을 사용합니다. 그레이스케일 맵 이미지로부터 노멀 맵을 생성하는 옵션도 있습니다.

세부 맵(Detail maps)

터레인을 만들려면 일반적으로 메인 텍스처를 사용하여 풀, 바위 및 모래 같은 터레인 영역을 표시합니다. 터레인이 큰 경우 메우 흐릿하게 보일 수 있습니다. Detail 텍스처는 주 텍스처가 가까워질 때 작은 디테일을 페이드인하여 이 사실을 숨길 수 있습니다.

Detail 텍스처를 그릴 때 중립 회색은 보이지 않게 하며 흰색은 메인 텍스처를 두 배 더 밝게 만들고 검정색은 메인 텍스처가 완전히 검어지게 합니다.

자세한 내용은 보조 맵(세부 맵)을 참조하십시오.

반사(큐브맵)(Reflections (cubemaps))

텍스처를 반사 맵 (예를 들어 반사 프로브 또는 큐브맵 Skybox)에서 사용하려면 텍스처 모양(Texture Shape)큐브(Cube) 로 설정합니다. 자세한 내용은 큐브맵 텍스처 문서를 참조하십시오.

비등방성 필터링(Anisotropic filtering)

비등방성 필터링은 지표각에서 보이는 텍스처 품질을 향상시킵니다. 이 렌더링에는 그래픽 카드 리소스가 많이 사용됩니다. 지면 또는 바닥 텍스처의 경우 일반적으로 비등방성 수준을 높이는 것이 좋습니다. 품질 설정을 사용하여 비등방형 필터링을 모든 텍스처에 적용하거나 완전히 비활성화할 수 있습니다.

!지면 텍스처에 사용된 비등방성{비등방성 없음(왼쪽) | 비등방성 최대(오른쪽)}

텍스처
텍스처 타입