テクスチャのサイズやメッシュの頂点数など、リソースのレギュレーションを決める際には容量計算を行う必要があります。
今回はその容量計算の方法に関する記事です。
テクスチャ
テクスチャの容量は次の手順で求められます。
- テクスチャはまず無圧縮状態の容量を求める(32bits/px)
- テクスチャフォーマットに応じた圧縮率を掛ける
- Mip mapをONにするテクスチャは1.333...を掛ける
- もしRead/Write EnabledをONにしているなら2を掛ける(メモリのみ)
ちなみにテクスチャフォーマットについては次の記事で説明しています。
メッシュ
メッシュの持つ情報は頂点情報がほとんどを占めるので以下の式で求められそうです。
- 頂点数×頂点バッファのサイズ
そして頂点バッファには次のような情報が格納されています。
- 座標
- 頂点色
- UV座標
- 法線
- 接線
- etc..
(雑ですが)1頂点について上記の項目それぞれに32bit(float)×4(次元)のデータが格納されているとして、
上記5項目分を計算すると32×4×5 = 640 (bit) = 80 (byte) になります。
メッシュの作りにもよりますが、1頂点あたり大体このくらいの容量を見ておけばよさそうです。
アニメーションとかサウンドとかその他のリソースについて
ここまででテクスチャとメッシュについてみてきましたが、
ゲームを構成するリソースにはアニメーションやサウンドなどそのほかのリソースも多数あります。
これらに関しては一概に計算では算出しづらいため、個々に見ていく必要があります。
ただ、これらのリソースは一般的にテクスチャやメッシュに比べれば総容量は少なくなるため、
プロジェクトごとに大体の容量が出せれば十分かと思います。