support - ¿Desea mostrar un modelo 3D en el iPhone? ¿Cómo comenzar?
support.apple.com/iphone/restore en español (8)
Quiero mostrar y rotar un único modelo 3D, preferiblemente texturizado, en el iPhone. No tiene que acercarse ni alejarse, ni tener fondo, ni nada.
Tengo lo siguiente:
- un iPhone
- una MacBook
- el SDK de iPhone
- Licuadora
Mi base de conocimiento:
- Puedo hacer modelos en 3D en varios programas en 3D (estoy más cómodo con 3D Studio Max, que una vez hice un curso, pero he usado otros)
- Conocimiento general de la programación de procedimientos de hace años (QuickBasic - ¡Soy viejo!)
- Conocimiento del principiante de la programación orientada a objetos a través de simples tutoriales de Java y C # (libro de Head Start C # y la introducción de mi esposa al curso de OOP que usó Java)
- He logrado mostrar un modelo 3D con textura y girarlo usando un tutorial en C # Salí de la red (no copié y pegué, básicamente entiendo cómo funciona) y la biblioteca de desarrollo de juegos XNA, usando Visual Studio en Windows.
Lo que no sé:
- Mucho sobre Objective C
- Cualquier cosa sobre OpenGL o OpenGL ES, que aparentemente el iPhone usa
- Cualquier cosa sobre XCode
Mi problema principal 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 de aplicaciones OpenGL. Encontré un libro de OpenGL, pero no sé cuánto, si corresponde, se aplica al desarrollo de iPhone. Y encuentro que la sintaxis de Objective C es algo confusa, con el extraño nombre anidado de nombres, cosas como "id" que no tienen sentido, y el pensamiento aterrador de que tengo que hacer una gestión manual de la memoria.
¿Dónde está el mejor lugar para comenzar? No pude encontrar ningún tutorial para este tipo de cosas, pero tal vez mi Google-Fu es débil. ¿O tal vez debería comenzar aprendiendo Objective C? Sé de libros como Aaron Hillgrass, pero también he leído que están desactualizados y que gran parte del código de muestra no funciona en el SDK de iPhone, además parece estar orientado al paradigma Modelo-Vista-Controlador que no funciona parece que es adecuado para aplicaciones 3D.
Básicamente, estoy confundido acerca de cuáles deberían ser mis primeros pasos.
2 buenos sdks en 3D para iphone:
sio2interactive y oolong.
El sio2interactive tiene excelentes tutoriales de video y src en su sitio. Ayudará con Blender y el modelo de exportación y renderización, lo que le permitirá realizar el 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 abrir. La exportación de Blender a sio2 es WYSIWYG.
Haciendo todo esto desde cero y usted tendrá que saber cómo exportar e importar los modelos usted mismo. Así que ambas son geniales para alguien que comienza.
Esta publicación es bastante antigua y creo que ahora existe un mejor recurso para hacer lo que quieres. También soy bastante principiante, pero después de hacer algunas investigaciones 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 manejo de OpenGL y también incluye un buen tutorial sobre cómo interactuar con Blender.
Este es un hilo antiguo y estoy terriblemente tarde. Pero aún voy a publicar mis 2 peniques aquí.
Una vista previa
Antes de entrar a la bestia, esta es mi configuración.
yo suelo
- Blender para crear modelos 3D. (Puede usar Maya o 3D Max, le diré cómo exportar el modelo para Blender, lo mismo funciona para 3D Max y Maya).
- Cocos3D juego Cocos3D .
- La extensión del mezclador PVRGeoPOD de Imagination Technology para convertir el modelo de la licuadora al formato que Cocos3D entiende. Puede ver que el enlace descarga un archivo instalador que a su vez descarga todo el SDK. No veo una manera fácil de descargar la extensión de la licuadora sola.
Entonces, si no tiene la intención de usar Cocos3D , puede omitir esta respuesta y correr por su dinero.
Configuración inicial
Instala la blender .
No voy a avergonzarte yendo a detalles.
Descargar Cocos3D. .
Cuando escribo esto, la versión actual es 0.7.2.
Descargar Cocos2D.
Cocos3D está escrito sobre el popular Cocos2D, un popular framework de juegos en 2D. Importante pensar en observar aquí es que, la versión Cocos2D 2.x ya está allí y es estable. Pero Cocos3D solo funciona con la versión Cocos2d 1.x.
Cuando descomprimes la fuente que descargaste, encontrarás un archivo README dentro y dice específicamente,
TEN EN CUENTA QUE cocos3d 0.7.2 NO ES COMPATIBLE CON cocos2d 2.x. ASEGÚRESE DE DESCARGAR cocos2d 1.x PARA EL USO CON cocos3d . (Énfasis mío)
El archivo README indica claramente el procedimiento de instalación. Después de la instalación, obtendrá una buena plantilla de proyecto Cocos3D en XCode.
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 seleccioné
PVRGeoPOD - Para convertir mis modelos en mi archivo .blend al formato .POD que Cocos3D entiende
PVRShaman : puede ver el modelo dentro de .POD usando esta herramienta.
Puede instalar otras herramientas en la lista, pero solo utilicé estas dos.
Ahora, después del proceso de instalación (que puede llevar un tiempo), debe agregar el complemento PVRGeoPOD a la licuadora. Puede encontrar el archivo PVRGeoPOD.UserManual.PDF en la carpeta recién instalada, que también contiene la siguiente información.
- Encuentre la carpeta Blender Add-On, puede abrir la consola blender python y ejecutar el comando
bpy.utils.script_paths("addons")
para ver la ruta a esta carpeta. - Encuentre los archivos de complemento de la licuadora dentro de la carpeta PVRGeoPOD, en su ruta de instalación. Cuando vea archivos como libPVRGeoPOD.dylib y PVRGeoPODScript.py y 2 QTfiles, deténgase allí ya que esta es la ubicación. Copie estos 4 archivos y péguelos en la carpeta de agregar blender.
- Ahora abra blender, elija Preferencias , encuentre la pestaña Add-On , busque y encuentre la extensión PVRGeoPOD y habilítela haciendo clic en la casilla a la derecha.
- Ahora salga y reinicie Blender, si es necesario, y seleccione file-> export y vea si hay una opción llamada PVRGeoPOD (.pod / .h / .cpp) , si es así, tiene éxito.
Ahora puede crear modelos en Blender y exportar estos modelos como archivos .POD que Cocos3D entiende.
Si está utilizando otras herramientas de diseño 3D como Maya, 3D Max, esta extensión PVRGeoPOD también se puede agregar a ellas. Solo ve el PDF que mencioné arriba.
Usando en proyecto
El procedimiento paso a paso se da a continuación.
Crea tu modelo en blender (.blend) y expórtalo como archivo .POD. Cuando exporta, normalmente selecciono las siguientes opciones
- Tipo primitivo - Lista de triángulos indexados
- Pestaña Material - Verificar opción de material de exportación
y descanso lo dejé como predeterminado.
- Cree un nuevo proyecto en XCode, elija la plantilla Cocos3D.
- Agregue los archivos .POD a su proyecto. Si el suyo es un modelo con textura, agregue esa textura a su proyecto también.
El proyecto de plantilla en sí contiene un archivo HelloWorld.POD , puede reemplazar esa línea con su archivo .POD para que su modelo sea visible.
[self addContentFromPODFile: @"YourPODFileName.pod"];
Ahora tiene su primer modelo 3D visible en el dispositivo iOS.
Estoy teniendo un juego con el desarrollo de iPhone por 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 fondo Win32 Delphi con un poco de .NET, por lo que Objective C es muy nuevo para mí.
Uno de los capítulos está en OpenGL y Quartz que puede ser de su interés. Todavía no he llegado tan lejos, así que no puedo comentar sobre lo útil que será para usted, pero el estilo de escritura es muy accesible y tiene un buen ritmo (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 renderizará archivos Collada (DAE). Cualquier paquete de modelado decente (por ejemplo, Cheetah, Blender) debería exportar un archivo DAE; es un formato portátil documentado en XML (aunque xCode los compila en formato binario para ahorrar espacio).
Probablemente deberías comenzar con algunas aplicaciones / tutoriales de iPhone más simples, solo para ponerte de pie en obj-c y xcode, etc.
Por eso, recomiendo el libro de iphone del programador pragmático, que tiene suficiente información para comenzar (comencé sin ningún conocimiento de xcode, obj-c, iphone o mac y llegué a una aplicación en funcionamiento bastante rápido, usando principalmente esto). Sin embargo, debo agregar que provengo de una base bastante buena en C / C ++ y Java.
Para su proyecto en particular, tal vez eche un vistazo a this respuesta que se refiere a una aplicación de código abierto en 3D que puede ver y obtener 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 (a la que se refiere frankodwyer), es de código abierto y tengo un writeup sobre algunos de los otros asuntos difíciles que encontré al desarrollarlo. La aplicación genera modelos tridimensionales y le permite rotar y escalar con los dedos, lo que suena muy parecido a sus necesidades. Puede descargar el código, compilarlo y ejecutarlo en su escritorio en cuestión de minutos. Si te unes al programa para desarrolladores de iPhone, puedes instalarlo en tu dispositivo.
Cuando se trata de la carga de objetos, Bill Dudney está trabajando en un cargador Wavefront OBJ para el iPhone que podría ser capaz de tomar sus archivos Blender, en caso de que sean exportables en ese formato. Todavía no he trabajado mucho en texturas en el iPhone, pero parece que su ejemplo ya funciona.
En general, encuentro que aprender con el ejemplo y saltar al desarrollo de algunas aplicaciones pequeñas y específicas (que nunca podrás publicar) es lo que funciona para mí. Intente ajustar los ejemplos enumerados anteriormente y vea qué sucede. Debería poder leer el código Objective-C en esos ejemplos y comenzar a tener una idea de lo que están haciendo.
A pesar de que el libro de Hillegass (la tercera edición acaba de salir y está actualizado) se centra en la Mac, los fundamentos de Cocoa que enseña siguen siendo relevantes para el iPhone. El patrón de diseño 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 Moléculas, 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 su tiempo.
Enchufe desvergonzado
He hecho un pequeño procesador AC3D para el iPhone. Link>>
No dude en probarlo, hay una versión de demostración del simulador de iPhone disponible. Tenga en cuenta que el rendimiento de OpenGLES en el iPhone no es el mismo que en el simulador.
Utiliza una etapa de optimización y crea tristrips y crea vértices finales para poder ejecutar en el iPhone.
Mire un quickstart cómo usarlo