it-swarm.com.de

Möchten Sie ein 3D-Modell auf dem iPhone anzeigen?

Ich möchte ein einzelnes 3D-Modell, vorzugsweise texturiert, auf dem iPhone anzeigen und drehen. Muss nicht vergrößern und verkleinern oder einen Hintergrund haben oder so.

Ich habe folgendes:

  • ein iPhone
  • ein MacBook
  • das iPhone SDK
  • Mixer

Meine Wissensbasis:

  • Ich kann 3D-Modelle in verschiedenen 3D-Programmen erstellen (ich bin am besten mit 3D Studio Max vertraut, an dem ich einmal teilgenommen habe, aber ich habe andere verwendet)
  • Allgemeine Kenntnisse der prozeduralen Programmierung von vor Jahren (QuickBasic - Ich bin alt!)
  • Anfängerkenntnisse in objektorientierter Programmierung, angefangen von einfachen Java und C # -Tutorials (C # -Kopfstartbuch und das Intro meiner Frau zu OOP Kurs, in dem Java verwendet wurde)
  • Ich habe es geschafft, ein 3D-Strukturmodell anzuzeigen und es mithilfe eines Tutorials in C # zu drehen. Ich bin aus dem Netz (ich habe nicht nur kopiert und eingefügt, ich verstehe im Grunde, wie es funktioniert) und der XNA-Spieleentwicklungsbibliothek mit Visual Studio auf Windows.

Was ich nicht weiß:

  • Viel über Ziel C
  • Alles über OpenGL oder OpenGL ES, die das iPhone anscheinend benutzt
  • Alles über XCode

Mein Hauptproblem ist, dass ich nicht weiß, wo ich anfangen soll! In allen iPhone-Büchern, die ich gefunden habe, geht es anscheinend um das Erstellen von GUI-Anwendungen, nicht um OpenGL-Apps. Ich habe ein OpenGL-Buch gefunden, weiß aber nicht, wie viel, wenn überhaupt, für die iPhone-Entwicklung gilt. Und ich finde die Objective C-Syntax etwas verwirrend, mit der seltsamen Benennung verschachtelter Methoden, Dingen wie "id", die keinen Sinn ergeben, und dem beängstigenden Gedanken, dass ich manuelle Speicherverwaltung durchführen muss.

Wo fängt man am besten an? Ich konnte keine Tutorials für diese Art von Dingen finden, aber vielleicht ist mein Google-Fu schwach. Oder sollte ich mit dem Erlernen von Ziel C beginnen? Ich kenne Bücher wie Aaron Hillgrass, aber ich habe auch gelesen, dass sie veraltet sind und ein Großteil des Beispielcodes auf dem iPhone SDK nicht funktioniert. Außerdem scheint er auf das Modell-Ansicht-Controller-Paradigma ausgerichtet zu sein, das dies nicht tut Das scheint für 3D-Apps geeignet zu sein.

Grundsätzlich bin ich verwirrt, was meine ersten Schritte sein sollten.

52
JeremyReimer

Du solltest wahrscheinlich mit ein paar einfacheren iPhone Apps/Tutorials beginnen, nur um dich mit obj-c und xcode etc. vertraut zu machen.

Dafür empfehle ich das iPhone-Buch des pragmatischen Programmierers, das genügend Informationen für den Einstieg enthält (ich habe ohne Kenntnisse von xcode, obj-c, iphone oder mac angefangen und bin ziemlich schnell zu einer funktionierenden App gekommen, wobei ich hauptsächlich diese verwendet habe). Allerdings sollte ich hinzufügen, dass ich aus einem ziemlich guten Hintergrund in C/C++ und Java komme.

Schauen Sie sich für Ihr bestimmtes Projekt vielleicht this answer an, das sich auf eine Open-Source-3D-App bezieht, die Sie ansehen und von der Sie Tipps erhalten können.

8
frankodwyer

Noch einmal, wenn ich meine eigene Arbeit einbinden darf, habe ich einen Beitrag geschrieben über die Dinge, die ich durch die Entwicklung einer OpenGL ES-Anwendung auf dem iPhone gelernt habe. Diese Anwendung, Molecules (von Frankodwyer genannt), ist Open Source und ich habe eine Zuschreibung zu einigen anderen kniffligen Problemen, auf die ich bei der Entwicklung gestoßen bin. Die Anwendung generiert 3-D-Modelle und lässt Sie sie mit den Fingern drehen und skalieren, was genau Ihren Bedürfnissen entspricht. Sie können den Code in wenigen Minuten herunterladen, kompilieren und auf Ihrem Desktop ausführen. Wenn Sie dem iPhone Developer Program beitreten, können Sie es auf Ihrem Gerät installieren.

Wenn es um das Laden von Objekten geht, arbeitet Bill Dudney an einem Wavefront OBJ-Loader für das iPhone , der möglicherweise Ihre Blender-Dateien aufnehmen kann, falls sie in diesem Format exportiert werden können Format. Ich habe noch nicht viel Texturarbeit auf dem iPhone geleistet, aber es hört sich so an, als ob sein Beispiel jetzt funktioniert.

Insgesamt finde ich, dass das Lernen anhand von Beispielen und der Einstieg in die Entwicklung einiger kleiner, zielgerichteter Anwendungen (die Sie möglicherweise nie veröffentlichen) für mich das Richtige sind. Versuchen Sie, die oben aufgeführten Beispiele zu optimieren, und sehen Sie, was passiert. Sie sollten in der Lage sein, den Objective-C-Code in diesen Beispielen zu lesen und ein Gefühl dafür zu bekommen, was sie tun.

Auch wenn sich Hillegass 'Buch (die dritte Ausgabe ist gerade erschienen und aktuell) auf den Mac konzentriert, sind die von ihm gelehrten Cocoa-Grundlagen für das iPhone immer noch relevant. Das MVC-Designmuster eignet sich sowohl für das iPhone als auch für den Mac. Ich bin tatsächlich an einigen Stellen innerhalb von Molecules von diesem Muster abgewichen, und ich bedaure diese Entscheidung, weil diese Abschnitte der Anwendung zu einem Durcheinander geworden sind. Das Buch ist leicht zu lesen und Ihre Zeit wert.

39
Brad Larson

Das ist ein uralter Thread und ich bin furchtbar spät dran. Aber ich werde trotzdem meine 2 Pence hier posten.

Eine Vorschau

Bevor ich zum Biest komme, ist dies mein Setup.

Ich benutze

  1. Blender um 3D Modelle zu erstellen. (Sie können Maya oder 3D Max verwenden. Ich erkläre Ihnen, wie Sie das Modell für Blender exportieren können. Dasselbe gilt für 3D Max und Maya.).
  2. Cocos3D Spiel-Engine.
  3. PVRGeoPOD Blender-Erweiterung von Imagination Technology zur Konvertierung des Blender-Modells in ein Format, das Cocos3D versteht. Sie können sehen, dass der Link eine Installationsdatei herunterlädt, die wiederum das gesamte SDK herunterlädt. Ich kann keine einfache Möglichkeit finden, die Mixer-Erweiterung alleine herunterzuladen.

Wenn Sie also nicht beabsichtigen, Cocos3D zu verwenden, können Sie diese Antwort überspringen und um Ihr Geld rennen.

Ersteinrichtung

  1. Installiere Mixer .

    Ich werde Sie nicht in Verlegenheit bringen, indem ich auf Details eingehen.

  2. Download Cocos3D. .

    Wenn ich das tippe, ist die aktuelle Version 0.7.2.

  3. Download Cocos2D.

    Cocos3D basiert auf Cocos2D, einem beliebten 2D-Framework. Wichtig ist hierbei zu beachten, dass die Cocos2D 2.x-Version bereits vorhanden und stabil ist. Cocos3D funktioniert jedoch nur mit Cocos2d 1.x.

    Wenn Sie die heruntergeladene Quelle entpacken, finden Sie darin eine README

    BITTE BEACHTEN SIE, DASS cocos3d 0.7.2 IS NICHT KOMPATIBEL MIT cocos2d 2.x . SICHERSTELLEN, DASS cocos2d 1 HERUNTERLADEN .x ZUR VERWENDUNG MIT cocos3d . (Hervorhebung von mir)

    In der Datei README wird der Installationsvorgang deutlich. Nach der Installation erhalten Sie eine Nice Cocos3D-Projektvorlage in XCode.

  4. Füge die PVRGeoPOD-Erweiterung zu Blender hinzu.

    Dies bedarf einiger Erklärungen. Wenn Sie das PVRGeoPOD-Installationsprogramm ausführen, wird auf einem Bildschirm angezeigt, welche Funktionen installiert werden müssen. Ich habe nur ausgewählt

    • PVRGeoPOD - Um meine Modelle in meiner .blend-Datei in das von Cocos3D verstandene .POD-Format zu konvertieren

    • PVRShaman - Mit diesem Tool können Sie das Modell in .POD anzeigen.

    enter image description here

    Sie können andere Tools in der Liste installieren, aber ich habe nur diese beiden verwendet.

    Nach dem Installationsvorgang (der einige Zeit dauern kann) müssen Sie das PVRGeoPOD AddOn zum Mixer hinzufügen. Sie finden die Datei PVRGeoPOD.UserManual.PDF im soeben installierten Ordner, der auch die folgenden Informationen enthält.

    • Suchen Sie den Blender-Add-On-Ordner, öffnen Sie die Blender-Konsole python=) und führen Sie den Befehl bpy.utils.script_paths("addons") aus, um den Pfad zu diesem Ordner anzuzeigen.
    • Suchen Sie die Blender-Zusatzdateien im Ordner PVRGeoPOD in Ihrem Installationspfad. Wenn Sie Dateien wie libPVRGeoPOD.dylib und PVRGeoPODScript.py und 2 QT-Dateien sehen, halten Sie dort an, da dies der Speicherort ist. Kopieren Sie diese 4 Dateien und fügen Sie sie in den Add-On-Ordner von Blender ein.
    • Öffnen Sie nun den Mixer, wählen Sie Einstellungen , suchen Sie das Add-On-Register , suchen und finden Sie die PVRGeoPOD-Erweiterung und aktivieren Sie sie, indem Sie das Kontrollkästchen aktivieren das Recht.
    • Beenden Sie nun Blender und starten Sie ihn neu, falls erforderlich, und wählen Sie Datei-> Exportieren. Prüfen Sie, ob eine Option namens PVRGeoPOD (.pod/.h/.cpp) vorhanden ist. Wenn ja, sind Sie erfolgreich.

    Jetzt können Sie Modelle in Blender erstellen und diese Modelle als .POD-Dateien exportieren, die Cocos3D versteht.

    Wenn Sie andere 3D-Konstruktionswerkzeuge wie Maya und 3D Max verwenden, kann diese PVRGeoPOD-Erweiterung ebenfalls hinzugefügt werden. Siehe einfach die PDF, die ich oben erwähnt habe.

In Projekt verwenden

  1. Eine schrittweise Anleitung finden Sie weiter unten.

    Erstellen Sie Ihr Modell in Blender (.blend) und exportieren Sie es als .POD-Datei. Beim Exportieren wähle ich normalerweise folgende Optionen

    • Primitiver Typ - Liste der indizierten Dreiecke
    • Registerkarte "Material" - Aktivieren Sie die Option "Material exportieren"

    und ausruhen lasse ich es als Standard.

  2. Erstellen Sie ein neues Projekt in XCode und wählen Sie die Cocos3D-Vorlage.
  3. Fügen Sie Ihrem Projekt die POD-Dateien hinzu. Wenn Sie ein texturiertes Modell haben, fügen Sie diese Textur auch Ihrem Projekt hinzu.
  4. Das Vorlagenprojekt selbst enthält eine HelloWorld.POD - Datei. Sie können diese Zeile durch Ihre .POD-Datei ersetzen, damit Ihr Modell sichtbar wird.

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

Jetzt haben Sie Ihr erstes 3D-Modell auf einem iOS-Gerät sichtbar.

8
Krishnabhadra

Schamloser Stecker

Ich habe einen kleinen AC3D Renderer für das iPhone gemacht. Link >>

Probieren Sie es einfach aus, eine Demo-Bibliothek für den iPhone-Simulator ist verfügbar. Bitte beachten Sie, dass die OpenGLES-Leistung auf dem iPhone nicht mit der im Simulator übereinstimmt.

Es verwendet eine Optimierungsstufe und erstellt Tristrips und erstellt endgültige Vertexarrays, um auf dem iPhone ausgeführt werden zu können.

Sehen Sie sich einen Schnellstart an, wie man es benutzt

6
epatel

Dieser Beitrag ist ziemlich alt und ich denke, es gibt jetzt eine bessere Ressource, um das zu tun, was Sie wollen. Ich bin auch ein ziemlicher Anfänger, aber nachdem ich einige Nachforschungen angestellt habe, fand ich diese Linke am nützlichsten:

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

Es erklärt glkit, das die Handhabung von OpenGL erleichtern soll, und es enthält auch ein Nizza-Tutorial, wie man mit Blender interagiert.

2
Lesswire

Ich habe ein wenig Spaß beim Spielen mit der iPhone-Entwicklung und kaufe Beginning iPhone Development von Dave Mark und Jeff LaMarche (ISBN13: 978-1-4302-1626-1) und arbeite gerne durch die Kapitel. Ich habe einen Win32-Delphi-Hintergrund mit etwas .NET und daher ist Objective C für mich sehr neu.

Eines der Kapitel befasst sich mit OpenGL und Quarz, die für Sie von Interesse sein könnten. Bis hierher bin ich noch nicht gekommen, daher kann ich nicht wirklich beurteilen, wie nützlich es für dich sein wird, aber der Schreibstil ist sehr zugänglich und geht gut voran (für mich jedenfalls).

In den ersten Kapiteln wird genau erklärt, wie Sie mit einer guten Einführung in Xcode und InterfaceBuilder zum Laufen kommen.

1
Simon Temlett

Für iOS 8 oder höher lautet die Antwort SceneKit. SceneKit rendert Collada (DAE) -Dateien. Jedes anständige Modellierungspaket (z. B. Cheetah, Blender) sollte eine DAE-Datei exportieren - es ist ein dokumentiertes portables Format in XML (obwohl xCode sie aus Platzgründen in ein Binärformat kompiliert).

1
Airsource Ltd

2 gute 3d sdks für iphone:

sio2interactive und oolong.

Die sio2interactive hat tolle Video- und src-Tutorials auf ihrer Seite. Es hilft beim Exportieren und Rendern von Mixern und Modellen - bringt Sie direkt zur Spieleentwicklung. Das src ist alles in c für sio2 und der Code ist sehr gut kommentiert. Es ist ein großartiger Ort, um 3D und Opengles zu lernen. Blender to SiO2-Export ist WYSIWYG.

Wenn Sie dies alles von Grund auf tun, müssen Sie wissen, wie Sie die Modelle selbst exportieren und importieren. Also beide tolle Bibliotheken für jemanden, der anfängt.

0
wto

Verwende Emcore3D --- (https://github.com/Things3D/Emcore3D )

Definieren Sie einfach Pfade zu den Objekten, Mt und Texturen.

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

Danach erstellen Sie ein T3DObject mit dem T3DModelPathInfo und fügen es dem T3DRenderController hinzu.

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

ps: Offenlegung, dass ich Teil des Emcore3D-Teams bin

0
Jyswee