テクスチャのメモリ配置はなぜこんなに複雑なのか
Anatomy of a Texture

PCゲームエンジンをコンシューマ機へ移植する中で、テクスチャのメモリ配置変換に取り組んだ筆者による解説。BC7ブロック圧縮、texel ordering、mips、texture tilesといった要素が絡み合い、単純な色データの並びとは程遠い構造になっている。プラットフォームごとに異なるスウィズルやブロック配置を扱うデバッグ手法も紹介する。
ブロック圧縮はテクスチャのメモリサイズを縮小し、データ転送時間を短縮する。
- taylor-tg
これは本当に楽しめたよ、情熱的で手書き感のある文章を読むのは新鮮だ。プラットフォーム間でテクスチャを扱うという、一見何でもないようなことの中に、これほどの複雑さが潜んでいるとは思いもしなかった。
505が、開発者たちのゲームをより多くの人に届ける手助けをしている仕事の一端を垣間見られたのもかなりクールだった。505があれほど多くの有名タイトルのpublisher[0]だったなんて、まったく知らなかったよ。
- essai57
とても良い記事でした、書いてくれてありがとう! 最近、あるゲームのmoddingに関連してこのあたりを少し触っていて、そこで君が説明しているmips、tiles、blocks、texelsの階層構造に出会ったので、すごく共感できました。素晴らしい記事です!
- augment_me
なぜテクスチャをNTCやVAE-VQ、あるいは何らかのニューラルコーデックでuint8の汎用埋め込み空間に圧縮してから、それを展開してターゲットハードウェアの標準に合わせてmipmapsなどを作る、というやり方にしないんだ?