Version: Unity 6.0 (6000.0)
言語 : 日本語
メモリ内のテクスチャ形式
プラットプラットフォーム別の GPU テクスチャ形式の選択

GPU テクスチャ形式の基礎

Unity エディターは、JPEG や PNG などの一般的な形式のテクスチャソースファイルをインポートできます。ただし、GPU はこれらの形式をランタイムには使用しません。GPU は、メモリ使用とサンプリング処理スピードに最適な別の特殊な形式を使用します。

テクスチャ圧縮形式は、テクスチャアセットのインポート設定で設定することができますテクスチャアセットをプロジェクトに追加すると、Unity エディターは、自動的にビルドターゲットごとに適切な圧縮形式を選択します。ただし、ほとんどのプラットフォームでは複数のテクスチャ圧縮形式がサポートされています。

テクスチャ圧縮形式は、ロード時間、GPU フレーム時間、メモリ使用量、視覚的な品質、ビルドサイズ、圧縮時間に影響を与えるため、この設定を変更する前にそれを理解しておくことが重要です。

このページには以下の情報が含まれています。

テクスチャアセットのインポート設定に関する一般的な情報については、テクスチャのインポート設定 を参照してください。各プラットフォームの推奨、デフォルト、サポートされているテクスチャ圧縮形式については、推奨、デフォルト、およびサポートされているテクスチャ形式 (プラットフォーム別) を参照してください。

テクスチャ圧縮の概要

ビット毎ピクセル (bpp) は、1 つのテクスチャピクセルに必要なストレージの量です。bpp 値が低いテクスチャは、ディスク上およびメモリ上のサイズが小さくなります。bpp 値が低いということは、GPU がテクスチャピクセルを読み取るために使用するメモリ帯域幅が小さいことを意味します。GPU のメモリ帯域幅はフレームレートのボトルネックになることが多いので、テクスチャ圧縮はその回避に役立ちます。

テクスチャアセットの視覚的品質が高ければ高いほど、1 ピクセルあたりのビット数が増え、結果的にビルドサイズ、ロード時間、およびランタイムのメモリ使用量が増加します。すべてのテクスチャ圧縮形式は、ある程度、非可逆的です。非圧縮のテクスチャは最高の品質を提供しますが、1 ピクセルあたりのビット数も最も多くなります。テクスチャ圧縮形式によって、様々な妥協策が考えられます。

一般的に、ランタイムパフォーマンスを最高にしディスク上のサイズを最適にするには、ほとんどのテクスチャアセットについて、ターゲットデバイスでサポートされているテクスチャ圧縮形式を選択し、必要な視覚的品質を実現するためにピクセルあたりのビット数を最小にする必要があります。

テクスチャを特定の目的で使用する場合、個々の設定を変更できます。例えば、1 つのチャンネルしかないテクスチャをマスクとして使用する場合、ファイルサイズを減らしながら品質を維持するために BC4 形式を選択することが考えられます。また、ピクセルパーフェクトの UI を実現するためにテクスチャを使用する場合は、圧縮なしを選択することもできます。

ターゲットとするプラットフォームやデバイスがサポートする形式を選択してください。デバイスがサポートしない圧縮形式のテクスチャをロードすると、Unity は、そのプラットフォームのデフォルトの非圧縮形式にテクスチャを解凍し、非圧縮のコピーを元の圧縮テクスチャと一緒にメモリに保存します。これにより、テクスチャの読み込み時間が長くなり、追加のメモリが使用されます。デバイスがサポートする圧縮形式でテクスチャをロードすると、GPU は変換せずにデータを使用できます。

クランチ圧縮

Crunch は、DXT または ETC 圧縮に加えて、変数ビット圧縮を提供する圧縮形式です。Unity が Crunch 圧縮テクスチャをロードすると、テクスチャを CPU で DXT または ETC に解凍し、DXT または ETC 圧縮テクスチャデータを GPU にアップロードします。

Crunch 圧縮は、テクスチャのディスク使用量を可能な限り少なくしますが、ランタイムのメモリ使用量には影響しません。Crunch テクスチャの圧縮には時間がかかりますが、ランタイムでの解凍はかなり高速です。Crunch 圧縮の非可逆性を調整することで、ファイルサイズと品質のバランスを取ることができます。

ビルドのサイズを特に気にする場合に、ターゲットプラットフォームでクランチがサポートされている場合は、クランチ圧縮を加えることを検討してください。

テクスチャ圧縮形式のテクスチャアセットへの適用

テクスチャのインポート設定と、プラットフォーム固有のオーバーライドの設定方法については、テクスチャのインポート設定 を参照してください。

メモリ内のテクスチャ形式
プラットプラットフォーム別の GPU テクスチャ形式の選択