iPhone 3Dモデル形式:.hファイル、.obj、またはその他


7

私はOpenGL-ESを使用してiPhoneゲームを書き始めており、3Dモデルの形式を決定する際に問題に遭遇しました。一部の開発者がモデルを好むことを読みました(現時点ではリンクがエスケープされています)。 Objective-C .hファイルでコンパイルされます。それでも、.objの方が移植性が高いため(つまり、iPhone以外のプラットフォームでの展開用)、. objを好む人もいます。

さまざまな3Dゲームエンジンが多くの(?)形式をサポートしているようですが、OpenGL-ES を実際に学びたいので、これらのエンジンは使用しません。ここで、パッケージ化されたエンジンを使用しないことで不利になりますか?

ありがとう!

回答:


3

学習したすべてのエンジンは、内部で何が起こっているかを見る限り、実際にOpenGL ESをよりよく教えてくれます。独自のエンジンをロールバックすることもできますが、何度も何度も書き換えることができます。既存のものを学習してから、最初から作成するかどうかを決定することをお勧めします。

とはいえ、個人的に.hは、モデルの保存は非常に粗雑で醜い方法だと思います。モデルが少数の場合にのみ機能します。リソース処理を必要とするゲームの場合については、考え始めないでください(エルゴには基本的な量以上のモデル/テクスチャがあります)。


1

いいえ、それはあなたが何を学びたいかによります。

全体としてゲームプログラミングを学びたいが、よりロジックを目指したい場合は、ゲームエンジンを使用します。

OpenGL-ESについて学習したい場合は、ゲームエンジンを使用しない方がはるかに理にかなっています。そうすることで、何が機能し、何が機能しないかを確認できます。ゲームエンジンでは、 'AddModel( "address");のようなことを行うでしょう。RenderAll(); 'または何でも。これはOpenGLを教えることの多くをしません。

モデル形式については、.objファイルとして保持するのが理にかなっていると思います。モデリングプログラムでモデルを編集でき、モデルをiPhoneだけでなく、普遍的にロードする方法を学びます。


1

モデルに.hファイルを使用することは、本当に速くて汚いものに対してのみ本当に役立ちます。モデルについて何かを変更するたびに、再構築が必要です。私はそれが重要な何かのために行われたのを見ることができました(たとえば、ロードが失敗した場合でもそこになければならない3Dのロード画像がある場合)が、それとは別に、私の好みにはあまりにも古すぎます(そして私はほとんどの部門で恐竜です) )。
私は環境に慣れながらキューブをハードコードしますが、モデルを読み込んでデータにインデックスを付けるのはそれよりもほんの少し難しいため、プライムレンダラーを起動して実行するとすぐに、モデルの読み込みに切り替えます。ハードコードされたモデルを参照しすぎないでください。
それらをロードすると、エンジンを再利用するための設定が大幅に改善されます。モデルをハードコード化すると、残りのコードはおそらく同じハードコード化された理念に従い、再利用できなくなるためです。


0

OBJモデルは、位置、法線、テクスチャ座標に個別のインデックスを使用するため、OpenGLには理想的な形式ではありません。OpenGLでOBJを使用すると、データをロードするときにデータを前処理して、新しい頂点とインデックスを作成するか、インデックス付けされていない配列を使用してレンダリングする必要があります。

同様に解析は簡単ですが、より効率的なフォーマットはIQMとそのテキストベースのコンパニオンフォーマットIQEです。IQMは、基本的な骨格アニメーションと頂点カラーもサポートしています。

http://lee.fov120.com/iqm/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.