contacto[arroba]digitallearning.es

Proyecto Android: construcción formas primitivas con OpenGL

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

En este tutorial vamos a desarrollar un proyecto Android donde construiremos diversas formas primitivas 2D (cuadrado y triángulo) y 3D (cubo y pirámide), mediante el uso de la API OpenGL ES.

En la siguiente imagen puedes ver la lógica de esta Aplicación ejemplo:

Lógica de la aplicación

Puedes descargar la imagen ampliada en el anterior tutorial

 

Veamos la estructura del proyecto:

Estructura proyecto Graficos 2D y 3D

 

En el siguiente ejemplo, se construyen diferentes formas geométricas, desde estructuras primitivas en 2D, hasta formas 3D en rotación. Para este proyecto hemos necesitado los siguientes elementos (al crear varias formas, sólo nos detendremos en el gráfico Cubo 3D):

UI App Android pintar gráficos

Una clase principal llamada MainActivity, que heredará de la clase base Activity, donde se definen los elementos enlazados con sus recursos a nivel de layout, además desde esta Activity se realiza la llamada a una nueva View, encargada de construir los objetos gráficos. En esta clase se definen los siguientes componentes:

  • Un componente RadioGroup formado por dos RadioButton para renderizar formas primitivas en 2D:UI AppA ndroid
  • Un componente RadioGroup formado por dos RadioButton para renderizar gráficos en 3D:UI Apps Android gráficos
  • Una clase llamada GLRender, que implementará la interfaz Renderer, encargada de construir la vista dónde se representará el objeto, a partir de los métodos que define onSurfaceCreated() , onDrawFrame() y OnSurfaceChanged().
  • Una clase llamada Cubo3D dónde se definen los parámetros del objeto 3D que será invocado desde la clase GLRender:
    • Número de caras.
    • Número de vértices.
    • Colores de las diferentes caras.

FormasPrimitivas/src/com.academiaandroid.formasprimitivas/MainActivity.java

Clase principal, que heredará de la clase base Activity, encargada de implementar la lógica de selección de la figura a representar, invocando a la vista que será construida desde la clase GLRender:

 

 

FormasPrimitivas/src/com.academiaandroid.formasprimitivas/GLRender.java

 

Crearemos una nueva clase llamada GLRender, que implementará la interfaz Renderer. Al implementar dicha interfaz, deberán sobrescribirse tres métodos encargados de definir la vista donde se mostrará el objeto gráfico:

 

Dentro del constructor se crean las diferentes instancias de las formas a representar:

 

Por último se sobrescriben los métodos implementados por la interfaz Renderer, encargados de la construcción y actualización de la vista:

 

Cubo creado con OpenGL

Se crea una clase llamada cubo3D, dónde se establecen los diferentes parámetros de coordenadas, tanto de los vértices que representa la figura, como los colores asignados a cada una de sus caras, para finalmente implementar el método draw(GL10 gl), encargado de pintar la figura .

 

FormasPrimitivas/res/layout/activity_main.xml

Tutorial_OpenGL_1-img11
Se definen dos componente de tipo RadioGroup, que estarán formados por dos componentes de tipo RadioButton cada uno, encargados de permitir al usuario seleccionar qué forma se desea mostrar en la vista:

 

This Post Has One Comment

  1. […] En este tutorial vamos a desarrollar un proyecto Android, donde a partir de objetos 3D representados, se establecerán los parámetros de iluminación, además de implementar eventos de interacción con el usuario cómo la pantalla táctil o el acelerómetro. Para este ejemplo, sólo se hará hincapié en las modificaciones que hagamos respecto al primer caso práctico que publicamos sobre OpenGL. […]

Comments are closed.