miércoles, 29 de junio de 2011

GameEngine: Capitulo 14.Mejorando el Graphics2DManager (II)

Hola a todos...

Bienvenidos a un nuevo capitulo de como crear tu propio game engine desde 0,

Podeís estar tranquilos, hoy va a ser un dia suave :D , el capitulo de hoy tratará sobre mejorar el motor gráfico 2D  el  añadirle alpha blending.

Como preparar el game engine para que acepte alpha blending?
  • Que es? El alpha blending no es más que aplicar transparencia a una textura.
  • Como se aplica? Para aplicarlo desde opengl es tan senzillo como llamar dentro del render de 2D a las siguientes funciones:
//Habilitamos el alpha
glAlphaFunc(GL_GREATER, 0.05f);
glEnable(GL_ALPHA_TEST);

  • Para que sirve? Básicamente tiene dos aplicaciones : semitransparencias y transparencias totales. Las semitransparencias sirven para “fusionar” la textura con el fondo , las transparencias totales sirven para “recortar” la imagen.
  • Algo más? Pues si, nos falta saber como poner una máscara de alpha a una imagen. Hay muchas maneras y formatos, yo personalmente uso un sistema que aunque poco profesional, funciona a las mil maravillas y es sencillo:

Como crear una gráfico con máscara de alpha?

      1. Con el paint o cualquier editor de gráficos sencillo creo un dibujo, en mi caso dibujaré una flor.(si mis dotes artísticas son patéticas ;) ) Cuidado , el tamaño de la imagen ha de ser cuadrada y con sus lados potencia de 2 (32,64,128,256,etc...) sino opengl no puede asegurar que todos las tarjetas gráficas vayan a pintar correctamente esa textura.
      2. El dibujo lo guardaremos en formato .PNG (más que nada por que es un formato que acepta canal de alpha y lo podemos cargar en nuestro game engine)
      3. Mediante GIMP (es el que yo uso, si vosotros sabéis manejar otro, adelante), usaremos la herramienta selección difusa para seleccionar todo lo que hay en el fondo de nuestro dibujo y no nos interesa que aparezca (en nuestro caso, fondo blanco) y lo eliminaremos mediante la tecla suprimir.
         
      4. Guardamos y... et voila, ya tenemos un gráfico con alpha!!Así deberiais ver el gráfico desde gimp:
         
        Los cuadros grises (oscuros y claros) indican que lo que hay es una máscara de alpha, es decir, que no se pintará en nuestro juego.
Este método como he dicho no es muy profesional pero funciona, la verdad, agradecería que colaborarais y expusierais de que manera conseguís vosotros introducir alpha en vuestras imagenes, así aprenderiamos todos un poco más.

Aquí os dejo un video de ejemplo de aplicación del alpha en el pong:


En la sección de descargas tenéis el código de ejemplo.

Aquí os dejo, espero que os haya servido y hayais aprendido.

LordPakusBlog
Nos vemos.

Entradas populares