ちまちまと、android dev phone1 でOpenGLESのプログラムを書いています。
いまさら、固定小数のコードを書くことになろうとは思いませんでしたが、数年前にも携帯向けのOpenGLESで固定小数のコードを書いていました。(もちろん、浮動小数でも、どちらでも動かせるように。)もう5年以上前でしょうか。やっと一般の人でも携帯電話で3DCGが動かせる時代になりました。
もともと参考にしたアプリも速度評価用アプリだったので、だいたいの数値はわかっていましたが、自分で書いてみたアプリでもだいたい同じ値が出ました。
球をストリップで描画するコードを作り、分割数を調整して、100フレーム平均の速度を出力しました。まだ、ちょっと試しただけですが、
・頂点バッファの頂点数 = 20301 (201x101)
・200頂点 x 200ストリップ = 40000ポリゴン(頂点)
で描画して、およそ 30fps くらいでした。1.2M Polygon/秒 くらいです。
半分の20000ポリゴンにしても、55 fps 出てました。(何も描画しない状態で、最大60fpsです。)
もちろん、頂点座標(x,y,z)のみ、ライティングなし、テクスチャなしの単色塗りつぶしのみです。極小ポリゴンではなく、球が画面の半分くらいの面積を占めても、速度は落ちません。(追記:よく考えると、数万ポリゴンの球ということは、1ポリゴン単位では極小ポリゴンといったほうが正しいですね。)
参考元のアプリでの計測結果で見てみると、最大、1.33M Polygon/秒 くらいだと思われます。このアプリでは、テクスチャを張っても、1M 以上の速度を保っているようですが、ライティングさせると、3分の1 くらいに落ちるようです。
バッファオブジェクトを使っていることもあり、固定小数でも浮動少数でも、大きな速度差は見えません。あと、ストリップハードウェアのようで、ストリップをつかわないと速度は3分の1に落ちるようです。
まあ、G1はiPhone には負けているでしょうが、趣味で動かすには十分な速度ではないでしょうか。もうしばらく遊んでみます。
0 件のコメント:
コメントを投稿