Basis Universal: ユニバーサル テクスチャ圧縮の完全ガイド
Basis Universal は、クロスプラットフォーム グラフィックス開発における最大の課題の 1 つである、さまざまなプラットフォームやデバイス間での異なるテクスチャ圧縮フォーマットの管理を解決する革新的なテクスチャ圧縮システムです。 Binomial LLC によって開発され、現在はオープンソース プロジェクトとして維持されている Basis Universal は、実行時にネイティブ GPU 圧縮形式にトランスコードできる単一の圧縮テクスチャ ファイル形式を提供します。
ベーシスユニバーサルとは何ですか?
Basis Universal は、高圧縮の中間テクスチャ ファイルを生成する「超圧縮」GPU テクスチャ圧縮システムです。これらのファイルは、実行時に、ETC1、ETC2、ASTC、BC1-7、PVRTC など、ターゲット プラットフォームがサポートする任意の GPU 圧縮形式にすばやくトランスコードできます。
Basis Universal の主な革新は、テクスチャ データをプラットフォームに依存しない形式で保存し、それをターゲット デバイスに最適なネイティブ形式にトランスコードできる機能です。これは、開発者が携帯電話からデスクトップ コンピュータ、ゲーム コンソールに至るまで、どこでも機能する単一のテクスチャ ファイルを配布できることを意味します。
Basis Universal は、ETC1S (最大圧縮用) と UASTC (最高品質用) の 2 つの主要な圧縮モードをサポートしています。どちらのモードも、最新のグラフィックス アプリケーションに適したビジュアル品質を維持しながら、優れた圧縮率を提供します。
Basis Universal の主な特徴
ユニバーサルトランスコーディング
単一の圧縮ファイルを実行時にネイティブ GPU フォーマット (ETC1/2、ASTC、BC1-7、PVRTC) にトランスコード可能
高い圧縮率
ETC1S モードは、優れた画質を備えた優れた圧縮率 (最大 10:1 以上) を提供します。
UASTCモード
UASTC (Universal ASTC) 圧縮により、BC7 および ASTC 形式と同等の品質を実現
高速トランスコーディング
実行時のトランスコーディングは非常に高速で (通常、テクスチャあたり数ミリ秒)、メモリ オーバーヘッドが最小限に抑えられます。
基本ユニバーサル圧縮モード
Basis Universal は 2 つの異なる圧縮モードを提供し、それぞれが異なる使用例に合わせて最適化されています。
ETC1Sモード
非常に高い圧縮率 (通常は 6:1 ~ 10:1 の圧縮) を提供し、良好な画質を実現します。ほとんどの拡散テクスチャ、UI 要素、および完璧な視覚的忠実度よりもファイル サイズが重要なコンテンツに最適です。
最適な用途: モバイル アプリケーション、Web コンテンツ、拡散テクスチャ、UI 要素
UASTCモード
3:1 ~ 4:1 の圧縮率で、BC7 および ASTC と同等以上の優れたビジュアル品質を提供します。高詳細なテクスチャ、法線マップ、および視覚的な品質が最も重要なコンテンツに最適です。
最適な用途: ノーマル マップ、詳細テクスチャ、ヒーロー アセット、PC/コンソール アプリケーション
基本的なユニバーサルワークフロー
典型的な Basis Universal ワークフローには、次の 3 つの主要な段階が含まれます。
1. ソース圧縮
ETC1S または UASTC モードを使用して、ソース テクスチャ (PNG、TGA など) を .basis ファイルに圧縮します。これは通常、アセット構築プロセス中に行われます。
2. ランタイムトランスコーディング
アプリケーションの起動時またはロード時に、.basis ファイルをターゲット プラットフォーム (Android の場合は ETC2、iOS の場合は ASTC、Windows の場合は BC7 など) に最適なネイティブ形式にトランスコードします。
3. GPU レンダリング
トランスコードされたテクスチャ データを GPU のネイティブ テクスチャ圧縮ハードウェアで直接使用し、最適なパフォーマンスを確保します。
ベーシスユニバーサルのメリット
単一アセット パイプライン
異なるプラットフォーム用に複数のテクスチャ形式のバージョンを維持する必要がなくなります。
パッケージサイズの縮小
複数の形式のバリエーションを出荷する場合と比較して、アプリケーション パッケージが大幅に小さい
帯域幅使用量の削減
ダウンロードの高速化とデータ使用量の削減、特に Web アプリケーションやモバイル アプリケーションにとって重要
プラットフォームの柔軟性
ソース テクスチャを再圧縮することなく、新しいプラットフォームを簡単にターゲットにできます
制限事項と考慮事項
トランスコーディングのオーバーヘッド
ランタイムのトランスコーディングが必要であり、テクスチャの読み込み中に若干のパフォーマンス コストが追加されます。
圧縮損失
すべての非可逆圧縮と同様に、非圧縮テクスチャと比較して品質がある程度低下します。
メモリ要件
トランスコーディングには、圧縮データとトランスコーディング データの両方に一時メモリが必要です
統合の複雑さ
Basis Universal ライブラリとランタイム コード変換コードの統合が必要
理想的な使用例
WebGL アプリケーション
単一ファイルの展開と高速読み込みが重要な Web ベースの 3D アプリケーションに最適
クロスプラットフォームモバイル
単一のテクスチャ パイプラインで Android と iOS の両方をターゲットとするモバイル アプリに最適
Web3 とブロックチェーン ゲーム
アセットサイズと転送速度が重要なブロックチェーンベースのゲームに最適
マルチプラットフォーム ゲーム
複数のプラットフォームとアプリストアを対象としたゲームのアセット管理を簡素化します
Basis Universal と他のフォーマット
Basis Universal と従来のアプローチとの比較:
従来のアプローチ
複数の形式のバリアントを出荷 (Android 用 ETC2、iOS 用 ASTC、Windows 用 BC7) → パッケージ サイズが大きくなり、アセット パイプラインが複雑
普遍的なアプローチの基本
単一の .basis ファイルを出荷 → ランタイムで最適な形式にトランスコード → より小さなパッケージ、よりシンプルなパイプライン
ストレージ: テクスチャ ストレージ要件を 50 ~ 80% 削減
帯域幅: ダウンロード帯域幅が 50 ~ 90% 削減されます。
ビルド時間: 単一の圧縮ステップでビルドを高速化
品質: ネイティブ形式と同等のビジュアル品質
ベストプラクティス
- ファイル サイズが重要なほとんどの拡散テクスチャおよび UI 要素には ETC1S モードを使用してください
- ビジュアル品質が重要なノーマル マップ、詳細テクスチャ、ヒーロー アセットには UASTC モードを使用します。
- ブロックを避けるために、アプリケーションの起動時ではなくアセットの読み込み中にテクスチャをトランスコードします。
- ETC1S モードと UASTC モードのどちらかを選択する場合は、ターゲット プラットフォームの圧縮形式を考慮してください。
- ターゲット プラットフォームでトランスコードされたテクスチャをテストして、ビジュアル品質が要件を満たしていることを確認します。
- 同じアセットの繰り返しトランスコーディングを避けるために、可能な場合はトランスコードされたテクスチャをキャッシュします。
結論
Basis Universal は、テクスチャ圧縮テクノロジの大幅な進歩を表し、異なるプラットフォーム間で複数のテクスチャ フォーマットを管理するという長年の問題を解決します。そのユニバーサルなトランスコーディング アプローチは、パッケージ サイズの縮小からアセット パイプラインの簡素化まで、技術的およびビジネス上の両方の利点を提供します。
クロスプラットフォーム アプリケーション、Web ベースのエクスペリエンス、ダウンロード サイズと帯域幅が重要なシナリオに対して、Basis Universal は、ビジュアル品質やパフォーマンスに妥協しない魅力的なソリューションを提供します。グラフィックス業界がクロスプラットフォーム開発に向けて動き続けるにつれ、Basis Universal のようなツールは効率的なテクスチャ管理にますます不可欠なものになるでしょう。
詳細な資料とリソース
以下の信頼できるリソースで知識を広げてください。
- 基本ユニバーサル GitHub リポジトリ - ソースコードとドキュメントを含む公式 Basis ユニバーサル リポジトリ
- 基礎となるユニバーサルドキュメント - 包括的なドキュメントと使用例
- Khronos Basis ユニバーサル トランスコーダ - Khronos が管理する Web およびモバイル プラットフォーム用のトランスコーディング ライブラリ
- 基礎ユニバーサルテクニカルペーパー - Basis Universal 圧縮アルゴリズムを説明したオリジナルの研究論文
- WebGL テクスチャ圧縮ガイド - Web アプリケーションにおけるテクスチャ圧縮に関する Google のガイド