ventajas tener desventajas defectos comprar beneficios adquirir iphone ios opengl-es core-graphics

tener - ventajas y desventajas de adquirir un iphone



Ventajas de usar Core Graphics (2)

Básicamente, usa OpenGL si estás haciendo un juego. De lo contrario, use CoreGraphics. CoreGraphics te permite hacer cosas simples integradas en tu código de UI normal.

Creando animaciones de Vista simple. -> CG

Crear algunos objetos visuales atractivos (Gráficos como Core Plot, por ejemplo, objetos animados, etc.). -> CG

Tiempo consumido (tanto de aprendizaje como de implementación) -> OpenGL y CG son difíciles al principio.

Juegos 2D simples -> OpenGL

Juegos 2D complejos -> OpenGL

Juegos 3D -> OpenGL

Código de mantenimiento ad también código más limpio. -> irrelevante

Me gustaría saber qué tipo de ventajas obtengo del uso de Core Graphics en lugar de Open GL ES. Mi pregunta principal está basada en esto:

  • Creando animaciones de Vista simple.
  • Crear algunos objetos visuales atractivos (Gráficos como Core Plot, por ejemplo, objetos animados, etc.).
  • Tiempo consumido (tanto de aprendizaje como de implementación)
  • Juegos 2D simples
  • Juegos 2D complejos
  • Juegos 3D
  • Código de mantenimiento ad también código más limpio.
  • Integración más fácil con otros elementos de la interfaz de usuario.

Gracias.


Primero, quiero aclarar un poco la terminología aquí. Cuando las personas hablan de Core Graphics, generalmente se están refiriendo al dibujo en 2D de Quartz, que es una API de dibujo basada en vectores bidimensionales. Se utiliza para dibujar elementos vectoriales en la pantalla o en contextos fuera de la pantalla, como archivos PDF. Core Animation es responsable de la animación, el diseño y algunos efectos tridimensionales limitados que involucran capas rectangulares y elementos de la interfaz de usuario. OpenGL ES es una API de nivel inferior para hablar con el hardware de gráficos en dispositivos iOS para el dibujo en 2-D y 3-D.

Está haciendo mucho en su pregunta, y el juicio sobre qué es lo mejor en cada situación es subjetivo y depende completamente del desarrollador y de sus necesidades particulares. Sin embargo, puedo proporcionar algunos consejos generales.

En general, una recomendación que verá en la documentación de Apple y en las presentaciones de los ingenieros es que lo mejor es utilizar el más alto nivel de abstracción que resuelve su problema en particular.

Si solo necesita dibujar una interfaz de usuario 2D, lo primero que debe hacer es implementar esto utilizando los elementos de UIKit proporcionados por Apple. Si no tienen la capacidad que necesita, cree UIViews personalizados. Si está diseñando código multiplataforma para Mac-iOS (como en el marco de Trazado central), puede desplegar a utilizar CALayers de Animación Core personalizados. Cada paso hacia abajo en este proceso requiere que escriba más código para manejar las cosas que el nivel anterior hizo por usted.

Puedes hacer una cantidad sorprendente de cosas con Core Animation, con bastante buen rendimiento. Esto no solo se limita a animaciones en 2-D, sino que también puede extenderse a un simple trabajo 3-D.

OpenGL ES se encuentra debajo del dibujo de todo lo que ve en la pantalla para un dispositivo iOS, aunque esto no está expuesto a usted. Como tal, proporciona la menor abstracción para el renderizado en pantalla, y requiere que escriba la mayor cantidad de código para hacer algo. Sin embargo, puede ser necesario en situaciones en las que desee extraer el máximo rendimiento de la pantalla 2D (por ejemplo, en un juego de acción) o para representar objetos y entornos tridimensionales reales.

De nuevo, tiendo a recomendar que las personas comiencen con el nivel más alto de abstracción cuando escriben una aplicación, y solo se despliegan cuando descubren que no pueden hacer algo o que el rendimiento no está dentro de la especificación que intentan alcanzar. Menos líneas de código hacen que las aplicaciones sean más fáciles de escribir, depurar y mantener.

Dicho esto, hay algunos buenos marcos que se han desarrollado para abstraer OpenGL ES, como Cocos2D y Unity 3D, que podrían facilitar el trabajo con OpenGL ES en muchas situaciones. Para cada caso, deberá evaluar qué tiene sentido para las necesidades particulares de su aplicación.