AMD、DGFアセットを22%圧縮するDGFSを発表
AMDがジオメトリ圧縮フォーマットDGFをさらに圧縮する新技術DGF SuperCompression(DGFS)を公開した。最大22%のディスク容量削減に加え、RDNA 5世代の専用ハードウェアを待たずとも現行GPUで展開できる仕組みを備える。
RDNA 5を待つ間の橋渡しとしてのDGFS
AMDが2026年5月7日、ジオメトリ圧縮技術Dense Geometry Format(DGF)向けの新しいソフトウェア圧縮層、DGF SuperCompression(DGFS)を公開した。AMD DGF SDK v1.2の目玉として加わったこの技術は、ディスク上のDGFアセットを最大22%まで圧縮しつつ、DGF非対応のハードウェアでも展開できる仕組みを備えている。
開発者向けの地味な発表に見えるが、意味するところは小さくない。DGFはAMDがレイトレーシング時代のジオメトリ問題を解くために提唱したフォーマットで、本格的なハードウェア対応はRDNA 5世代以降になる。それまでの数年間、開発者は「未来のGPUのためにDGFを採用するか、現行GPUのために従来形式を維持するか」の二者択一を迫られていた。DGFSはこの二者択一を、一つの共通アセットで解消する答えとして用意された。
DGFが抱えていた「ハードウェア最適化の代償」
そもそもDGFは、何のための技術か。AMDのJosh Barczak(ジョシュ・バルチャック)は、テクスチャ圧縮におけるDXTやETC、ASTCに相当するものをジオメトリ向けに作った、と説明する。つまり、ドライバーの内側で完結していた圧縮処理を、フォーマットとしてアプリケーション側に開放する試みだ。
レイトレーシング向けの加速構造(BLAS、Bottom Level Acceleration Structure)は現状、入力されたメッシュをドライバーが各GPUの内部形式へ変換する「ブラックボックス」として動いている。柔軟性はあるが、最悪ケース想定でメモリを確保しなければならず、入力順を再現するための情報を抱え込み、変換処理がシリコン面積と消費電力を押し上げる。この変換工程がボトルネックになっていた。
DGFは128バイトのブロック単位で三角形を詰め込む。1回のメモリ転送で1つの三角形に必要な情報すべてに到達できるため、ハードウェアレイトレースに極めて都合がよい。ただしこの「ハードウェア最適化」には代償があった。ブロックをまたいで頂点が重複し、ブロックが満杯でない時はパディングビットが入る。要するに、ストレージとして使うには冗長な箇所が残る。
DGFは何よりもまず効率的なハードウェア形式として設計された。1回の128B境界のメモリ読み出しで特定の三角形に必要な全情報にアクセスできるという特性は、ハードウェアレイトレース効率には必須だが、ストレージ形式としての魅力を削ぐ結果になった。
DGFSはこの冗長性をソフトウェア層で削り直す。
圧縮の仕組み:重複頂点の集約とパレット化
DGFSの圧縮アプローチは、ブロック間に散らばっていた重複情報の統合に集中している。
クラスター(三角形の集まり、メッシュレットとも呼ばれる)を最大256個の固有頂点と三角形に分解し、ブロックの境界で重複していた頂点を一度だけ保存する。さらに頂点位置をデルタ値に変換し、ジグザグ符号化してバイト単位で並び替える。これは汎用圧縮アルゴリズムが効きやすい形に整える前処理だ。
ジグザグ符号化、デルタ符号化、バイトインターリーブといった追加のデータ変換を、汎用圧縮がDGFSストリームに重ねがけされた時の圧縮率が向上するように、適切な箇所で施している。
ジオメトリIDの扱いも変わる。DGFブロックには「GeomID Palette」という構造があり、ブロック内の三角形は小さなセレクタでパレットを参照する。DGFSはこのパレット自体をクラスター単位で重複排除し、デルタ符号化と可変バイト長で格納する。
トポロジー、つまり三角形の接続情報については「DGFが既に十分コンパクト」だとして、追加圧縮は行わずブロックから直接埋め込んでいる。やりすぎない、という判断だ。
復号は二通りある。元のDGFブロック配列に戻すか、従来型の頂点バッファとインデックスバッファのメッシュレットに展開するか。これがDGFSの真価につながる。
一つのアセットで新旧ハードウェアを狙える
DGFS採用の核心は、圧縮率そのものより「同一フォーマットで二つの宛先を狙える」点にある。
将来DGFをハードウェア対応するRDNA 5世代以降のGPUでは、DGFSをDGFブロックに復号して直接使う。DGF非対応のRDNA 4以前のGPUや他社GPUでは、メッシュレット形式に復号して従来のレンダリングパイプラインに流す。アプリは実質的に二つのジオメトリ表現を一つの容量で持てることになる。
この設計が効くのは、新世代GPUへの移行期だ。RDNA 5世代の登場は2027年中とみられ、次世代コンソールにも同系統の技術が載る見込みだという。それまでの数年間、開発者は両世代を一つのバイナリで配布できる。
DGFSは、DGFをさらに小さくし、非DGFデバイスへのレンダリングを単純化する技術だ。
NVIDIAが先行して投入したRTX Mega Geometryは、Blackwell世代のRT Coreに専用エンジンを載せて加速する独自路線をとった。DGFはSamsungとのVulkan拡張共同開発に象徴されるように、オープン標準として複数ベンダーへ広げる方向を選んでいる。ハードウェアとオープン規格、どちらが業界の標準になるかは、今後の数年で決まる。
圧縮率の実数値
公開されたデータでは、生データの段階でDGFよりDGFSが約30%小さい。Crab、Dragon、Statuette、Buddha、Bikeの5モデルで検証しており、Dragonでは31.09%、Buddhaで20.03%といった具合に、モデルによってばらつきはあるものの軒並み20%超の削減が出ている。
| Crab | Dragon | Statuette | Buddha | Bike | |
|---|---|---|---|---|---|
| 三角形数 (百万) |
2.14 | 7.22 | 10.00 | 1.09 | 1.68 |
| DGF (MB) |
10.22 | 29.25 | 40.99 | 4.94 | 6.96 |
| DGFS (MB) |
8.48 | 20.15 | 29.31 | 3.95 | 5.54 |
| 削減率 | 17.06% | 31.09% | 28.48% | 20.03% | 20.47% |
ゲームではDGFSデータがメモリ上に展開される必要はなく、ディスク上のサイズが本命の指標になる。GDeflateで両方を圧縮した条件では、DGFS優位は約20%に縮まる。汎用圧縮が冗長性をある程度吸収するためで、それでもDGFS側のデータ前処理(ジグザグ符号化やバイトインターリーブ)が圧縮アルゴリズムにとって都合のよい形を作っている、という見立てになる。
復号速度も実用域だ。1000万三角形の「Statuette」モデルで、メッシュレットへの復号が0.15秒、DGFブロックへの復号が0.22秒。これはAMD Ryzen 9 7950Xの単一CPUコアでの計測値で、AMDは「ストリーミング中のCPU復号で十分速い」と評価する。
CPUベースの復号がストリーミング中に十分高速であることを示している。とはいえGPUベースのデコーダーを妨げるものは何もなく、ウェーブベクトル化版のDGFSデコーダーは実装可能で、良好に動作するはずだ。
|
メッシュレット復号
DGFブロック復号
|
DGFが解こうとしている本当の問題
DGFと、その上に載るDGFSが応えようとしているのは、ゲーム業界が長らく抱えてきた「ジオメトリの密度をどこまで上げられるか」という根本問題だ。
3D造形、フォトグラメトリ、生成AIによるアセット生成で、モデルの三角形数は爆発的に増えた。一方、レイトレーシング用の加速構造はその密度に追いついていない。プロキシメッシュ(粗い代替モデル)で誤魔化す手法では、自己遮蔽の不正確さや低解像度の影や反射といったアーティファクトが出る。
AMDとNVIDIAは、この問題に対して別々のアプローチで答えを出そうとしている。Mega Geometryが「専用ハードウェアで殴る」発想なら、DGF+DGFSは「フォーマットを開いて多ベンダーで広げる」発想だ。どちらの解法が長く残るかは、ゲームエンジンとコンソールの選択次第になる。
DGFS自体は派手な技術ではない。しかし、未来のフォーマットを今のハードウェアで使えるようにする「橋」として、開発者がDGFを採用するハードルを一段下げる役割を担う。
AMD DGF SDKはオープンソースで配布されており、GitHubのDGF-SDKリポジトリから取得できる。次世代ハードウェアの登場までには、まだ時間がある。AMDが用意したのは、その空白期間を埋める道具だ。
参照元