iphone - Desarrollo creativo de OpenGL ES, OpenFrameworks, Cinder y IOS.
opengl-es (5)
Ahora, tanto Cinder como OF son totalmente compatibles con la plataforma iOS y puede usarlos fácilmente en una aplicación iOS.
También tenga en cuenta que estos marcos están diseñados especialmente para diseñadores y artistas / codificadores creativos en mente, pero OpenGL es un estándar técnico para lidiar con hardware gráfico.
Estoy en medio de una difícil elección. Me gustaría aprender un idioma que me ayude a crear aplicaciones con un fuerte componente artístico / creativo / gráfico y usarlo para proyectos comerciales para mis clientes.
Mi primera elección fue OpenGL ES, lo considero la forma "estándar" de pasar. Pero, mientras tanto, descubrí este sitio: http://www.creativeapplications.net/ donde encontré muchas aplicaciones geniales para ios, para la mayoría creadas con OpenFramewors y Cinder .
Mi pregunta es: ¿por qué elegir este 2 "contenedor" en lugar de OpenGL? Necesito entender los beneficios y desventajas.
No estoy seguro de que al usar estos marcos se pueda mezclar de una manera fácil (y estándar) (como para OpenGL) UIKit / Cocoa and Graphics. En este momento todavía prefiero OpenGL porque sé que esta es la forma sugerida por Apple (quiero decir ... propuesta por Apple) y estoy seguro de que también puedo aprovecharla para mi cliente. Si bien no estoy seguro de que el uso de OF y Cinder puedo administrar completamente UIKit y Cocoa sin trucos.
Creo que la principal ventaja de elegir OF y Cinder es que puedes enfocarte en tu creación mejor que perder muchas horas con la biblioteca OpenGL. Cinder incluso incluye descarga de imágenes y tratamiento de memoria. Sin embargo, debe tener paciencia porque estos marcos se están importando a la plataforma iOS en este momento.
¡En algunos meses o años, todos usarán estos marcos que abstraen todo lo que hay detrás de la programación de gráficos para brindarles todo el potencial y el tiempo para hacer arte!
Los beneficios de usar un marco son, según lo establecido por Ruben, que no estás reinventando la rueda. OpenGL no viene con muchas clases que normalmente necesitaría: vectores, matrices, cámaras, color, imágenes, etc. y los métodos que necesitará para trabajar con ellos: normalizar, aritmética, producto cruzado, etc.
Por supuesto, puedes implementar todo esto en OpenGL, pero si alguien lo ha hecho antes, ¿por qué no aprovechar eso? La elección del marco o la biblioteca dependerá de la implementación que prefiera. OF hará las cosas de manera diferente a Cinder, que es diferente a otra biblioteca.
No tienes que usar todo lo que proporciona un marco. Si no le gusta la aplicación base (como Cinder, por ejemplo), puede crear sus propios contextos y cuáles no, y simplemente usar las bibliotecas de matemáticas 3d del marco, su biblioteca de imágenes o cualquier otra parte que desee. Solo incluye los encabezados relevantes que quieras.
Alternativamente, puedes usar una biblioteca matemática en 3D si así lo deseas y eliminar los marcos por completo. Esto le brinda más control sobre el flujo de procesamiento y también reduce potencialmente el tamaño de la aplicación.
En última instancia, lo que elija dependerá de sus características y de su preferencia por un estilo en particular. Yo sugeriría ir con un marco o biblioteca con el que se sienta cómodo y que haya sido utilizado en producción (a menos que solo esté jugando con cosas). La documentación también es importante. Si los documentos / recursos no son muy buenos, evitaría usar algo.
Por supuesto, si quieres aprender los entresijos (nunca es una mala idea), escribe tu propia biblioteca.
Nota: Soy el autor de este framework.
Pasé algún tiempo creando Rend, un marco OpenGL ES 2.0 basado en Objective-C para iOS. Es liviano y se enfoca en la representación pura, lo que puede ser apropiado para algunos proyectos.
Además, si está creando su propio marco, puede usarlo como inspiración y fragmentos de código.
Si no te pierdes nada, creo que estarías bien solo con OpenGL.
Cinder ofrece algunas golosinas adicionales, consulte http://libcinder.org/features/ . Tal vez la triangulación, la carga de fuentes del sistema, el soporte de matriz, etc. puedan ser interesantes para usted en el futuro.
Además, Tinderbox de Cinder hace que crear nuevos proyectos sea muy fácil.