web-dev-qa-db-fra.com

Vous souhaitez afficher un modèle 3D sur l'iPhone: comment commencer?

Je souhaite afficher et faire pivoter un seul modèle 3D, de préférence texturé, sur l'iPhone. N'a pas à faire un zoom avant ou arrière, ni un arrière-plan, ou quoi que ce soit.

J'ai ce qui suit:

  • un iPhone
  • un MacBook
  • le SDK iPhone
  • Mixeur

Ma base de connaissances:

  • Je peux créer des modèles 3D dans divers programmes 3D (je suis plus à l'aise avec 3D Studio Max, sur lequel j'ai déjà suivi un cours, mais j'en ai utilisé d'autres)
  • Connaissance générale de la programmation procédurale d'il y a des années (QuickBasic - je suis vieux!)
  • Connaissance débutante de la programmation orientée objet en passant par des didacticiels simples Java et C # (livre Head Start C # et l'intro de ma femme à OOP qui utilisait Java)
  • J'ai réussi à afficher un modèle texturé 3D et à le faire tourner à l'aide d'un tutoriel en C # Je suis sorti du net (je n'ai pas seulement copié et collé, je comprends essentiellement comment cela fonctionne) et la bibliothèque de développement de jeux XNA, en utilisant Visual Studio sur Les fenêtres.

Ce que je ne sais pas:

  • Beaucoup sur l'objectif C
  • Tout ce qui concerne OpenGL ou OpenGL ES, que l'iPhone utilise apparemment
  • Tout sur XCode

Mon principal problème est que je ne sais pas par où commencer! Tous les livres iPhone que j'ai trouvés semblent concerner la création d'applications GUI, pas d'OpenGL. J'ai trouvé un livre OpenGL mais je ne sais pas combien, le cas échéant, s'applique au développement de l'iPhone. Et je trouve la syntaxe Objective C quelque peu déroutante, avec le nommage bizarre des méthodes imbriquées, des choses comme "id" qui n'ont pas de sens, et la pensée effrayante que je dois faire une gestion manuelle de la mémoire.

Où est le meilleur endroit pour commencer? Je n'ai trouvé aucun tutoriel pour ce genre de chose, mais peut-être que mon Google-Fu est faible. Ou peut-être devrais-je commencer par apprendre l'objectif C? Je connais des livres comme Aaron Hillgrass, mais j'ai également lu qu'ils sont obsolètes et qu'une grande partie de l'exemple de code ne fonctionne pas sur le SDK iPhone, en plus il semble orienté vers le paradigme Model-View-Controller qui ne fonctionne pas semblent adaptés aux applications 3D.

Fondamentalement, je suis confus quant à ce que devraient être mes premiers pas.

52
JeremyReimer

Vous devriez probablement commencer avec des applications/tutoriels iphone plus simples, juste pour vous familiariser avec obj-c et xcode, etc.

Pour cela, je recommande le livre iphone du programmeur pragmatique, qui a suffisamment d'informations pour commencer (j'ai commencé sans connaissance de xcode, obj-c, iphone ou mac et suis arrivé à une application qui fonctionne assez rapidement, en utilisant principalement cela). Cependant je dois ajouter que je viens d'un assez bon bagage en C/C++ et Java.

Pour votre projet particulier, jetez un œil à la réponse this qui fait référence à une application 3D open source que vous pouvez consulter et obtenir des conseils.

8
frankodwyer

Encore une fois, si je peux brancher mon propre travail, j'ai écrit un article sur les choses que j'ai apprises en développant une application OpenGL ES sur l'iPhone. Cette application, Molecules (mentionnée par frankodwyer), est open source et j'ai un writeup sur certains des autres problèmes délicats que j'ai rencontrés lors de son développement. L'application génère des modèles 3D et vous permet de les faire pivoter et de les mettre à l'échelle avec vos doigts, ce qui semble proche de vos besoins. Vous pouvez télécharger le code, le compiler et l'exécuter sur votre bureau en quelques minutes. Si vous rejoignez le programme pour développeurs iPhone, vous pouvez l'installer sur votre appareil.

En ce qui concerne le chargement d'objets, Bill Dudney travaille sur un Wavefront OBJ loader pour iPhone qui pourrait être capable de prendre en charge vos fichiers Blender, s'ils devraient être exportables dans ce format. Je n'ai pas encore beaucoup travaillé sur les textures sur l'iPhone, mais il semble que son exemple fonctionne maintenant.

Dans l'ensemble, je trouve que l'apprentissage par l'exemple et le saut dans le développement de petites applications ciblées (que vous ne pourrez peut-être jamais publier) sont ce qui fonctionne pour moi. Essayez de modifier les exemples ci-dessus et voyez ce qui se passe. Vous devriez pouvoir lire le code Objective-C dans ces exemples et commencer à avoir une idée de ce qu'ils font.

Même si le livre de Hillegass (la troisième édition vient de sortir et est à jour) se concentre sur le Mac, les principes fondamentaux de Cocoa qu'il enseigne sont toujours pertinents pour l'iPhone. Le modèle de conception MVC vous sert aussi bien sur iPhone que sur Mac. En fait, je me suis écarté de ce modèle à quelques endroits dans Molecules, et je regrette cette décision parce que ces sections de l'application sont devenues un gâchis. Le livre est facile à lire et vaut bien votre temps.

39
Brad Larson

C'est un fil ancien et je suis terriblement en retard. Mais je vais quand même poster mes 2 pence ici.

Un aperçu

Avant d'entrer dans la bête, voici ma configuration.

J'utilise

  1. Blender pour créer des modèles 3D. (Vous pouvez utiliser Maya ou 3D Max, je vais vous dire comment exporter le modèle pour Blender, même travail pour 3D Max et Maya).
  2. Cocos3D moteur de jeu.
  3. extension du mélangeur PVRGeoPOD de Imagination Technology pour convertir le modèle du mélangeur au format que Cocos3D comprend. Vous pouvez voir que le lien télécharge un fichier d'installation qui à son tour télécharge l'intégralité du SDK. Je ne vois pas de moyen simple de télécharger l'extension du mélangeur seul.

Donc, si vous n'avez pas l'intention d'utiliser Cocos3D , vous pouvez ignorer cette réponse et courez pour votre argent.

La configuration initiale

  1. Installer blender .

    Je ne vais pas vous embarrasser en entrant dans les détails.

  2. Télécharger Cocos3D. .

    Lorsque je tape ceci, la version actuelle est 0.7.2.

  3. Télécharger Cocos2D.

    Cocos3D est écrit sur Cocos2D, un framework de jeu 2D populaire. Il est important de noter ici que la version Cocos2D 2.x est déjà là et stable. Mais Cocos3D fonctionne uniquement avec la version Cocos2d 1.x.

    Lorsque vous décompressez la source que vous avez téléchargée, vous trouverez un fichier README à l'intérieur et il indique spécifiquement,

    VEUILLEZ NOTER QUE cocos3d 0.7.2 IS NON COMPATIBLE AVEC cocos2d 2.x . ASSUREZ-VOUS DE TÉLÉCHARGEZ cocos2d 1.x POUR UNE UTILISATION AVEC cocos3d .

    Le fichier README indique clairement la procédure d'installation. Après l'installation, vous obtiendrez un modèle de projet Nice Cocos3D dans XCode.

  4. Ajoutez l'extension PVRGeoPOD à Blender.

    Cela nécessite quelques explications. Lorsque vous exécutez le programme d'installation de PVRGeoPOD, un écran affiche les fonctionnalités et les fonctionnalités à installer. J'ai seulement sélectionné

    • PVRGeoPOD - Pour convertir mes modèles dans mon fichier .blend au format .POD que Cocos3D comprend

    • PVRShaman - vous pouvez voir le modèle dans .POD en utilisant cet outil.

    enter image description here

    Vous pouvez installer d'autres outils dans la liste, mais je n'ai utilisé que ces deux-là.

    Maintenant, après le processus d'installation (qui peut prendre un certain temps), vous devez ajouter le PVRGeoPOD AddOn au mélangeur. Vous pouvez trouver le fichier PVRGeoPOD.UserManual.PDF dans le dossier qui vient d'être installé, qui contient également les informations ci-dessous.

    • Dans le dossier du module complémentaire Blender, vous pouvez ouvrir blender python et exécuter la commande bpy.utils.script_paths("addons") pour voir le chemin d'accès à ce dossier.
    • Recherchez les fichiers complémentaires de Blender dans le dossier PVRGeoPOD, dans votre chemin d'installation. Lorsque vous voyez des fichiers comme libPVRGeoPOD.dylib et PVRGeoPODScript.py et 2 fichiers QT, arrêtez-vous là car il s'agit de l'emplacement. Copiez ces 4 fichiers et collez-les dans le dossier add-on de Blender.
    • Maintenant, ouvrez le mélangeur, choisissez Préférences , recherchez l'onglet Module complémentaire , recherchez et trouvez l'extension PVRGeoPOD et activez-la en cliquant sur la case à droite.
    • Maintenant, quittez et redémarrez le mélangeur, si nécessaire, et sélectionnez fichier-> exporter et voyez s'il existe une option appelée PVRGeoPOD (.pod/.h/.cpp), si oui, vous réussissez .

    Vous pouvez maintenant créer des modèles dans Blender et exporter ces modèles sous forme de fichiers .POD que Cocos3D comprend.

    Si vous utilisez d'autres outils de conception 3D comme Maya, 3D Max, cette extension PVRGeoPOD peut également leur être ajoutée. Il suffit de voir le PDF je l'ai mentionné ci-dessus.

Utilisation dans le projet

  1. La procédure étape par étape est donnée ci-dessous.

    Créez votre modèle dans Blender (.blend) et exportez-le sous forme de fichier .POD. Lorsque vous exportez, je sélectionne normalement les options suivantes

    • Type primitif - Liste des triangles indexés
    • Onglet Matériau - Vérifier l'option d'exportation du matériau

    et reste je l'ai laissé par défaut.

  2. Créez un nouveau projet dans XCode, choisissez le modèle Cocos3D.
  3. Ajoutez les fichiers .POD à votre projet. Si vous êtes un modèle texturé, ajoutez également cette texture à votre projet.
  4. Le projet de modèle lui-même contient un fichier HelloWorld.POD, vous pouvez remplacer cette ligne par votre fichier .POD afin que votre modèle soit visible.

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

Vous avez maintenant votre premier modèle 3D visible sur l'appareil iOS.

8
Krishnabhadra

Prise sans vergogne

J'ai fait un petit rendu AC3D pour l'iPhone. Lien >>

N'hésitez pas à l'essayer, une bibliothèque de démo pour le simulateur iPhone est disponible. Veuillez noter que les performances d'OpenGLES sur l'iPhone ne sont pas les mêmes que dans le simulateur.

Il utilise une étape d'optimisation et construit des tristrips et construit des vertexarrays finaux pour pouvoir s'exécuter sur l'iPhone.

Regardez un quickstart comment l'utiliser

6
epatel

Ce message est assez ancien et je pense qu'il existe maintenant une meilleure ressource pour faire ce que vous voulez. Je suis également assez débutant, mais après avoir fait quelques recherches, j'ai trouvé ce lien le plus utile:

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

Il explique glkit qui devrait faciliter la gestion d'OpenGL et comprend également un joli didacticiel sur la façon d'interagir avec Blender.

2
Lesswire

Je joue avec le développement iPhone pour un peu de plaisir et j'ai acheté Beginning iPhone Development par Dave Mark et Jeff LaMarche (ISBN13: 978-1-4302-1626-1) et j'aime travailler à travers les chapitres. J'ai un arrière-plan Delphi Win32 avec un peu de .NET et donc l'objectif C est très nouveau pour moi.

L'un des chapitres porte sur OpenGL et Quartz qui peuvent vous intéresser. Je ne suis pas encore allé jusque-là, donc je ne peux pas vraiment commenter son utilité, mais le style d'écriture est très accessible et il est bien rythmé (pour moi en tout cas).

Les premiers chapitres expliquent exactement comment démarrer une course à pied avec une bonne introduction à Xcode et InterfaceBuilder.

1
Simon Temlett

Pour quoi que ce soit sur iOS 8 ou version ultérieure, la réponse est SceneKit. SceneKit rendra les fichiers Collada (DAE). Tout package de modélisation décent (par exemple Cheetah, Blender) devrait exporter un fichier DAE - c'est un format portable documenté en XML (bien que xCode les compile au format binaire pour économiser de l'espace).

1
Airsource Ltd

2 bons sdks 3d pour iphone:

sio2interactive et oolong.

Le sio2interactive a d'excellents tutoriels vidéo et src sur leur site. Il vous aidera à exporter et à rendre le mélangeur et le modèle - vous permettra d'accéder au développement du jeu. Le src est tout en c pour sio2 et le code est très bien commenté. C'est un excellent endroit pour commencer à apprendre la 3D et les opengles. L'exportation de Blender vers sio2 est WYSIWYG.

En faisant tout cela à partir de zéro, vous devrez savoir comment exporter et importer les modèles vous-même. Donc, deux excellentes bibliothèques pour quelqu'un qui commence.

0
wto

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

Définissez simplement les chemins vers les obj, mt et textures.

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

Après cela, vous créez un T3DObject avec le T3DModelPathInfo et l'ajoutez au T3DRenderController.

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

ps: Divulgation que je fais partie de l'équipe Emcore3D

0
Jyswee