텍스처는 비트맵 이미지입니다. Photoshop 같은 디지털 콘텐츠 제작 애플리케이션에서 텍스처를 만든 후 Unity로 임포트할 수 있습니다.
3D 프로젝트에서 Unity는 이미지 및 동영상 파일을 Assets 폴더에 텍스처로 임포트합니다. 2D 프로젝트에서 Unity는 이미지 및 동영상 파일을 Assets 폴더에 스프라이트로 임포트합니다.
이미지가 지정된 크기 요구 사항을 충족하면 Unity는 해당 이미지를 임포트하고 게임 사용에 맞게 최적화합니다. 이는 멀티 레이어 Photoshop PSD 또는 TIFF 파일로 확장됩니다.
Unity에서 이미지 및 동영상 파일을 텍스처 또는 스프라이트로 임포트하려면 다음 단계를 따르십시오.
다음 항목은 텍스처 임포트에 대한 권장 사항을 제공하고 제한 사항을 상세히 설명합니다.
HDR 정보가 포함된 EXR 또는 HDR 파일에서 임포트하는 경우 텍스처 임포터에서 결과물 텍스처에 적합한 HDR 포맷이 자동으로 선택됩니다. 이 포맷은 어느 플랫폼을 위해 빌드하느냐에 따라 자동으로 변경됩니다.
이상적인 경우, 텍스처 크기는 각 면에서 2의 제곱(즉, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1,024, 2,048 픽셀(px) 등)이어야 합니다. 텍스처는 정사각형이 아니어도 됩니다. 즉, 너비와 높이가 다를 수 있습니다.
Unity에서 NPOT(2의 제곱이 아닌 수) 텍스처 크기를 사용할 수도 있지만, NPOT 텍스처 크기는 일반적으로 메모리를 조금 더 차지하고 GPU에서 샘플링하는 속도가 더 느릴 수 있으므로 가능한 경우 항상 2의 제곱수인 크기를 사용하면 더 나은 성능을 얻을 수 있습니다.
플랫폼이나 GPU가 NPOT 텍스처 크기를 지원하지 않는 경우 Unity는 다음으로 가장 가까운 2의 제곱수 크기로 텍스처를 확장하고 패딩합니다. 이 프로세스에는 메모리가 더 많이 사용되므로 (특히 구형 모바일 디바이스에서) 로딩 속도가 느려집니다. 일반적으로 GUI 용도로만 NPOT 크기를 사용해야 합니다.
임포트 시 텍스처 임포터의 Advanced 섹션에 있는 Non Power of 2 옵션을 사용하여 NPOT 텍스처 에셋 스케일을 확대할 수 있습니다.
참고: 특정 플랫폼에서는 최대 텍스처 크기를 제한합니다. 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 |
참고:
밉맵은 점진적으로 더 작아지는 버전의 이미지 리스트입니다. 텍스처가 밉맵을 사용하면 Unity는 카메라에서 멀리 떨어져 있을 때 더 작은 버전의 텍스처를 자동으로 사용합니다. 이렇게 하면 텍스처 렌더링의 성능 부하를 줄이고 눈에 띄는 디테일 손실도 발생하지 않습니다. 또한 밉맵은 앨리어싱 및 쉬머링 문제도 줄여줍니다.
밉맵을 사용하면 메모리가 33% 더 많이 사용되므로, 카메라와의 거리가 변경되는 텍스처에만 사용해야 합니다. 카메라와의 거리가 변하지 않는 텍스처(예: UI, 스카이박스 등에 사용되는 텍스처)에는 사용하지 마십시오.
밉맵 스트리밍을 사용하여 런타임 시점에 Unity가 밉맵을 로드하는 방식을 제어할 수 있습니다.
노멀 맵은 노멀 맵 셰이더에서 로우 폴리곤 모델에 디테일이 더 많이 포함된 것처럼 보이게 하는 데 사용합니다. Unity에서는 RGB 이미지로 인코딩된 노멀 맵을 사용합니다. 그레이스케일 맵 이미지로부터 노멀 맵을 생성하는 옵션도 있습니다.
알파 맵은 알파 정보만 포함하는 텍스처입니다. 알파 맵을 사용하면 머티리얼에 다양한 수준의 투명도를 적용할 수 있습니다.
알파 채널의 정보로 텍스처를 생성하거나, Unity에서 그레이스케일 텍스처를 생성한 후 그레이스케일 값을 알파로 전환하여 알파 맵을 생성할 수 있습니다.
자세한 내용은 알파 소스 텍스처 임포트 설정에 대한 문서를 참조하십시오.
터레인을 만들려면 일반적으로 메인 텍스처를 사용하여 풀, 바위 및 모래 같은 터레인 영역을 표시합니다. 터레인이 큰 경우 메우 흐릿하게 보일 수 있습니다. Detail 텍스처는 주 텍스처가 가까워질 때 작은 디테일을 페이드인하여 이 사실을 숨길 수 있습니다.
Detail 텍스처를 그릴 때 중립 회색은 보이지 않게 하며 흰색은 메인 텍스처를 두 배 더 밝게 만들고 검정색은 메인 텍스처가 완전히 검어지게 합니다.
자세한 내용은 보조 맵(세부 맵)을 참조하십시오.
텍스처를 반사 맵 (예를 들어 반사 프로브 또는 큐브맵 Skybox)에서 사용하려면 텍스처 모양(Texture Shape) 을 큐브(Cube) 로 설정합니다. 자세한 내용은 큐브맵 텍스처 문서를 참조하십시오.
이방성 필터링은 지표각에서 보이는 텍스처 품질을 향상시킵니다. 이 렌더링에는 그래픽 카드 리소스가 많이 사용됩니다. 지면 또는 바닥 텍스처의 경우 일반적으로 이방성 수준을 높이는 것이 좋습니다. 품질 설정을 사용하여 이방성 필터링을 모든 텍스처에 적용하거나 완전히 비활성화할 수 있습니다. 하지만 텍스처 임포트 설정에서 텍스처의 Aniso level이 0으로 설정된 경우에는 이방성 필터링을 강제로 적용해도 이 텍스처에 나타나지 않습니다.
!
Unity는 다음 파일 포맷을 읽을 수 있습니다.
Unity는 임포트 시 멀티 레이어 Photoshop PSD 또는 TIFF 파일을 자동으로 줄이므로 게임에 대한 크기 페널티가 없습니다. 이러한 줄이기 작업은 파일 자체가 아니라 Unity에서 임포트한 데이터에 대해 이루어지기 때문에 이러한 파일 타입을 기본적으로 사용해도 작업 손실 없이 PSD 또는 TIFF 파일을 계속 저장하고 임포트할 수 있습니다. 이런 방식으로 Photoshop, 3D 모델링 애플리케이션, Unity에서 사용할 수 있는 각 텍스처의 사본을 하나씩 얻을 수 있습니다.