ASTC フォーマット: 究極のテクスチャ圧縮ガイド
ASTC (Adaptive Scalable Texture Compression) は、現在利用可能な最も高度で柔軟なテクスチャ圧縮形式です。 ARM によって開発され、公式の Khronos 標準として採用された ASTC は、品質と圧縮率に対する前例のない制御を提供し、最新のモバイルおよびデスクトップ グラフィックスにとって理想的な選択肢となっています。
ASTCとは何ですか?
ASTC は、ETC、PVRTC、DXT/BCn などの古い形式を置き換えるように設計された非可逆ブロックベースのテクスチャ圧縮形式です。これは、すべてのプラットフォームで機能し、品質とサイズの幅広いトレードオフをサポートする単一の統一フォーマットを提供するように特別に設計されました。
圧縮率が固定されていた以前の形式とは異なり、ASTC では開発者が 14 の異なる 2D ブロック サイズ (4×4 ~ 12×12) と複数の品質レベルから選択できるため、視覚的な品質とメモリ消費量のバランスをきめ細かく制御できます。
ASTC は、LDR (ロー ダイナミック レンジ) および HDR (ハイ ダイナミック レンジ) コンテンツ、1 ~ 4 のカラー チャネル、および 2D テクスチャと 3D テクスチャの両方をサポートします。この多用途性により、最新のグラフィックス アプリケーションのほぼすべてのテクスチャ タイプに適しています。
ASTCの主な特徴
柔軟なブロックサイズ
4×4 (8 bpp) から 12×12 (0.89 bpp) までの 14 の異なる 2D ブロック サイズにより、圧縮率と品質を正確に制御できます
調整可能な品質
複数のエンコード品質レベル (高速、中程度、徹底、徹底) により、エンコード時間と視覚的な忠実度のバランスをとることができます。
HDRのサポート
最新の PBR (物理ベース レンダリング) ワークフローに不可欠なハイ ダイナミック レンジ テクスチャのネイティブ サポート
ハードウェア効率が高い
電力消費とメモリ帯域幅の使用を最小限に抑えて、効率的なハードウェア解凍を行うように設計されています。
ASTC ブロック サイズの説明
ASTC のブロック サイズによって圧縮率と品質が決まります。ブロックが小さいほど詳細が保持されますが、圧縮率は低くなります。
| ブロックサイズ | ビット/ピクセル | 品質 | ベストユースケース |
|---|---|---|---|
| 4x4 | 8.00 | 最高 | 詳細なテクスチャ、法線マップ |
| 5x5 | 5.12 | 高い | 高品質なカラーテクスチャー |
| 6x6 | 3.56 | 中~高 | バランスの取れた品質/サイズ (推奨デフォルト) |
| 8x8 | 2.00 | 中くらい | 背景テクスチャ、UI要素 |
| 12x12 | 0.89 | より低い | 大きなテクスチャの最大圧縮 |
エンコーディング品質レベル
ASTC エンコーダは、エンコード時間と出力品質に影響を与える複数の品質プリセットをサポートしています。
速い
~1~2秒高品質で最速のエンコード。開発中の迅速な反復に適しています。
中くらい
~5~10秒品質とスピードのバランスが取れています。ほとんどのユースケースと運用ビルドに推奨されます。
徹底的に
~30~60秒より徹底的な検索による高品質の圧縮。ヒーロー アセットや最終ビルドに適しています。
網羅的
~2~5分非常に遅いエンコードで最高の品質。品質が最優先される重要な資産に使用します。
ASTCのメリット
ユニバーサルプラットフォームのサポート
すべての最新のモバイル GPU (OpenGL ES 3.2+、Vulkan) でサポートされており、複数のプラットフォーム固有の形式を単一のソリューションに置き換えます。
比類のない柔軟性
14 のブロック サイズと複数の品質レベルにより、他の圧縮形式よりも詳細な制御が可能になり、テクスチャ タイプごとに最適化されます。
優れた品質
高度な圧縮アルゴリズムにより、同等のビットレートで ETC、PVRTC、DXT よりも優れた視覚品質が得られます。
最新の機能
HDR サポート、3D テクスチャ、PBR マテリアルの最適なエンコーディングにより、ASTC は最新のレンダリング技術に将来も対応します。
ASTC と他の形式
ASTC と従来のテクスチャ圧縮形式との比較:
対ETC1/ETC2
ETC は、固定 4:1 圧縮 (ETC1) または 8:1 (ETC2 RGBA) を備えた Android のレガシー形式です。
ASTC アドバンテージ: ASTC は、同じビットレートでより高い品質を提供し、より多くの圧縮率 (0.89 ~ 8 bpp 対 4 ~ 8 bpp) をサポートします。
vs PVRTC
PVRTC は、ピクセルあたり 2 ビットまたは 4 ビットの圧縮を備えた iOS のレガシー形式です。
ASTC アドバンテージ: ASTC は、より優れた品質と柔軟性を提供し、PVRTC のブロック境界アーティファクトを回避します
vs DXT/BCn
DXT/BCn は、さまざまな形式でピクセルあたり 4 ~ 8 ビットのデスクトップ標準です。
ASTC アドバンテージ: ASTC は、モバイル向けに低いビットレート (0.89 bpp まで) を提供しながら、BCn 品質と同等またはそれを超えています。
ASTCフォーマットの使用方法
ASTC をプロジェクトで使用するのは、弊社のオンライン ツールを使用すると簡単です。
ASTCへのエンコード
- ソース画像 (PNG、JPG) をアップロード - あらゆるサイズに対応します
- 品質/サイズ要件に基づいてブロック サイズを選択します (ほとんどの場合、6×6 が推奨されます)。
- エンコード品質を選択します (開発では中程度、実稼働では徹底/徹底的)
- .astc ファイルをダウンロードしてプロジェクトに統合します
ASTC ファイルのデコード
- .astc ファイルをアップロードしてその内容を検査します
- 解凍されたテクスチャとブロック サイズおよびフォーマット情報を表示する
- 編集または品質検証のために PNG にエクスポート
ベストプラクティス
- 開始点として 6×6 ブロックを使用します (3.56 bpp) - ほとんどのテクスチャに対して優れた品質/サイズ バランスが提供されます
- ノーマル マップや UI テキストなどの詳細が重要なテクスチャには、より小さいブロック (4×4、5×5) を選択してください
- 遠くから見る背景、スカイボックス、またはテクスチャには、より大きなブロック (8×8、10×10、12×12) を使用します。
- さまざまな品質レベルをテストします - 多くの場合「中」で十分ですが、「徹底的」または「徹底的」はヒーロー アセットにのみ使用してください。
- メモリ使用量を最適化するために、同じアプリケーション内の異なるテクスチャ タイプに異なるブロック サイズを使用することを検討してください。
- ターゲットデバイス上で圧縮されたテクスチャを常にプレビュー - 品質の認識はコンテンツや表示条件によって異なります
結論
ASTC はテクスチャ圧縮テクノロジーの頂点であり、比類のない柔軟性、品質、プラットフォーム サポートを提供します。その適応性の性質により、開発者は各アセットの圧縮を微調整し、視覚的な忠実度とメモリ消費量のバランスを最適化することができます。
開発対象がモバイル、デスクトップ、コンソールのいずれのプラットフォームであっても、ASTC はローエンド デバイスからハイエンド グラフィックスまで拡張できる、将来性のあるソリューションを提供します。当社のオンライン ASTC ツールを使用すると、さまざまな設定を簡単に試して、プロジェクトのニーズに最適な構成を見つけることができます。
詳細な資料と参考資料
次の信頼できるリソースを使用して、ASTC について詳しく説明します。
- ASTC仕様(クロノス) - ASTC 形式の公式仕様と技術リファレンス
- ARM ASTC 評価コーデック - ARM のリファレンス エンコーダ実装とドキュメント
- 適応型スケーラブル テクスチャ圧縮 (Wikipedia) - ASTC テクノロジーと採用の包括的な概要
- ASTC: 究極のテクスチャ圧縮 - ASTC のベスト プラクティスに関する ARM 開発者ドキュメント
- Unity ASTC 圧縮ガイド - ゲーム エンジンで ASTC を使用するための実践的なガイド