3

私は美術館のアプリをプログラムしています。ピンチしてズームしたり、モデルの周りを移動したりするなど、ユーザーのタッチに反応する3Dモデルを表示したいと思います。私はたくさん検索しましたが、私が見つけたのは、このことに関して非常に複雑に見えるゲームエンジンだけです。モデルをインポートして(モデルの形式は関係ありません)、表示してタッチレスポンシブにする方法はありますか?コード(またはエンジン)がオープンソースの方が良い場合は、有料アプリよりも無料アプリの方がいいと思います。ありがとうございます。

更新:現在、cocos3Dを使用して3Dモデルをロードできますが、回答で述べたように、ロードできるモデルは非常に低使用です。それは美術館のためのアプリであり、私はもっと詳細なモデルでなければならないでしょう。アニメーション化された「helloworld」を表示するcocos3D標準テンプレートプロジェクトを使用しています。.podファイルを変更して必要なファイルをロードし、ユーザーのタッチ操作をサポートするためにいくつかの変更を追加し始めました。ロードする元のポリゴンの量を約80%削減しています(これはモデルのごく一部の外観です) )。元のモデルを約50%削減してモデルをロードしようとすると(これらのように見栄えがします )、アプリがクラッシュし、次のログクラッシュが発生します。

**キャッチされなかった例外'NSInternalInconsistencyException'が原因でアプリを終了します、理由:'OpenGL ES 1.1は頂点インデックスのGL_UNSIGNED_SHORTまたはGL_UNSIGNED_BYTEタイプのみをサポートします' *最初のスローコールスタック:(0x22cc012 0x1ca9e7e 0x22cbe78 0x173ff35 0x1b550f 0x 0x14d3c2 0x14bb22 0x14a452 0x14efcc 0x14d493 0x14d3c2 0x1643e3 0x162a41 0x10c197 0x10c11d 0x10c098 0x3d79c 0x3d76f 0x85282 0x16e9884 0x16e9737 0x8b56f 0xc4192d 0x1cbd6b0 0x505fc0 0x4fa33c 0x4fa150 0x4780bc 0x479227 0x51bb50 0xbef9ff 0xbf04e1 0xc01315 0xc0224b 0xbf3cf8 0x2fd4df9 0x2fd4ad0 0x2241bf5 0x2241962 0x2272bb6 0x2271f44 0x2271e1b 0xbef7da 0xbf165c 0x1ca506 0x2a55) libc++abi.dylib: terminate例外のスローと呼ばれる(lldb)

すべてのポリゴンをロードできず、クラッシュします。そのための解決策はありますか?または、モデルをロードする別の方法を探してスターを付ける必要がありますか?より多くの情報が必要な場合は、質問してください。ありがとう。

4

1 に答える 1

2

Cocos3Dを使用して、Earthモデルをインポートし、ユーザーのジェスチャーに従って回転させました。あなたはそれを見てみることができます、それはするのが複雑なことではありません。

モデルのロードに関するサンプルコードについては、この投稿をご覧ください。ローテーションを処理するために、私はこの投稿が非常に役立つと思いました。

于 2012-10-25T18:28:10.170 に答える