¿Quieres mostrar un model 3D en el iPhone: cómo empezar?

Quiero mostrar y rotar un solo model 3D, preferiblemente con textura, en el iPhone. No tiene que acercar ni alejar, ni tener un background, ni nada.

Tengo lo siguiente:

  • un iPhone
  • una MacBook
  • el iPhone SDK
  • Licuadora

Mi base de conocimiento:

  • Puedo hacer models 3D en varios progtwigs 3D (me siento más cómodo con 3D Studio Max, que una vez tomé un curso, pero he usado otros)
  • Conocimiento general de la progtwigción de procedimientos desde hace años (QuickBasic – ¡Soy viejo!)
  • El conocimiento de los principiantes de la progtwigción orientada a objects pasa de simples tutoriales de Java y C # (libro de Head Start C # y el curso de introducción de mi esposa a OOP que usó Java)
  • He logrado mostrar un model texturizado en 3D y hacerlo girar usando un tutorial en C # I salí de la networking (no solo copié y pegué, entiendo básicamente cómo funciona) y la biblioteca de desarrollo de juegos de XNA, usando Visual Studio en Ventanas

Lo que no sé:

  • Mucho sobre el objective C
  • Cualquier cosa sobre OpenGL o OpenGL ES, que aparentemente usa el iPhone
  • Todo sobre XCode

¡Mi principal problema es que no sé por dónde empezar! Todos los libros de iPhone que encontré parecen ser sobre la creación de aplicaciones GUI, no aplicaciones OpenGL. Encontré un libro de OpenGL, pero no sé cuánto, si corresponde, se aplica al desarrollo de iPhone. Y encuentro que la syntax del Objetivo C es un tanto confusa, con el extraño nombre del método nested, cosas como "id" que no tienen sentido y el miedo de pensar que tengo que hacer la administración de la memory manual.

¿Dónde es el mejor lugar para comenzar? No pude encontrar tutoriales para este tipo de cosas, pero tal vez mi Google-Fu es débil. O tal vez debería comenzar con el aprendizaje del Objetivo C? Conozco libros como Aaron Hillgrass ', pero también he leído que están desactualizados y que gran parte del código de ejemplo no funciona en el iPhone SDK, además parece estar orientado hacia el paradigma Modelo-Vista-Controlador que no funciona Parece adecuado para aplicaciones 3D.

Básicamente estoy confundido sobre cuáles deberían ser mis primeros pasos.

Probablemente debería comenzar con algunas aplicaciones / tutoriales de iphone más simples, solo para get su base en obj-c y xcode, etc.

Para eso, recomiendo el libro de iphone del progtwigdor pragmático, que tiene suficiente información para comenzar (comencé sin tener conocimiento de xcode, obj-c, iphone o mac y llegué a una aplicación que funcionaba bastante rápido, usando principalmente esto). Sin embargo, debo agregar que vengo de un background bastante bueno en C / C ++ y Java.

Para su proyecto particular, quizás eche un vistazo a esta respuesta que hace reference a una aplicación 3D de código abierto desde la que puede ver y get sugerencias.

Una vez más, si puedo conectar mi propio trabajo, he escrito una publicación sobre las cosas que aprendí al desarrollar una aplicación OpenGL ES en el iPhone. Esa aplicación, Molecules (referida por frankodwyer), es de código abierto y tengo una descripción de algunos de los otros problemas difíciles que encontré al desarrollarlo. La aplicación genera models 3-D y le permite rotar y escalar con sus dedos, lo que suena cerca de sus necesidades. Puede download el código, comstackrlo y ejecutarlo en su escritorio en cuestión de minutos. Si te unes al Progtwig de desarrolladores de iPhone, puedes instalarlo en tu dispositivo.

Cuando se trata de cargar objects, Bill Dudney está trabajando en un cargador Wavefront OBJ para el iPhone que podría tener en sus files Blender, en caso de que sean exportables en ese formatting. Aún no he hecho mucho trabajo de textura en el iPhone, pero parece que su ejemplo ya funciona.

En general, descubro que aprendiendo con el ejemplo y saltando al desarrollo de algunas aplicaciones pequeñas y específicas (que nunca podrás publicar) son las que funcionan para mí. Trate de ajustar los ejemplos mencionados anteriormente y vea lo que sucede. Debería poder leer el código de Objective-C en esos ejemplos y comenzar a tener una idea de lo que están haciendo.

Aunque el libro de Hillegass (la tercera edición acaba de salir y está actualizado) se centra en la Mac, los fundamentos de Cacao que enseña siguen siendo relevantes para el iPhone. El patrón de layout de MVC le sirve tan bien en el iPhone como en la Mac. De hecho, me desvié de ese patrón en algunos lugares dentro de Molecules, y lamento esa decisión porque esas secciones de la aplicación se convirtieron en un desastre. El libro es fácil de leer y vale la pena.

Este es un hilo antiguo y estoy terriblemente tarde. Pero aún voy a publicar mis 2 peniques aquí.

Una vista previa de Sneak

Antes de entrar a la bestia, esta es mi configuration.

yo suelo

  1. Blender para crear models en 3D. (Puedes usar Maya o 3D Max, te diré cómo exportar el model para Blender, los mismos trabajos para 3D Max y Maya).
  2. Cocos3D juego de motor.
  3. La extensión de licuadora PVRGeoPOD de Imagination Technology para convertir el model de licuadora al formatting que entiende Cocos3D. Puede ver que el enlace descarga un file de instalador que, a su vez, descarga todo el SDK. No puedo ver una manera fácil de download solo la extensión de la licuadora.

Entonces, si no tiene la intención de usar Cocos3D , puede omitir esta respuesta y ejecutar por su dinero.

Configuración inicial

  1. Instale la licuadora .

    No voy a avergonzarte entrando en detalles.

  2. Descargar Cocos3D. .

    Cuando escribo esto, la versión actual es 0.7.2.

  3. Descargar Cocos2D.

    Cocos3D está escrito en la parte superior de popular Cocos2D, un popular marco de juego 2D. Importante, piense que hay que tener en count que la versión de Cocos2D 2.x ya está ahí y es estable. Pero Cocos3D solo funciona con la versión Cocos2d 1.x.

    Cuando descomprimes la fuente que descargaste, encontrarás un file README dentro y dice específicamente:

    TENGA EN CUENTA QUE cocos3d 0.7.2 NO ES COMPATIBLE CON cocos2d 2.x. ASEGÚRESE DE DESCARGAR cocos2d 1.x PARA USO CON cocos3d . (El énfasis es mío)

    El file README indica claramente el procedimiento de installation. Después de la installation, obtendrá una bonita plantilla de proyecto Cocos3D en XCode.

  4. Agregue la extensión PVRGeoPOD a Blender.

    Esto requiere alguna explicación. Cuando ejecuta el instalador PVRGeoPOD, una pantalla muestra qué y qué características deben instalarse. Solo he seleccionado

    • PVRGeoPOD : para convertir mis models en mi file .blend al formatting .POD que entiende Cocos3D

    • PVRShaman : puedes ver el model dentro de .POD usando esta herramienta.

    introduzca la descripción de la imagen aquí

    Puede instalar otras herramientas en la list, pero solo usé estas dos.

    Ahora, después del process de installation (que puede llevar algún time), debe agregar el PVRGeoPOD AddOn a la licuadora. Puede encontrar el file PVRGeoPOD.UserManual.PDF en la carpeta recién instalada, que también contiene información a continuación.

    • Busque la carpeta Complemento Blender, puede abrir la console de Blender python y ejecutar el command bpy.utils.script_paths("addons") para ver la ruta a esta carpeta.
    • Encuentre los files complementarios de la licuadora dentro de la carpeta PVRGeoPOD, en su ruta de installation. Cuando vea files como libPVRGeoPOD.dylib y PVRGeoPODScript.py y 2 files QT, deténgase allí ya que es la location. Copie estos 4 files y péguelos en el blender add en la carpeta.
    • Ahora abre la licuadora, elige Preferences , encuentra la pestaña Complemento , busca y encuentra la extensión PVRGeoPOD y habilítala haciendo clic en la checkbox de la derecha.
    • Ahora Salga y reinicie la licuadora, si es necesario, y select file-> export y vea si hay una opción llamada PVRGeoPOD (.pod / .h / .cpp) , si es así, tiene éxito.

    Ahora puede crear models en la licuadora y exportar estos models como files .POD que entiende Cocos3D.

    Si está utilizando otras herramientas de layout 3D como Maya, 3D Max, esta extensión PVRGeoPOD también se puede agregar a ellas. Solo vea el PDF que mencioné anteriormente.

Usando en el proyecto

  1. El procedimiento paso a paso se detalla a continuación.

    Cree su model en la licuadora (.blend) y exporte como file .POD. Cuando exportas normalmente selecciono las siguientes opciones

    • Tipo primitivo: list del triángulo indexado
    • Ficha Material: verifique la opción de material de export

    y descanso lo dejé como pnetworkingeterminado.

  2. Cree un nuevo proyecto en XCode, elija la plantilla Cocos3D.
  3. Agregue los files .POD a su proyecto. Si el suyo es un model texturado, agregue esa textura a su proyecto también.
  4. El proyecto de plantilla en sí contiene un file HelloWorld.POD , puede replace esa línea con su file .POD para que su model sea visible.

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

Ahora tiene su primer model 3D visible en el dispositivo iOS.

Conector descarado

He hecho un pequeño renderizador AC3D para el iPhone. Enlace >>

No dude en probarlo, hay disponible una demo lib para el simulador de iPhone. Tenga en count que el performance de OpenGLES en el iPhone no es el mismo que en el Simulador.

Utiliza una etapa de optimization y construye tristrips y construye vértices finales para poder ejecutarse en el iPhone.

Mira un inicio rápido de cómo usarlo

Esta publicación es bastante antigua y creo que ahora existe un recurso mejor para hacer lo que quieras. También soy bastante principiante, pero después de hacer un poco de investigación, encontré este linke el más útil:

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

Explica glkit que debería facilitar el event handling OpenGL y también incluye un buen tutorial sobre cómo interactuar con Blender.

Estoy teniendo una obra de teatro con el desarrollo de iPhone para un poco de diversión y compré Beginning iPhone Development por Dave Mark y Jeff LaMarche (ISBN13: 978-1-4302-1626-1) y estoy disfrutando trabajando en los capítulos. Tengo un background Win32 Delphi con un poco de .NET y el Objetivo C es muy nuevo para mí.

Uno de los capítulos está en OpenGL y Quartz, que puede ser de su interés. Aún no he llegado tan lejos, así que realmente no puedo comentar lo útil que será para ti, pero el estilo de escritura es muy accesible y su ritmo es bueno (para mí de todos modos).

Los capítulos iniciales explican exactamente cómo comenzar una carrera con una buena introducción a Xcode e InterfaceBuilder.

Para cualquier cosa en iOS 8 o posterior, la respuesta es SceneKit. SceneKit mostrará los files Collada (DAE). Cualquier package de modelado decente (por ejemplo, Cheetah, Blender) debe exportar un file DAE; es un formatting portátil documentado en XML (aunque xCode los comstack en formatting binary para ahorrar espacio).

2 buenos sdks 3d para iphone:

sio2interactive y oolong.

El sio2interactive tiene excelentes tutoriales de video y src en su sitio. Le ayudará con la licuadora y el model de export y procesamiento, lo lleva directamente al desarrollo del juego. El src está todo en c para sio2 y el código se comenta muy bien. Es un gran lugar para comenzar a aprender 3d y resolverlo. Blender a sio2 export es WYSIWYG.

Haciendo todo esto desde cero y tendrás que saber cómo exportar e importar los models tú mismo. Entonces, ambas libs excelentes para alguien que comenzó.