UDN
Search public documentation:

MobileTextureReferenceKR
English Translation
日本語訳

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 모바일 홈 > 모바일 플랫폼용 텍스처
UE3 홈 > 머티리얼과 텍스처 > 모바일 플랫폼용 텍스처
UE3 홈 > 텍스처 아티스트 / 캐릭터 아티스트 / 배경 아티스트 > 모바일 플랫폼용 텍스처

모바일 플랫폼용 텍스처


문서 변경내역: Josh Adams 작성. 홍성진 번역.

개요


모바일 플랫폼용 텍스처를 제작할 때 특별히 고려해야할 사항에 대한 개괄적인 문서입니다. 모바일 그래픽 하드웨어는 보통의 PC 그래픽 하드웨어와는 다른 포맷으로 작동하며, 텍스처 처리 방식도 다릅니다. 그에 따라 텍스처를 제작할 때 주의해야 할 것들을 미리 알고 있으면, 많은 문제를 피할 수 있습니다.

PVRTC 포맷


(모든 iOS 디바이스를 포함하여) 많은 모바일 디바이스는 (에픽의 텍스처 99% 정도를 차지하는) DXT 텍스처를 지원하지 않습니다. PVRTC 는 ImgTec's PowerVR 텍스처 포맷입니다. PVRTC 포맷에는 PVRTC2 및 PVRTC4, 두 종류가 있는데 각각 텍셀당 2 및 4비트 씩입니다.

PVRTC 포맷용 최소 텍스처 치수는 아래와 같습니다:

포맷 치수
PVRTC2 16x16
PVRTC4 8x8

변환


PVRTC-지원 디바이스에서 압축된 텍스처를 사용하려면, DXT 텍스처를 PVRTC로 변환해 줘야 합니다. 이는 게임의 Engine.ini 내의 다음 세팅을 통해 게임-단위로 제어됩니다:

[MobileSupport]
bShouldCachePVRTCTextures=True

이렇게 설정되면 모든 DXT 텍스처를 PVRTC 포맷으로 변환합니다. DXT1 텍스처(텍셀당 4비트)는 PVRTC2로, DXT3와 5(텍셀당 8비트)는 PVRTC4로 변환됩니다. 즉 텍스처 크기가 전체적으로 절반이 된다는 뜻입니다. 정말 고품질이 필요할 경우 DXT1 텍스처를 PVRTC4로 강제시키는 텍스처 세팅도 있습니다.

캐싱


PVRTC로의 변환은 매우 느리기에, 일반적으로 DXT 텍스처는 패키지 저장 시간에 PVRTC 포맷으로 변환되며, 소스 패키지에 DXT 데이터와 함께 캐싱됩니다. 쿠킹 시간에 DXT 데이터는 던져버리며, PVRTC 데이터가 DXT 데이터를 사용할 밉 데이터로 대체합니다. 다른 플랫폼용 쿠킹은 그냥 PVRTC 데이터를 토싱하기만 합니다.

쿠킹 시간에 캐싱된 PVRTC 데이터가 없으면, 쿠커가 PVRTC로 변환은 하지만 (쿠커가 소스 패키지를 변경하지는 않기에) 소스 패키지에 캐싱을 하지는 않습니다. 그래서 쿠킹을 할 때마다 매번 변환을 하게 됩니다.

쿠커가 변환을 할 때, 또는 프로덕션 이외 품질로 라이팅을 하는 라이트맵에서 사용되는 안좋아도-빠르기는-한 PVRTC 압축 방법이 있습니다. 최종 텍스처가 아닌 것들에 대한 반복처리 속도를 올리고자할 때 사용됩니다. 이러한 빠른 압축 방법으론 보통 출하가능한 품질의 텍스처를 내지는 못합니다.

비-정사각형 텍스처


iOS의 PVRTC 텍스처는 반드시 정사각형이어야 합니다. 그래서 UE의 PVRTC 압축 코드는 행이나 열 복제를 통해 텍스처가 정사각형이 되도록 합니다. 그래서 이와 같은 텍스처는:

tex_non_square.jpg

이렇게 바뀝니다:

tex_square.jpg

코드/콘텐츠에 사용하는 UV는 바뀌지 않습니다. 심지어 (텍셀에 있는) HUD UV도 바뀌지 않습니다. 원본 텍스처 크기를 기준삼으십시오. (이로써 코드가 이식가능하게 되니, 텍스처 크기가 바뀔 것인지는 알 필요도 없습니다.)

텍스처가 정사각형으로 자동 변환되기는 하지만, 정사각형이지 않은 텍스처가 너무 많으면 메모리가 매우 쉽게 낭비될 수 있다는 뜻이기도 합니다. 예를 들어 512x256 텍스처가 둘 있다 치면, 이는 512x512 텍스처 둘로 변환됩니다. 그러나 그 두 개의 사각 텍스처를 하나의 512x512 텍스처로 패킹할 수 있다면, 변환 이후에도 512x512 텍스처 하나만 나오게 됩니다.

라이트맵


라이트맵은 종종 정사각형이 아닌 텍스처를 만듭니다. .ini 세팅에 다음과 같이 추가하면 라이팅 포스트-프로세스에서 라이트맵을 정사각형 텍스처로 리패킹해 봅니다:

   [DevOptions.StaticLighting]
   bRepackLightAndShadowMapTextures=True

명령줄에 -nopvrtclightmaps 를 지정하면 저장시 라이트맵이 PVRTC로 변환되는 기능을 끌 수 있습니다.

텍스처 스트리밍


텍스처 스트리밍은 현재 모바일 디바이스에서는 꺼져 있습니다. (ES2 렌더러는 현재 텍스처 재생성을 지원하지 않습니다.)

텍스처 클램핑


현재 모든 텍스처는 그 에지에서 래핑(wrap)합니다. 여지껏 문제가 된 적은 없습니다.

sRGB / 감마


감마 보정 기능이 모바일 디바이스에서 지원되기는 하지만, 고성능 디바이스를 제외하고는 퍼포먼스 문제가 생길 수 있습니다. 감마 보정 없는 디바이스에서 쓸 콘텐츠 제작에 관한 정보는 DesigningForMobileKR#감마 페이지를 참고하시기 바랍니다.