Möchten Sie ein 3D-Modell auf dem iPhone angezeigt werden: wie, um loszulegen? [geschlossen]

StackOverflow https://stackoverflow.com/questions/413919

  •  03-07-2019
  •  | 
  •  

Frage

Ich mag ein einzelnes 3D-Modell auf dem iPhone, vorzugsweise strukturiert, anzuzeigen und zu drehen. Muss in und aus nicht zoomen, oder haben einen Hintergrund, oder irgendetwas.

Ich habe folgende Möglichkeiten:

  • ein iPhone
  • ein MacBook
  • das iPhone SDK
  • Blender

Meine Wissensbasis:

  • Ich kann verschiedene 3D-Programme macht 3D-Modelle in (ich bin am bequemsten mit 3D Studio Max, die ich einmal einen Kurs nahm, aber ich habe andere verwendet)
  • Allgemeine Kenntnisse der prozeduralen Programmierung von Jahren (Quickbasic - ich bin alt)
  • Anfänger Kenntnisse der objektorientierten Programmierung von gehen durch einfache Java und C # Tutorials (Head Start C # Buch und Einleitung meiner Frau natürlich OOP, die Java verwendet wird)
  • Ich habe es geschaffen, ein 3D-texturierten Modell anzuzeigen und zu drehen ein Tutorial in C # ich das Netz ausstieg (habe ich nicht nur kopieren und einfügen, verstehe ich im Grunde, wie es funktioniert) und die XNA-Spiele-Entwicklung Bibliothek, mit Visual Studio unter Windows.

Was ich weiß nicht:

  • Viel über Objective C
  • Alles über OpenGL oder OpenGL ES, die das iPhone offenbar verwendet
  • Alles über XCode

Mein Hauptproblem ist, dass ich weiß nicht, wo ich anfangen soll! Alle iPhone Bücher, die ich gefunden scheinen über das Erstellen von GUI-Anwendungen zu sein, nicht OpenGL-Anwendungen. Ich fand ein OpenGL-Buch, aber ich weiß nicht, wie viel, wenn überhaupt, auf dem iPhone Entwicklung gilt. Und ich finde die Objective-C-Syntax etwas verwirrend, mit der seltsam verschachtelten Verfahren Namensgebung, Dinge wie „id“, die keinen Sinn machen, und dem erschreckenden Gedanke, dass ich manuelle Speicherverwaltung zu tun habe.

Wo ist der beste Ort zu beginnen? Ich konnte keine Tutorials für diese Art der Sache finden, aber vielleicht mein Google-Fu ist schwach. Oder vielleicht sollte ich mit dem Lernen Objective C beginnen? Ich kenne Bücher wie Aaron Hillgrass', aber ich habe auch gelesen, dass sie veraltet und viel von dem Beispielcode nicht auf dem iPhone SDK funktioniert, und es scheint auf dem Model-View-Controller-Paradigma ausgerichtet, die nicht der Fall ist dass geeignet scheint für 3D-Anwendungen.

Im Grunde genommen bin ich verwirrt, was meine ersten Schritte sein sollte.

War es hilfreich?

Lösung

Sie sollten wahrscheinlich mit einiger einfach iphone apps / Tutorials starten, nur den Halt bekommen auf obj-c und Xcode etc.

Dazu empfehle ich die iphone Buch pragmatischen Programmierer, die genügend Informationen haben, um zu beginnen (ich ohne Kenntnis von Xcode gestartet, obj-c, iphone oder Mac und erwischen einen Arbeits app ziemlich schnell, indem vor allem diesen) . Ich möchte jedoch hinzufügen, dass ich von einem ziemlich guten Hintergrund in C / C ++ kommen und Java.

Für Ihr spezielles Projekt, nehmen Sie vielleicht einen Blick auf diese Antwort, die zu einem Open-Source-3D-App bezieht, die Sie betrachten können und erhalten Tipps aus.

Andere Tipps

Noch einmal, wenn ich meine eigene Arbeit stecken kann, ich habe einen Beitrag über die Dinge geschrieben ich von der Entwicklung einer OpenGL ES-Anwendung auf dem iPhone gelernt haben. Dieser Antrag, Molecules (nach frankodwyer), ist Open Source und ich habe eine writeup auf einige der anderen kniffligen Fragen, die ich lief in, während es die Entwicklung . Die Anwendung erzeugt 3-D-Modelle und können Sie drehen und skalieren sie mit den Fingern, die auf Ihre Bedürfnisse schließen sich anhört. Sie können den Code herunterladen, kompilieren und es auf Ihrem Desktop in einer Angelegenheit von ein paar Minuten laufen. Wenn Sie den iPhone Developer Program teilnehmen, können Sie es auf dem Gerät installieren.

Wenn es darum geht Laden einzuwenden, Bill Dudney arbeitet an einem Wavefront OBJ loader für das iPhone dass in der Lage sein könnte, in der Blender-Dateien zu nehmen, sollten sie exportierbar sein in diesem Format. Ich habe nicht viel Textur Arbeit auf dem iPhone noch nicht getan, aber es klingt wie sein Beispiel hat, dass die Arbeit jetzt.

Insgesamt finde ich, dass das Lernen durch Beispiel und durch einen Sprung in der Entwicklung von einigen kleinen, zielgerichteten Anwendungen (die Sie nie loslassen können), was für mich funktioniert. Versuchen Sie, die Beispiele Tweaking oben aufgeführt und sehen, was passiert. Sie sollten in diesen Beispielen durch die Objective-C-Code lesen können und starten Sie ein Gefühl dafür zu bekommen, was sie tun.

Auch wenn Hillegass Buch (die dritte Auflage kam gerade heraus und ist up-to-date) auf dem Mac konzentriert, sind die Kakaogrundlagen unterrichtet er immer noch relevant für das iPhone. Das MVC-Entwurfsmuster dient Sie genauso gut auf dem iPhone als Mac. Ich tatsächlich von diesem Muster an wenigen Stellen innerhalb von Molekülen abgelenkt, und ich bedaure diese Entscheidung, weil diese Abschnitte der Anwendung ein Chaos wurde. Das Buch ist leicht zu lesen und es lohnt sich Ihre Zeit.

Dies ist ein alter Thread, und ich bin schrecklich spät. Aber immer noch werde ich meine 2 Pence hier posten.

A Sneak Preview

Bevor ich das Tier erhält in, das ist meine Einstellung.

ich

  1. Blender 3D-Modelle zu erstellen. (Sie können die Maya oder 3D Max verwenden, I wird Ihnen sagen, wie das Modell für Blender, gleiche funktioniert für 3D-Export Max und Maya).
  2. Cocos3D Spiel-Engine.
  3. PVRGeoPOD Mixer Erweiterung von Imagination Technology konvertieren Mixer Modell zu formatieren, dass Cocos3D verstehen. Du kannst sehen dass der Link lädt eine Installationsdatei, die in dreht Downloads das gesamte SDK. Ich kann nicht eine einfache Möglichkeit, sehen Sie den Mixer zum Download Erweiterung allein.

Wenn Sie also sind nicht zu verwenden Cocos3D Absicht können Sie überspringen Sie diese Antwort und für Ihr Geld laufen.

Grundeinstellung

  1. Installieren Mixer .

    Ich werde dich nicht in Verlegenheit bringen, indem sie in zu Detail zu gehen.

  2. Download Cocos3D. .

    Wenn ich diesen Typen, die aktuelle Version 0.7.2 ist.

  3. Download Cocos2D.

    Cocos3D wird auf der populären Cocos2D geschrieben, ein beliebtes 2D-Spiel Rahmen. Wichtig denken hier zu beachten ist, dass, Cocos2D 2.x Version ist schon da und stabil. Aber Cocos3D arbeitet mit Cocos2d 1.x Version.

    Wenn Sie die Quelle entpacken Sie heruntergeladen werden Sie eine Readme-Datei finden innen, und es sagt ausdrücklich,

      

    Bitte beachten Sie, dass cocos3d 0.7.2 ist nicht kompatibel mit cocos2d 2.x . SEIN   Um sicherzustellen, dass DOWNLOAD cocos2d 1.x FÜR DIE VERWENDUNG MIT cocos3d . (Hervorhebung von mir)

    Die Readme-Datei zeigt deutlich den Installationsvorgang. Nach Installation werden Sie eine schöne Cocos3D Projektvorlage in XCode erhalten.

  4. Hinzufügen PVRGeoPOD Erweiterung Blender.

    Das erfordert eine gewisse Erklärung. Wenn Sie die PVRGeoPOD laufen Installateur, ein Bildschirm zeigt, was und welche Funktionen sein müssen Eingerichtet. Ich nur ausgewählte

    • PVRGeoPOD - Zu meinen Modelle in meiner .blend Datei zu .POD Format, das Cocos3D versteht

    • konvertieren
    • PVRShaman -. Sie das Modell innerhalb .POD mit diesem Tool anzeigen können,

    eingeben Bild Beschreibung hier

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

    Jetzt nach der Installation (die einige Zeit dauern kann), können Sie müssen die PVRGeoPOD AddOn zu Mixer hinzuzufügen. Sie können die finden PVRGeoPOD.UserManual.PDF Datei in den gerade installierten Ordnern, die auch folgende Informationen enthalten.

    • Finden Blender Add-On-Ordner können Sie Mixer Python-Konsole öffnen und Befehl bpy.utils.script_paths("addons") laufen die sehen Pfad zu diesem Ordner.
    • Suchen Sie nach den Mixer Add-on-Dateien innerhalb des PVRGeoPOD Ordner in Ihrem Installationspfad. Wenn Sie sehen, wie Dateien libPVRGeoPOD.dylib und PVRGeoPODScript.py und 2 QTfiles, dort anhalten, da dies die Lage ist. Kopieren Sie diese 4-Dateien und fügen Sie sie in blender hinzufügen auf Ordner.
    • Öffnen Sie nun Mixer, wählen Sie Einstellungen , finden Add-On , Such- und PVRGeoPOD Erweiterung finden und ermöglichen es durch das Klicken auf Checkbox auf der rechten Seite.
    • Aufhören und Mixer neu zu starten, falls erforderlich, und wählen Sie File-> Export und sehen, ob es eine Option namens PVRGeoPOD (.pod/.h/.cpp) , wenn ja, Sie sind erfolgreich.

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

    Wenn Sie mit anderen 3D-Design-Tools wie Maya, 3D Max, diese PVRGeoPOD Erweiterung kann auch zu ihnen hinzugefügt werden. Nur sehen die PDF-I oben erwähnt.

Verwendung in Projekt

  1. Schritt für Schritt-Verfahren ist unten angegeben.

    Erstellen Sie Ihr Modell in den Mixer (.blend) und exportieren es als .POD Datei. Wenn Sie exportieren wir normalerweise folgende Optionen wählen

    • Urtyp - Indexed Dreieck Liste
    • Registerkarte Material - Überprüfen Export-Material Option

    und Ruhe ich es als Standard verlassen.

  2. Erstellen Sie ein neues Projekt in XCode, wählen Cocos3D Vorlage.
  3. Fügen Sie die .POD Dateien zu Ihrem Projekt. Wenn Sie ein strukturiertes Modell, fügen dass Textur zu einem Projekt auch.
  4. Das Template-Projekt selbst enthält eine HelloWorld.POD Datei, Sie diese Zeile mit Ihrer .POD Datei ersetzen kann, so dass Ihr Modell sein wird, sichtbar.

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

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

Shameless Stecker

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

Fühlen Sie sich frei, um es auszuprobieren, ein Demo-lib für das iPhone Simulator zur Verfügung steht. Bitte beachten Sie, dass die OpenGLES Leistung auf dem iPhone ist nicht das gleiche wie in dem Simulator.

Es verwendet eine Optimierungsphase und baut tristrips und baut endgültigen vertexarrays auf dem iPhone laufen zu können.

Sehen Sie eine quickstart wie es zu benutzen

Dieser Beitrag ist ziemlich alt und ich denke, es gibt jetzt eine bessere Ressource zu tun, was Sie wollen. Ich bin auch ein ganz Anfänger, aber nach ein paar Untersuchungen machen Ich fand das linke der nützlichsten:

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

Es erklären glkit die leichter machen sollte OpenGL zu handhaben und es beinhaltet auch ein nettes Tutorial, wie man mit Blender zu interagieren.

ich für ein bisschen Spaß, ein Spiel mit iPhone Entwicklung habe und kaufte Anfang iPhone Entwicklung von Dave Mark und Jeff LaMarche (ISBN13: 978-1-4302-1626-1) und genieße durch die Kapitel zu arbeiten. Ich habe einen Win32 Delphi Hintergrund mit einem wenig .NET und so Objective C für mich sehr neu ist.

Eines des Kapitels ist auf OpenGL und Quartz, die für Sie von Interesse sein können. Ich habe nicht haben, dass weit und doch so kann ich nicht wirklich sagen, wie nützlich es für dich selbst sein, aber der Schreibstil ist sehr zugänglich und es ist gut geht (für mich jedenfalls).

Die ersten Kapitel erklären genau, wie einen Lauf mit einer guten Einführung in Xcode und Interface aufzustehen.

Für alles, was auf iOS 8 oder höher, ist die Antwort SceneKit. SceneKit wird Collada (DAE) Dateien machen. Jedes anständiges Modellierungspaket (zB Cheetah, Blender) sollte eine DAE-Datei exportieren - es ist ein dokumentiertes portables Format in XML (obwohl xCode sie in Binärformat kompiliert um Platz zu sparen).

2 gute 3D-SDKs für iphone:

sio2interactive und Oolong.

Die sio2interactive hat großes Video und src-Tutorials auf ihrer Website. Es wird mit Mixer und Model-Export helfen und macht - bringen Sie nach rechts Entwicklung zum Spiel. Die src ist alles in c für SiO 2 und der Code ist sehr gut kommentiert. Es ist ein großartiger Ort zu beginnen, 3d und OpenGLES lernen. Blender sio2 Export ist WYSIWYG.

Dadurch alles von Grund auf neu, und Sie werden wissen, wie die Modelle selbst zu exportieren und importieren. Also beide großen Libs für jemanden am Anfang.

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

Sie einfach definieren Pfade zum obj, mt und Texturen.

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

Danach erstellen Sie einen T3DObject mit dem T3DModelPathInfo und fügen Sie es den T3DRenderController.

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

ps: Angaben, die ich Teil des Emcore3D Team bin

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top