現在も十分現役な3GS、について、こんなもんですよ? こんな感じでした? というまとめ
・アプリのサイズが20MBを超えると、3G回線からダウンロードできない
(iPhone全てに共通)
→高圧縮画像を用いるしかない
→伸長処理はCPU(CGImageだったか?)で行う
・glTexImage2D函数を用いた、1MB のデータ量の転送時間は、10msを余裕で超え、冷や汗
→転送は、少ない回数で
・VRAMは48MBらしい(フロントバッファ、バックバッファ込み)
→規模次第だが、隙をみて不要な画像を削除し、必要なものを読み込む処理が必要
Now Loading画面がiPhoneに多いことなんとなく納得できます
・CPUでの行列演算(4x4)15000回程度で60fpsを割り込む数値(16,6ms割れ)
→オーサリングをきちんと行い、
データを並列処理可能にできるのであれば、
行列演算は頂点シェーダへ移行すべきでしょう
iPhone4はこんなかんじ。
・30fpsで表示可能なポリゴン数は3GSと大きな差は無かった
→いろいろ条件があるので、詳細は控えますが、
所謂、よくある、頂点構造を用いました
→CPUはiPhone4が速い
→iPhone4のVRAMは256(フロントバッファ、バックバッファ込み)
→iPhone4で解像度が大きくなったことを考慮すれば、順当な結果です?
感想
もう少しいいハードだと思っていたので、肩透かしを喰らいました
同じ経験をした人、多いのではないでしょうか?
ただ、良い操作性と良い見た目?が実現できているのは、さすがapple!という感じです??
まとめ
今回気づいた、この手のスマートフォンでのゲーム開発で気にしなければならない点は、
以下の3つ
・画像の転送はNow Loading画面的なものを表示中に、一気に行う。
メインメモリ→VRAM転送(glTexImage)は重い
・画像のストレージからの読み込み、伸長も重いので、
Now Loading画面的なものを表示中に、一気に処理をする
・3Dモデルの表示に関わる演算で、プログラマブルパイプラインで吸収できるものは、
吸収したほうがCPUに空きができる。
(ただし、オーサリングと戦う覚悟を持つ)
これに気をつければ、そこそこなポリゴンも出るし、
それなりのクオリティが実現できるはずです。
スペックの比較、詳細については、
いろいろなサイトで紹介されていますので、ご確認くださいませ。
・アプリのサイズが20MBを超えると、3G回線からダウンロードできない
(iPhone全てに共通)
→高圧縮画像を用いるしかない
→伸長処理はCPU(CGImageだったか?)で行う
・glTexImage2D函数を用いた、1MB のデータ量の転送時間は、10msを余裕で超え、冷や汗
→転送は、少ない回数で
・VRAMは48MBらしい(フロントバッファ、バックバッファ込み)
→規模次第だが、隙をみて不要な画像を削除し、必要なものを読み込む処理が必要
Now Loading画面がiPhoneに多いことなんとなく納得できます
・CPUでの行列演算(4x4)15000回程度で60fpsを割り込む数値(16,6ms割れ)
→オーサリングをきちんと行い、
データを並列処理可能にできるのであれば、
行列演算は頂点シェーダへ移行すべきでしょう
iPhone4はこんなかんじ。
・30fpsで表示可能なポリゴン数は3GSと大きな差は無かった
→いろいろ条件があるので、詳細は控えますが、
所謂、よくある、頂点構造を用いました
→CPUはiPhone4が速い
→iPhone4のVRAMは256(フロントバッファ、バックバッファ込み)
→iPhone4で解像度が大きくなったことを考慮すれば、順当な結果です?
感想
もう少しいいハードだと思っていたので、肩透かしを喰らいました
同じ経験をした人、多いのではないでしょうか?
ただ、良い操作性と良い見た目?が実現できているのは、さすがapple!という感じです??
まとめ
今回気づいた、この手のスマートフォンでのゲーム開発で気にしなければならない点は、
以下の3つ
・画像の転送はNow Loading画面的なものを表示中に、一気に行う。
メインメモリ→VRAM転送(glTexImage)は重い
・画像のストレージからの読み込み、伸長も重いので、
Now Loading画面的なものを表示中に、一気に処理をする
・3Dモデルの表示に関わる演算で、プログラマブルパイプラインで吸収できるものは、
吸収したほうがCPUに空きができる。
(ただし、オーサリングと戦う覚悟を持つ)
これに気をつければ、そこそこなポリゴンも出るし、
それなりのクオリティが実現できるはずです。
スペックの比較、詳細については、
いろいろなサイトで紹介されていますので、ご確認くださいませ。