miércoles, 9 de mayo de 2012

OpenGL y jPCT-AE

En esta entrada les explicaré  lo poco que llevó de la parte de mi interfaz en 3D, se me ha dificultado bastante el entendimiento de OPENGL y aunque contra el tiempo ahí la la llevo :).
Explicaré algunas cosas básicas del uso de OPENGL en Android y después les mostrare la parte de la librería.
Para usar OpenGL lo que necesitamos primero es saber lo siguiente:


GLSurfaceView


GLSurfaceView es una clase de la API de Android 1.5 que ayuda a escribir aplicaciones OpenGL ES.

  • Proporcionar el código de unión para conectar OpenGL ES para el sistema Vista.
  • Proporcionar el código de cola para hacer el trabajo de OpenGL ES, con la actividad del ciclo de vida.
  • Creación y gestión de un hilo de representación separada para permitir una animación suave.
  • Proporcionar fácil de usar herramientas de depuración para el seguimiento de llamadas a la API OpenGL ES y la comprobación de errores.
La función que necesitamos llamar es:

public void setRenderer(GLSurfaceView.Renderer renderer)


GLSurfaceView.Renderer


GLSurfaceView.Renderer es una interfaz genérica de representación. En su implementación necesitamos poner todas sus llamadas para hacer un marco.
Hay tres funciones para poner en práctica:


// Cuando la interface es creada o recreada.
public void onSurfaceCreated(GL10 gl, EGLConfig config)

// Es llamada para dibujar en la interfaz actual.
public void onDrawFrame(GL10 gl)

// Es llamada cuando la interface cambia de tamaño.
public void onSurfaceChanged(GL10 gl, int width, int height)



onSurfaceCreated
Aquí es para configurar las cosas que no cambian con tanta frecuencia en el ciclo de procesamiento. Cosas como el color para limpiar la pantalla con el, lo que permite z-buffer y así sucesivamente.

onDrawFrame
Aquí es donde se dibuja.

onSurfaceChanged
Si su dispositivo permite cambiar el paisaje cuando se mueve.

jPCT-AE



Por ahora esto es lo básico en cuanto a OpenGl, ahora será necesario usar una librería que nos facilite el uso de OpenGL debido a que usarlo es algo complicado al menos para mi que es la primera vez que trabajo con esto, entonces busqué una solución que parece llamarse jPCT-AE.
jPCT es una potente solución para llevar 3D en el mundo Java. jPCT ofrece un rápido procesador de software que es totalmente compatible con todas las máquinas virtuales Java 1.1.
y lo que se llama jPCT-AE es la edicion para Android, es un puerto, es un nuevo procesador para la versión normal de jPCT y es más adecuado para la plataforma Android.

Es fácil de instalar lo único que hay que hacer es descargar el .jar de la página oficial, en la página oficial lo que obtenemos es un .zip que tiene ejemplos y entre ellos el .jar, lo que hay que hacer para integrarlo al eclipse es muy fácil, siguiendo los siguientes pasos:

1. Creamos un proyecto en Eclipse
2. En ese proyecto agregamos una carpeta que llamaremos "libs", aquí agregamos el .jar de JPCT-AE
3. Ahora damos click derecho en el proyecto y elegimos Build Path:


4. Luego escogemos configurar Build Path, y ahora nos aparece una ventana como esta:


5. Luego en Add Jars.. seleccionas el .jar que acabamos de meter en la carpeta libs y FIN .


Ahora si a probarla:

Cree un nuevo proyecto al que llamé "Esferita" en él agregué la librería como acabo de explicar, y tengo el código masomenos así:




Y me crea lo siguiente:




En la siguiente entrada explicaré linea a línea el código.

:)

1 comentario: