頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


描画用と物理演算用の3Dデータを別に作成する

3DのオブジェクトをBlenderで作成してそのデータを描画のためにOpenGLへ渡し、物理エンジンBulletへも同じデータを渡していたのよ。
Bulletでは
btConvexHullShape
でメッシュ形状を作成してたんだ。これだとOpenGL用のデータをそのまま使えるので楽チンじゃない!って思っていたんだよね。
ところが、実際にアプリを動かすと頂点数が多いオブジェクトが画面にいくつか出てくると重くなるんだわ。iPhone 6ならいいけどiPod touch (5th G)だと明らかに遅くなっちゃう。

そんなわけでBulletへ渡すデータを再度作成しなおしてみたんだ。そもそも”convex”(凸状の)って言うくらいなので凹んでるところは意味がないし、アプリの内容からするとそこまで厳密に描画データと一致している必要もないので。
例えばこの車のデータだと修正前の頂点数は822。これを修正して252に。

頂点数削減前後の3Dオブジェクト

これで実行してみたらすごく軽くなったわ。

<< iPad用スタンドを買ってみた  TopPage  2015年の運勢 >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/952-a37838e6




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad