この記事の3行まとめ
インフィニットループは、『【D3D12】頂点バッファを品質そのまま1/3にサイズ削減』と題した記事を、自社の技術ブログにて公開しました。
ブログが投稿されました!
【D3D12】頂点バッファを品質そのまま1/3にサイズ削減https://t.co/hm9LRlt8dY
— 株式会社インフィニットループ (@iloop_sapporo) May 10, 2024
ブログが投稿されました!
【D3D12】頂点バッファを品質そのまま1/3にサイズ削減https://t.co/hm9LRlt8dY
— 株式会社インフィニットループ (@iloop_sapporo) May 10, 2024
3DCGにおけるメッシュアセットは、各頂点が座標や法線などの情報を持っています。3Dモデルの頂点数が多いと、データの肥大化やVRAMの圧迫、ランタイムのパフォーマンス低下などを招くおそれがあります。
同記事ではそれらのリスクを防ぐため、Direct3D 12(D3D12)環境における、頂点データを格納するメモリバッファ(頂点バッファ)のサイズ削減について解説されています。
上記フォーマットから法線やタンジェントの符号化などを行うことで、合計サイズを48バイトの半分に削減できます。
さらに、グラフィックスエンジニア Sebastian Aaltonen氏のX上のポストを参考に、座標の数値を2バイト化し、パディングの都合上現れる余剰領域に法線データを詰め込みます。
これらの改良により、最終的には合計サイズが48バイトから16バイトと3分の1の大きさにできます。
また、頂点数が約59万のドーナツ型モデルを実際に描画し、法線やタンジェント、バイタンジェント表示で比較しても、目視では差がほぼなかったことが紹介されています。
記事の最後では、頂点レイアウトはケースバイケースであり、巨大でハイポリゴンなメッシュでは削減により座標の精度が足りないといった問題が起こる可能性などを挙げ、プロジェクトで利用される可能性のある頂点レイアウトが任意に増減することを前提とした対応についても言及しています。
詳細は、同社技術ブログをご確認ください。
インフィニットループ技術ブログ『【D3D12】頂点バッファを品質そのまま1/3にサイズ削減』