こちらは、2021年1月6日に公開された以下のドキュメントを翻訳したものとなります。
Basis Texture Compression arrives in PlayCanvas
2016年に、PlayCanvasはすばらしいハードウェアテクスチャ圧縮ワークフローを実装しました。このワークフローにより、メモリが少ない携帯電話などのデバイス上でも大きなサイズのすぐれたWebGLアプリの構築が可能となりました。
適切に圧縮されるため、JPGやPNGはネットワーク上での転送に適したフォーマットです。ただしダウンロード後の画像をWebGLに渡した場合、それらの画像を生のRGB(A)データに解凍する必要があります。GPU上のシリコンで解凍が実行されるよう、ハードウェア圧縮されたテクスチャを使用する点が重要です。これによってメモリ使用量を少なくすることができます。
以下の地球のテクスチャ(4096 x 2048)は1.81MB JPGですが、解凍時に33.6MBもの大量のVRAMを使用します!
ハードウェア対応のテクスチャフォーマットを使用すれば、下図のようにVRAM使用量を大幅に減少させつつ、同等のファイルサイズを保持できます。
では、VRAM使用量だけでなくファイルサイズも減少できたらどうでしょうか?!
これを実現するBasisを、PlayCanvasの全ユーザーにすぐにご利用いただけます!上記の地球のテクスチャを圧縮すると521KBのBasisテクスチャになり、ハードウェア対応フォーマットの最小ファイルサイズより68%も縮小されます。
Basisはオープンソースのテクスチャコーデックで、高圧縮された中間ファイルフォーマット(.basis)を生成します。このファイルフォーマットは、実行時にGPUハードウェアでハードウェアがサポートするフォーマットに変換できます。つまり1つのファイル(多くの場合、より小さなファイル)のみが作成され、このファイルは多様なプラットフォームに対応します。
上記の数値のとおり、Basisはエンドユーザーのダウンロード時間を大幅に短縮するため、結果的にユーザーエンゲージメントが向上し、アプリのメトリックスが改善されます。
実際の例で確認してみましょう。以前のブログ記事にあったSpace Base Texture Compression DemoのVRAM使用量、およびChromeでのデスクトップ上のダウンロードサイズ(gzip済み)は以下のとおりです:
通常、BasisのVRAM使用量はレガシーの圧縮と同等である点に留意してください。しかし、PlayCanvasはクオリティを改善しつつ、通常のマップをXYZではなくYYYXフォーマットに圧縮するため、VRAM使用量はわずかに多いだけとなります。
Basisを使用すれば、プロジェクトのアップデートと同様のVRAM使用量でダウンロードサイズを52%(19.5MB)も小さくできます。
さらに、Basis圧縮はアセットインスペクターで数回クリックするだけで開始できます!
まとめ
- 各テクスチャについて、従来は多くのファイル (DXT、PVR、ETC1、ETC2など) が必要でしたがBasisでは1つの圧縮ファイルのみが必要
- ファイルサイズを最大で2.8倍縮小し、ユーザーのダウンロード時間を短縮
- Basisの使用で、圧縮を最大で10倍高速化
- ハードウェア対応フォーマットと同様に、VRAM使用量を減少
- ワンクリックの処理でテクスチャを圧縮
Basisテクスチャ圧縮は、どなたでもすぐにお使いいただけます。テクスチャの圧縮にぜひご活用ください!詳細な情報は、移行ガイドをはじめとするドキュメントで参照できます。
まだPlayCanvasをご利用でない場合には、ぜひサインアップください。PlayCanvasが皆様の開発にどのように役立ったか、フォーラムへのご意見をお待ちしています!
コメント
0件のコメント
サインインしてコメントを残してください。