実際に土ブロックを描画してみて、メモリ使用量がちょっと増えたので再計算します。
主に、頂点バッファとインデックスバッファを考慮します。
19日目の日記の通り、頂点バッファは、1ブロックあたり以下のメモリ量となります
1頂点=4バイト x 3軸(位置) + 4バイト(明るさ) + 4バイト x 2軸(テクスチャ) = 24バイト
1ブロック=14頂点=24バイト*14=336バイト
インデックスバッファは、int型4バイトを使用し、GL_TRIANGLE_STRIPで14個+区切り1個を使用することになっていました。
4バイト * (14 + 1) = 60バイト
よって、1ブロックあたり、合計で396バイトとなります。
100 * 100 * 100 で、一度に百万個のブロックを描画すると、
396MBとなります。ちょっと多いな・・・
四方を囲まれているなど、描画不要なブロックがあるはずなので、工夫して実際にはもっと減らそうと思います。
ちなみに、GL_TRIANGLE_STRIPをGL_TRIANGLESにすると、インデックスバッファは36個になるので、
4バイト * 36 = 144バイト
となり、合計 480バイト、百万個のブロックでは480MBになります。
★☆★ 次回の作業 ★☆★
世界を土ブロックで一杯にする。
遂にパクリアプリが完成しました!
マ◯クラとク◯クラと、ちょっとシム◯ティを混ぜた、いいとこ取りアプリです。
3日間くらい徹夜したら完成してしまいました。気合いは大事ですね。
有名なアプリをパクることで、ここまで面白い作品になるとは思いませんでした。おかげ様で販売開始直後から現在まで売上/DL数共にAppStoreランキング1位を維持しています。ありがとうございました。
★☆★ 次回の作業 ★☆★
次回作の構想を練る。
今日は、サーフェース(頂点バッファやインデックスバッファ)を管理するC++クラスを作っていました
レンダリングエンジンやアプリケーションエンジンのクラス(これらもC++)を作成済みですが、この2つのクラス間とのインターフェースをどうするかなどを考えていました。
★☆★ 次回の作業 ★☆★
土ブロックで世界をいっぱいにする。
頂点バッファやインデックバッファを作る箇所のソースコードを改良していました。
かなり汎用性がなくグダグダなコードだったため、ちゃんと別クラスにしてうまく使いまわせるように調整していました。
★☆★ 次回の作業 ★☆★
土ブロックで世界をいっぱいにする。
『土ブロック』を1つ完成させるのに1か月かかりました。
これではアプリの完成まで100年くらいかかりそうです。
そこで、今日は作業をもっと効率的に進める対策案を考えました。
1.会社の勤務時間が作業が進まない要因である
2.1を解決するため会社を辞める
3.2を行うと収入源がなくなる
4.3を解決するため銀行強盗する
5.4はリスクがありすぎるためアプリを売る
6.アプリを作る
今やっていることに戻りました・・・
★☆★ 次回の作業 ★☆★
『土ブロック』を1つ完成させるのに1か月かかったことを反省する。
不覚にも帰って早々8時に寝てしまい、起きたら7時55分でした。
・・・ん?
5分戻ってるって?
約12時間爆睡したと言う事です・・・
★☆★ 次回の作業 ★☆★
『土ブロック』を1つ完成させるのに1か月かかったことを反省する。
『土ブロック』が完成しました。この立方体を完成させるのに1か月かかりました。

テクスチャはこんな感じです。


インデックスバッファ数15(区切り込み)、頂点バッファ数14に抑えて立方体が完成しました。
アプリの使用するメモリ容量を抑えるために、悩みすぎて頭のメモリを使い果たしました。
★☆★ 次回の作業 ★☆★
『土ブロック』を1つ完成させるのに1か月かかったことを反省する。
今日もテクスチャを貼る前提で頂点バッファとインデックスバッファを最小に抑える方法を検討していました。
結果、インデックスバッファは当初の予定通り15(区切り込み)ですが、頂点バッファは14になりそうです。立方体を2次元に展開すると、頂点数14になりますよね・・・
各面にテクスチャ貼る場合はどうしても頂点数8では済みませんでした。
★☆★ 次回の作業 ★☆★
最初の立方体『土ブロック』を完成させる。
三連休終わっちゃった・・・
三日前に戻りたいです。
立方体の描画ですが、GL_TRIANGLE_STRIPの場合、頂点バッファオブジェクトやインデックスバッファの数は減らせますが、立方体へのテクスチャがうまく貼れない気がしてきました。
今日は上手くテクスチャ貼ろうと色々頑張りましたがダメでした。
★☆★ 次回の作業 ★☆★
なるべくメモリ量を減らした上で立方体にテクスチャを上手く貼れないか考える。
バリバリ変換してました!
そして遂に必要最低限を除いて、iOSに依存しないコードが完成しました。
これでNintendo Switchにもアプリ移植できます。たぶん。
★☆★ 次回の作業 ★☆★
なにしよ。
大手には作れないアプリを(気持ちだけは(๑•̀ㅂ•́)و✧)