JAVA/JOGL_TEXTURAS.txt



TEXTURAS
	¿Qué es una textura?
	Una textura se puede considerar como una piel, es decir, una imagen superpuesta
	a nuestra aplicación JOGL. Un símil podría ser un trozo de papel de envolver,
	cuya forma será la del objeto que cubra, pero el color será el suyo propio. Las
	texturas en JOGL se basan en capturar una imagen (jpg, bmp, png ...) y convertirlo
	en un flujo de entrada aceptable para el programa (InputStream) y cargarlo en memoria.

	Una vez cargado el InputStream en memoria, en nuestro programa JOGL tenemos que
	indicar como “envolvemos” a nuestro objeto, por ejemplo un cubo. El proceso de
	texturizar se puede resumir en 3 pasos claves:

		1. Habilitación del manejo de texturas
		2. Cargar en memoria la imagen deseada y marcarla como textura activa.
		3. Hacer coincidir los vértices del objeto con puntos de la textura

	El primer paso tienen que ver con el hecho de que OpenGL es una máquina de estado.
	Para activar el estado de texturas, basta con la sentencia:

			gl.glEnable(GL.GL_TEXTURES_2D);

	Cabe destacar que si esta sentencia no esta presente, todo el proceso de texturizar
	fallara, simplemente la textura no aparecerá en memoria.

	El segundo paso es el mas complejo desde el punto de vista de programación. Lo
	primero es resaltar que JOGL trata a las texturas como objetos, asignándoles
	identificativos, para luego elegir que texturas mostrar. Digamos que creamos una
	lista (vector) de texturas.

			gl.GenTextures(3,v_tex);

	La carga en memoria se puede realizar de varias formas, pero básicamente se trata de
	conseguir un InputStream y transformar este en formato legible por JOGL:

			readPNGImage(...) // makeRGBTexture(...)

	Imaginando, que del modo que queramos, hemos cargado en memoria la/s texturas adecuadas,
	debemos activar la textura que de toda nuestra lista, estamos utilizando actualmente.
	Esto se realiza mediante:

			gl.glBindTexture(GL.GL_TEXTURE_2D, v_tex[0])

	v_tex es la lista de texturas, cada una con su id. Generalmente, este valor se suele
	parametrizar, para que mediante algun evento, podamos cambiar la textura que mostramos
	actualmente.