UDN
Search public documentation:

MobileTextureReferenceJP
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 ホーム > テクスチャアーティスト / キャラクターアーティスト / 背景アーティスト > モバイル プラットフォームのためのテクスチャ


モバイル プラットフォームのためのテクスチャ


概要


このドキュメントでは、モバイル用プラットフォームのためにテクスチャを作成する際に考慮しなければならない特別な事柄について概説します。モバイルのグラフィックスハードウェアは、通常の PC 用グラフィックスハードウェアとは異なる形式で機能するとともに、テクスチャの扱い方も異なります。必要な予防措置をとり、それに従ってテクスチャを作成するならば、問題の多くを回避することが可能です。

PVRTC 形式


多くのもモバイルでは (iOS デバイスすべてを含み)、DXT テクスチャ (Epic のテクスチャのうち約 99% を占める) がサポートされていません。 PVRTC は、ImgTec の PowerVR テクスチャ形式です。PVRTC formats と PVRTC2 の 2 つの形式があります。1 テクセルあたり、それぞれ 2 ビットと 4 ビットとなります。

PVRTC 形式のための最低テクスチャサイズは、次のようになります。

形式 サイズ
PVRTC2 16x16
PVRTC4 8x8

変換


PVRTC をサポートしているデバイス上で圧縮したテクスチャを使用するには、DXT テクスチャを PVRTC に変換する必要があります。これは、ゲームの Engine.ini ファイルの中で次の設定項目を使用してゲーム単位で制御されます。

[MobileSupport]
bShouldCachePVRTCTextures=True

このように設定すると、すべての DXT テクスチャが PVRTC 形式に変換されます。DXT1 テクスチャ (テクセルあたり 4 ビット) は PVRTC2 に変換されます。また、DXT3 と DXT5 (これらはテクセルあたり 8 ビット) は PVRTC4 に変換されます。つまり、全体に渡ってテクスチャが半分のサイズになります。より高いクオリティをどうしても必要とする場合は、DXT1 テクスチャに PVRTC4 を強制するテクスチャの設定項目があります。

キャッシュ化


PVRTC の変換には時間が相当かかるため、通常はパッケージ保存時に DXT テクスチャを PVRTC に変換し、ソースパッケージの中に DXT データと共にキャッシュ化します。クック時に DXT データは破棄され、PVRTC データが使用されるミップデータとして DXT データ に置き換わります。他のプラットフォームのためにクックする場合は、PVRTC を破棄します。

キャッシュされた PVRTC データがクック時にない場合、クッカは PVRTC に切り替えます。ただし、ソースパッケージの中にはキャッシュしません。(クッカがソースパッケージを変更しないためです)。したがって、クックするたびに変換を行うことになります。

質は劣るものの速度が優る PVRTC 圧縮方式があります。これはクッカが変換を実行する場合に使用するか、非製品版としてのクオリティの光源処理を行う場合にライトマップ上で使用します。最終版以外のテクスチャのために、イタレーションを単に速めるためのものです。この圧縮方式は速いものの、通常は出荷に耐える質のテクスチャを作り出すことはできません。

非正方形のテクスチャ

iOS の PVRTC テクスチャは、正方形でなければなりません。したがって、「Unreal Engine 3」における PVRTC 圧縮コードは、横の行または縦の列の複製によってテクスチャが正方形になるようにします。したがって、次のように見えるテクスチャは、

tex_non_square.jpg

次のようになるでしょう。

tex_square.jpg

コード / コンテンツ で使用する UV は変化しません。HUD の UV も変化しません (テクセル単位です)。オリジナルのテクスチャサイズに基づきます。(これによってコードに移植性がもたらされます。テクスチャがリサイズされていることは知る必要がありません)。

ただし、テクスチャが自動的に正方形に変換されるにしても、非正方形のテクスチャが多すぎるとメモリが実に簡単に浪費されてしまうことになりかねません。たとえば、512 x 256 のテクスチャが 2 つある場合は、512 x 512 のテクスチャ 2 つに変換されます。もし、2 つの長方形のテクスチャを 512 x 512 のテクスチャ 1 つに詰め込むことが可能であれば、512 x 512 のテクスチャが 1 つできるだけです。

ライトマップ

ライトマップはしばしば非正方のテクスチャを作ります。.ini ファイルの設定項目を次のように設定するならば、光源処理のポストプロセスによってライトマップが正方形テクスチャに再パックされます。

   [DevOptions.StaticLighting]
   bRepackLightAndShadowMapTextures=True

コマンドライン上で -nopvrtclightmaps を指定すると、保存時にライトマップを PVRTC に変換する機能が無効になります。

テクスチャ ストリーミング


テクスチャ ストリーミングは、現在モバイルデバイス上では無効になっています。(現在のところ ES2 レンダラはテクスチャの再作成をサポートしていません)。

テクスチャのクランピング


現在のところすべてのテクスチャはエッジでラップします。これまでのところ、これが問題にはなったことはありません。

sRGB / ガンマ


ガンマ補正 は、モバイルデバイス用にサポートされていますが、非常にパワーがあるデバイスを除いて、パフォーマンス上の問題を引き起こす可能性があります。ガンマ補正がないモバイルデバイス用にコンテンツを作成する場合は、 ガンマ? のセクションを参照してください。