informacion[arroba]academiaandroid.com +34 958084455

Uso de OpenGL ES en Android

Post Series: Gráficos 2D-3D en Android: OpenGL (II)

Vamos a seguir conociendo características de la librería gráfica OpenGL, y qué proyectos podemos realizar con ella en Android. Para los que no estén familiarizados con esta API gráfica, les recomendamos que consulten nuestra anterior serie de tutoriales sobre OpenGL

En esta nueva serie de publicaciones trataremos los siguientes temas:

  • Versiones OpenGL ES y dispositivos.
  • Herramientas complementarias a OpenGL ES.
  • Errores comunes al estudiar OpenGL ES.
  • Tipos de Primitivas.
  • Iluminación en objetos 3D.
  • Ejercicio práctico.

Versiones OpenGL ES y compatibilidad con dispositivos Android

La versión de Android  instalada en un dispositivo condiciona la versión que puede utilizarse de OpenGL. Como vemos en el siguiente gráfico con la actual distribución de versiones Android en el mercado (Noviembre 2014), unas tres cuartas partes soportan la versión OpenGL 2.0 (o inferiores) y los restantes son compatibles con la 3.0. Los dispositivos que solo soportaban la versión OpenGL 1.1 ya han desaparecido en la práctica, por lo que a día de hoy, todos son compatibles con la 2.0

Versiones OpenGL compatibles con dispositivos Android actuales

Versión OpenGL ES % dispositivos Android
 2.0 74,7%
3.0 25,3%

Fuente: http://developer.android.com/about/dashboards/index.html#OpenGL (datos recogidos durante los primeros 7 días del mes de Noviembre de 2014)

Para declarar la versión utilizada en nuestra aplicación, es necesario utilizar el atributo android:glEsVersion  en el elemento <uses-feature> . También es posible utilizar el elemento <supports-gl-texture>  para declarar los formatos de compresión de GL que se utilizan en la aplicación.

Herramientas complementarias a OpenGL ES

En este apartado, revisaremos las principales alternativas existentes para el diseño de gráficos en la plataforma Android.

Kivy

Librería gráfica Open Source para el desarrollo rápido de aplicaciones. Utiliza el lenguaje de programación interpretado Python.

logo kivy

Características:

  • Es multiplataforma (Linux, Windows, OS X, IOS y Android).
  • Bajo licencia MIT (Massachusetts Institute of Technology ) que permite la modificación del código fuente, en versiones a partir de la 1.7.2. Para versiones anteriores utiliza licencia LGPL (permite compartir y modificar el código fuente).
  • API con gran documentación.
  • Motor gráfico construido sobre OpenGL 2.0.
  • Implementa un kit de herramientas con más de 20 widgets extensibles.

Página oficial de Kivy: http://kivy.org/#home

Qt Quick QML

Logo Q quickEsta librería gráfica Kermite el desarrollo de aplicaciones, implementando herramientas que simplifican la creación de aplicaciones e interfaces de usuario para diferentes entornos (escritorio, embebidas o móviles). Utiliza el lenguaje de programación orientado a objetos C++ o QML, además de combinarlos con Javascript y CSS (hojas de estilo en cascada para definir la presentación de documentos escritos en HTML o XML). Se desarrollan como un proyecto de código abierto.

Características:

Página oficial de Qt Quick QML: http://qt-project.org/

MoSync SDK

Logo MoSyncKit de desarrollo de software, de código abierto, que facilita el desarrollo de aplicaciones para las diferentes plataformas móviles, a partir de un único código base. Utiliza como lenguajes de programación C / C++ (programación estructurada y orientada a objetos respectivamente) o HTML 5 / Javascript (lenguaje de marcas y lenguaje interpretado respectivamente). Además, puede combinar ambos lenguajes para la creación de aplicaciones híbridas.
Características:

  • Es multiplataforma (es capaz de crear y compilar aplicaciones de hasta 9 plataformas diferentes a la vez).
  • Documentación muy completa
  • Conjunto de APIs, que permite el acceso a numerosos recursos de dispositivos móviles actuales (contactos, cámaras, gráficos etc.).
  • Soporta OpenGL 1.0/2.0.

Página oficial de MoSync SDK: http://www.mosync.com/sdk

Errores comunes al estudiar OpenGL ES

En este punto, nos centraremos en exponer los errores conceptuales más comunes, a la hora de entender en qué consiste OpenGL ES.

  • No es un lenguaje de programación, aunque es compatible con la mayoría de ellos.
  • No es un programa para diseño gráfico, ya que sólo permite crear formas primitivas.
  • No es un motor gráfico (a diferencia de DirectX), ya que no permite cargar recursos o gestionar escenas.
  • No es un motor de videojuegos, ya que no gestiona recursos de audio o físicas.
  • No es un gestor de entornos, ya que no permite detectar colisiones o seleccionar objetos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *