web-dev-qa-db-ja.com

iPhoneで3Dモデルを表示したい:始め方

単一の3Dモデル(できればテクスチャ付き)をiPhoneで表示して回転させたい。ズームインやズームアウトする必要も、背景などを用意する必要もありません。

私は次のものを持っています:

  • iPhone
  • macBook
  • iPhone SDK
  • ブレンダー

私の知識ベース:

  • さまざまな3Dプログラムで3Dモデルを作成できます(かつてコースを受講した3D Studio Maxに最も慣れていますが、他のものを使用しました)
  • 何年も前の手続き型プログラミングの一般的な知識(QuickBasic-私は古い!)
  • 単純なJavaおよびC#チュートリアル(Head Start C#の本と私の妻のイントロOOP Javaを使用したコース)
  • 私は3Dテクスチャモデルを表示し、C#のチュートリアルを使用してスピンしました(ネットをコピーして貼り付けたのではなく、基本的にどのように機能するかを理解しています)およびXNAゲーム開発ライブラリをVisual Studioを使用してウィンドウズ。

私は知らないもの:

  • Objective Cの多く
  • IPhoneが明らかに使用しているOpenGLまたはOpenGL ESに関するすべて
  • XCodeについてのすべて

私の主な問題は、どこから始めればいいのかわからないことです!私が見つけたiPhoneの本はすべて、OpenGLアプリではなく、GUIアプリケーションの作成に関するもののようです。 OpenGLの本を見つけましたが、iPhoneの開発にどれだけ当てはまるかわかりません。そして、Objective Cの構文は、奇妙なネストされたメソッドの命名、意味をなさない "id"のようなもの、および手動のメモリ管理をしなければならないという恐ろしい考えで、やや混乱します。

始めるのに最適な場所はどこですか?この種のチュートリアルは見つかりませんでしたが、私のGoogle-Fuは弱いかもしれません。それとも、Objective Cの学習から始めるべきでしょうか?私はアーロン・ヒルグラスのような本を知っていますが、私はそれらが時代遅れであり、サンプルコードの多くがiPhone SDKで動作しないことを読みました、そしてそれはそうではないModel-View-Controllerパラダイムに向けられているようです3Dアプリに適しているようです。

基本的に私は私の最初のステップがどうあるべきかについて混乱しています。

52
JeremyReimer

おそらく、obj-cやxcodeなどの基礎を得るために、よりシンプルなiPhoneアプリ/チュートリアルから始めるべきです。

そのためには、実用的なプログラマーのiphoneブックをお勧めします。この本には、始めるのに十分な情報があります(xcode、obj-c、iphone、またはMacの知識がなく、主にこれを使用して作業用アプリにかなり早く到達しました)。ただし、C/C++およびJavaのかなり良いバックグラウンドから来たことを付け加えます。

特定のプロジェクトについては、おそらく this answerを参照してください。これは、オープンソースの3Dアプリを参照し、そこからヒントを得ることができます。

8
frankodwyer

繰り返しになりますが、自分の作品をプラグインする場合、iPhoneでOpenGL ESアプリケーションを開発して学んだことについて 投稿を書いた があります。そのアプリケーション Molecules (frankodwyerによって参照)はオープンソースであり、開発中に遭遇した他のトリッキーな問題のいくつかについて writeup があります。このアプリケーションは3Dモデルを生成し、指で回転およびスケーリングできるため、ニーズに近い音がします。コードをダウンロードしてコンパイルし、数分でデスクトップで実行できます。 iPhone Developer Programに参加すると、デバイスにインストールできます。

オブジェクトの読み込みに関しては、 Bill DudneyiPhone用のWavefront OBJローダー に取り組んでいます。フォーマット。私はまだiPhoneで多くのテクスチャ処理を行っていませんが、彼の例では現在動作しているようです。

全体として、私は例による学習と、いくつかの小さなターゲットアプリケーション(決してリリースしないかもしれない)の開発に飛び込むことで学習できることがわかりました。上記の例を調整して、何が起こるかを確認してください。これらの例のObjective-Cコードを読んで、彼らが何をしているのかを感じ始めることができるはずです。

Hillegassの本(第3版が出版されたばかりで最新のもの)はMacに焦点を当てていますが、彼が教えるCocoaの基礎はまだiPhoneに関連しています。 MVCデザインパターンは、iPhoneでもMacと同じように役立ちます。実際、Molecules内のいくつかの場所でそのパターンから逸脱しました。アプリケーションのこれらのセクションが混乱したため、その決定を後悔しています。本は読みやすく、あなたの時間の価値が十分にあります。

39
Brad Larson

これは古代の糸であり、私はひどく遅れています。それでも、ここに私の2ペンスを投稿するつもりです。

スニークプレビュー

獣に入る前に、これが私のセットアップです。

私が使う

  1. Blender 3Dモデルを作成します。 (Mayaまたは3D Maxを使用できます。Blenderのモデルをエクスポートする方法を説明します。3DMaxおよびMayaでも同じです)。
  2. Cocos3D ゲームエンジン。
  3. PVRGeoPODブレンダー拡張 Imagination Technologyから、ブレンダーモデルをCocos3Dが理解できる形式に変換します。リンクがインストーラファイルをダウンロードし、そのファイルがSDK全体をダウンロードすることがわかります。 Blender拡張機能を単独でダウンロードする簡単な方法はありません。

したがって、 Cocos3D を使用するつもりがない場合は、この回答をスキップしてお金のために走ることができます。

初期設定

  1. Install blender

    詳細を説明することであなたを困らせるつもりはありません。

  2. ダウンロード Cocos3D.

    これを入力すると、現在のバージョンは0.7.2です。

  3. ダウンロード Cocos2D.

    Cocos3Dは、人気のある2Dゲームフレームワークである人気のCocos2Dの上に記述されています。ここで注意すべき重要な点は、Cocos2D 2.xバージョンがすでに存在し、安定していることです。ただし、Cocos3DはCocos2d 1.xバージョンでのみ動作します。

    ダウンロードしたソースを解凍すると、README=ファイルが内部にあり、具体的には、

    cocos3d 0.7.2 IS cocos2d 2.x との互換性がないことに注意してください。必ずcocos2d 1.xをダウンロードしてください。 cocos3d 。(エンファシス鉱山)で使用

    README=ファイルはインストール手順を明確に示しています。インストール後、XCodeでNice Cocos3Dプロジェクトテンプレートを取得します。

  4. PVRGeoPOD拡張機能をBlenderに追加します。

    これにはいくつかの説明が必要です。 PVRGeoPODインストーラーを実行すると、画面にインストールする必要のある機能が表示されます。選択しただけ

    • PVRGeoPOD -.blendファイル内のモデルをCocos3Dが理解できる.POD形式に変換するには

    • PVRShaman -このツールを使用して.POD内のモデルを表示できます。

    enter image description here

    リスト内の他のツールをインストールできますが、私はこれら2つだけを使用しました。

    インストールプロセス(時間がかかる場合があります)の後、PVRGeoPOD AddOnをブレンダーに追加する必要があります。 PVRGeoPOD.UserManual.PDFファイルは、インストールしたばかりのフォルダーにあり、以下の情報も含まれています。

    • Blenderアドオンフォルダーを見つけ、blender python consoleを開いてコマンドbpy.utils.script_paths("addons")を実行し、このフォルダーへのパスを確認できます。
    • インストールパスで、PVRGeoPODフォルダー内のBlenderアドオンファイルを見つけます。 libPVRGeoPOD.dylibおよびPVRGeoPODScript.pyおよび2つのQTfilesのようなファイルが表示されたら、これが場所なので停止します。これらの4つのファイルをコピーし、ブレンダーアドオンフォルダーに貼り付けます。
    • ブレンダーを開き、 Preferences を選択し、 Add-On タブを見つけ、PVRGeoPOD拡張機能を検索して見つけ、右側のチェックボックスをクリックして有効にします。 。
    • 必要に応じてBlenderを終了して再起動し、file-> exportを選択し、PVRGeoPOD(.pod/.h/.cpp)というオプションがあるかどうかを確認します。ある場合は成功です。

    Blenderでモデルを作成し、これらのモデルをCocos3Dが理解できる.PODファイルとしてエクスポートできるようになりました。

    Maya、3D Maxなどの他の3D設計ツールを使用している場合は、このPVRGeoPOD拡張機能も追加できます。 PDF上記を参照してください。

プロジェクトで使用する

  1. 手順を追って説明します。

    モデルをブレンダー(.blend)で作成し、.PODファイルとしてエクスポートします。エクスポートするとき、私は通常次のオプションを選択します

    • プリミティブタイプ-インデックス付き三角形リスト
    • 材料タブ-材料のエクスポートオプションのチェック

    残りはデフォルトのままにしました。

  2. XCodeで新しいプロジェクトを作成し、Cocos3Dテンプレートを選択します。
  3. .PODファイルをプロジェクトに追加します。テクスチャモデルの場合は、そのテクスチャもプロジェクトに追加します。
  4. テンプレートプロジェクト自体にHelloWorld.PODファイルが含まれている場合、その行を.PODファイルに置き換えて、モデルを表示できます。

    [self addContentFromPODFile: @"YourPODFileName.pod"];
    

これで、iOSデバイスに最初の3Dモデルが表示されました。

8
Krishnabhadra

恥知らずのプラグ

IPhone用の小さな AC3D レンダラーを作成しました。 リンク>>

気軽に試してみてください。iPhoneシミュレータのデモライブラリが利用可能です。 iPhoneでのOpenGLESのパフォーマンスは、シミュレーターのパフォーマンスとは異なることに注意してください。

最適化ステージを使用して、トライストリップを作成し、最終的な頂点配列を作成して、iPhoneで実行できるようにします。

クイックスタート の使用方法を見る

6
epatel

この投稿は非常に古いものであり、あなたが望むことをするためのより良いリソースがあると思います。私もかなり初心者ですが、いくつかの研究を行った後、このリンクが最も有用であることがわかりました。

http://38leinad.wordpress.com/2011/10/19/practical-blender-with-glkit-part-1-introducing-glkit/

OpenGLの処理を簡単にするglkitについて説明し、Blenderと対話する方法のニースチュートリアルも含まれています。

2
Lesswire

私はちょっとした楽しみのためにiPhone開発の遊びをしていて、Dave MarkとJeff LaMarcheのBeginning iPhone Development(ISBN13:978-1-4302-1626-1)を購入し、各章の作業を楽しんでいます。私はWin32 Delphiのバックグラウンドを少しの.NETで持っているので、Objective Cは私にとって非常に新しいものです。

章の1つは、OpenGLとQuartzにあります。私はまだそこまで持っていないので、自分にとってそれがどれほど役に立つかについて本当にコメントすることはできませんが、文章のスタイルは非常にアクセスしやすく、うまくいきます(とにかく私にとって)。

最初の章では、XcodeとInterfaceBuilderの優れた紹介とともに、実行を開始する方法を正確に説明します。

1
Simon Temlett

IOS 8以降の場合、答えはSceneKitです。 SceneKitはCollada(DAE)ファイルをレンダリングします。適切なモデリングパッケージ(Cheetah、Blenderなど)は、DAEファイルをエクスポートする必要があります。XMLで文書化されたポータブル形式です(ただし、xCodeはスペースを節約するためにバイナリ形式にコンパイルします)。

1
Airsource Ltd

iPhone用の2つの良い3D SDK:

sio2interactiveおよびウーロン。

Sio2interactiveのサイトには、すばらしいビデオとsrcチュートリアルがあります。ブレンダーとモデルのエクスポートとレンダリングを支援します-ゲーム開発を正しく行うことができます。 srcはすべてsio2のcにあり、コードは非常によくコメントされています。 3DとOpengleの学習を始めるのに最適な場所です。 Blenderからsio2へのエクスポートはWYSIWYGです。

これをすべてゼロから行うと、モデルを自分でエクスポートおよびインポートする方法を知る必要があります。だから、始めようとする人のための両方の素晴らしいライブラリ。

0
wto

Emcore3Dを使用する ---(https://github.com/Things3D/Emcore3D

Obj、mt、およびテクスチャへのパスを定義するだけです。

T3DModelPathInfo * newModelPath = [T3DModelPathInfo createModelPathInfoWithModelName:@ "model.obj" material:@ "model.mtl" path:@ "/ 3DModels /"];

その後、T3DModelPathInfoを使用してT3DObjectを作成し、T3DRenderControllerに追加します。

T3DObject * newObject = [T3DObject initWithModelPathObject:newModelPath]; [renderVC addT3DObject:newObject];

ps:私がEmcore3Dチームの一員であることの開示

0
Jyswee