« アルファムービーをやや強引に入れるアイデア | メイン | パフォーマンスに関すること »

2008年02月28日

吉里吉里 DirectX拡張:: VRAM 容量を考える

    

炎エフェクトを実装しつつ、これぐらいなら何とかなるけど、これ以上になると CPU 処理は厳しいなぁという印象で、Direct3D ベースで描画するのを本気で考え中。
もう少し複雑なエフェクトを入れたいのと、拡大縮小を綺麗にしたいというのもある。

それで、ビデオメモリの最低容量はどれぐらいになるか少し考えてみた。
画面は、最低でも 1024 x 768 x 32bit color はあるだろうから、これで 3MB はとられている。
で、ゲーム画面は 800 x 600 は欲しい。
という事で、バックバッファは 800 x 600 x 32bit color = 1875 KB 。
バックバッファとフロントバッファのフリップがあると、この倍になってしまうけど、そこはコピーなどで我慢するとして1枚分と考える。
背景画像も 800 x 600 とするけど、二の累乗制限を考えると、1024 x 1024 x 32bit = 4MB か。
文字用のバッファには、800 x 600 いっぱい出る可能性があるとして、1024 x 512 は必要。
ただ、文字は 3階調 + 抜き でも十分だろうから、 DXT1 として 4bit color 相当。
という事で、1024 x 512 x 4bit(DXT1) = 256KB 。

単純に、背景出しただけで、9MBぐらい使ってしまう。
背景の1枚絵を分割すれば、もう少し削れるか。
それでも、1024 x 512 + 1024 x 128 = 2.5MB か。
つまり、7.5MB 。
フルスクリーンで、解像度落とせばもう少し削れるかな。
画面の 3MB が 1875 KB になるとして、6.5 MB ぐらい。
ただ、コマンドバッファや頂点データ用にもいくらか VRAM は削られているはず。
こういうことを考えると、VRAM 8 MB で作るのは結構厳しい。
背景以外の絵を 1MB ぐらいに入れないといけない。
と言う事は、サイズは 512 x 512 まで。
他に色数を落とすなどすれば、もっと減るけど……
24 bit color で フロント、バック、背景 で 800 x 600 + 800 x 600 + 800 x 600 = 約 4 MB
とすれば、32 bit color で 512 x 512 が 3枚ぐらい使えるのか。
ああ、Z バッファ考慮していないか。まあ、自分でソートしてもいいんだけど。

VRAM 16 MB 以上とかにしないと辛そうというか、面倒だな。
8MB だと結構気を遣わないと足りなくなりそう。

自分が持っているこの辺りが下限かなぁというノートPCを見てみると VRAM は 16MB のようだ。
CPU は、Pen III 866 MHz 。2002年製?
とりあえず VRAM 16 MB 以上と考えておくかな。



投稿者 Takenori : 2008年02月28日 01:59




comments powered by Disqus
Total : Today : Yesterday : なかのひと