Skip to content

Primeros pasos con OpenGL

Gráficos 2D-3D en Android: OpenGL
1. Gráficos en Android: descripción de OpenGL
2. Primeros pasos con OpenGL
3. Proyecto Android: construcción formas primitivas con OpenGL
4. Videotutorial: generación formas básicas 2D y 3D con OpenGL en una App Android

Tras la introducción que hicimos a Open GL vamos a ver los pasos necesarios para procesar un objeto gráfico con OpenGL ES 1.0.

En primer lugar llamaremos con la sentencia «import» al package de la clase GLSurfaceView en nuestra Activity principal:

import android.opengl.GLSurfaceView;

Declaramos a nivel de clase GLSurfaceView y definimos la view que se mostrará en la Activity dentro del método onCreate():

 

Crearemos una nueva clase (en este ejemplo llamada DibujarForma) que implemente la interfaz Renderer, e importaremos los packages necesarios para dibujar un objeto gráfico. En este ejemplo se crearía una clase auxiliar (Triangulo), que define los parámetros de construcción del objeto:

 

Definimos el constructor de la clase con la instancia de la forma a dibujar:

 

Por último se implementan los métodos que construirán los objetos en la vista proporcionada:

 

Lógica de programación de formas geométricas

En el siguiente apartado nos centraremos en comprender los conceptos y terminología utilizada en la programación de objetos 2D y 3D.

En primer lugar, será necesario exponer la lógica de construcción de formas, tanto aquellas primitivas constituidas por 2D, como gráficos en 3D. Esta diferenciación entre un objeto 2D y un objeto 3D se establece a partir de la definición de sus coordenadas cartesianas, por lo que es necesario entender cómo se realiza la construcción de los diferentes vértices que forma un objeto 3D, y como diferenciarlos de objetos 2D.

Con el fin de comprender la creación y representación de objetos 2D y objetos 3D, mostraremos una serie de diagramas que permitan visualizar las principales diferencias entre ambas formas:

 

Coordenadas formas 2D y 3D

Como se puede apreciar en las comparativas de las formas 2D y 3D, y más concretamente en los valores asignados a los puntos o vértices, se asigna un valor diferente de 0 al eje de coordenadas Z en los objetos 3D.

(Nota: si quieres ver la imagen ampliada pincha en ella)

Ejemplo de asignación de coordenadas

Array de Coordenadas Imagen 1A:

Array de Coordenadas Imagen 1B:

 

Array de Coordenadas Imagen 2A:

 

Array de Coordenadas Imagen 2B:

 

Nota: hemos puesto ejemplos donde las coordenadas se simplifican a valores enteros (salvo en la cúspide de la pirámide). P.ej., si  el cuadrado tuviera lados de longitud ‘1’, como las caras del cubo, se puede ver que las  coordenadas X e Y de sus vértices serían ‘0.5’ , con distintos signos, según su posición

 

Aplicación ejemplo

En el siguiente tutorial desarrollaremos una aplicación que construya diferentes formas dependiendo de la opción seleccionada en el menú principal. En la siguiente imagen adelantamos la lógica de dicha aplicación:

Lógica de la aplicación

Si quieres descargar la imagen ampliada en formato pdf:

Download


Autor: José Antonio Gázquez – Academia Android

Esta entrada tiene 8 comentarios

  1. Hola,

    No entiendo bien las coordenadas de las imagenes 1B y 2B.

    No seria V(1,1,0) en 1B y V(1,0,-1) en 2B ?

    Un saludo – Bill

    1. Sí, vamos a revisar tanto las imágenes como las coordenadas que se han incluído en el código. Te contestamos en cuanto se haya hecho.
      Gracias por avisarnos

    2. Hemos actualizado la imagen porque efectivamente no se correspondía con las coordenadas que se representaban allí, ni en algunas partes de la definición que se hacía en el código.

      Disculpas por el error.

  2. Tampoco puedo ver los comentarios… Hay una verificacion antes de la publicacion de comentarios?

    1. Sí, filtramos antes el posible spam publicitario. Cualquier comentario sobre el contenido de los tutoriales o relacionados con la web son siempre aprobados.

  3. buen dia, como inicio todo el entorno de desarrollo en mi movil? es decir como instalo aplicacion y paquetes??

    1. Hola Yeisy,
      disculpa pero no tenemos un servicio de soporte como en nuestros cursos online, donde sí hay un tutor especializado que atiende todas las consultas de los alumnos. En estos contenidos estamos estudiando implementar algún servicio de ese tipo, pero hasta ese momento, lo más que podemos intentar atender es a los usuarios que se registran con nosotros (suscripción/acceso Premium) ya que además acceden a los contenidos/proyectos más avanzados donde pueden encontrar muchas de las respuestas
      En cualquier caso, por intentar orientarte, puedes probar a instalar Google USB Driver (Android SDK Tools) y activar opciones de desarrollo en dispositivo (Ajustes > Información del dispositivo y pulsar siete veces sobre el número de compilación a partir de versión 4.2)
      Esperamos que te sirva de ayuda. Saludos

Los comentarios están cerrados.

Volver arriba
Esta web usa cookies para su correcto funcionamiento. No hay cookies de publicidad, aunque algunos de los contenidos mostrados (videos o documentos insertados) están alojados en servicios externos (Youtube, Vimeo, Box...) que sí pueden implementar sus propias cookies. También se ha incluido en pruebas un Agente AI que incluye sus propias cookies   
Privacidad