EFECTOS

Para poderle dar mas realismo a nuestras escenas openGL dispone de una serie de funciones que nos permiten añadir efectos de sombreado, efectos de transparencias, efectos de niebla, antialiasing ( suavizado ). Que son los que veremos a continuación.

TRANSPARENCIA

Para poder hacer que uno de nuestros objetos sea transparente primero utilizaremos la función glEnable para activarla pasándole como parámetro la constante GL_BLEND y luego llamamos a la funcion glBlendFunc indicándole que tipo de transparencia o como queremos que sea esta transparencia.

glEnable GL_BLEND
glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA

En las siguientes tablas podemos ver los valores que puede llevar esta función.

NIEBLA

Bueno como su nombre indica este efecto sera para añadir niebla a nuestra escena, tenemos 3 tipos de niebla, GL_LINEAR, GL_EXP, GL_EXP2.

GL_LINEAR, la usaremos para cuando queremos dibujar inicios de niebla.
GL_EXP, cuando queramos dibujar una niebla espesa o incluso nubes.
GL_EXP2, un buen uso seria para dibujar humo.

Para indicarle a las OpenGl que tipo de niebla vamos a utilizar usaremos la función glFlogi, esta función tiene 2 parámetros en el primero le indicaremos que estamos eligiendo el tipo de niebla con la constante GL_FOG_MODE y en el segundo parámetro el tipo de niebla.

glFogi GL_FOG_MODE, GL_LINEAR

Ahora ya hemos elegido el tipo de niebla y nos queda definir el color que tiene, para ello usamos la function glFogfi a la que le pasaremos la constante GL_FOG_COLOR la que le indica a openGl que lo que queremos hacer es escoger el color de la niebla y en su Segundo parámetro le pasamos un vector con RGBA.

glFogfi GL_FOG_COLOR, VectorConRGBA.

Si escogemos el tipo de niebla GL_EXP o GL_EXP2 tenemos que indicarle a intensidad de la niebla para hacerlo usaremos la funcion glFogf a la que le pasaremos la constante GL_FOG_DENSITY para indicarle que cambiamos la densidad y como segundo parámetro la densidad que suele tener un valor entre 0 y 0.1

ANTIALIASING

En antialiasing suavizara los objetos de nuestra escena cuando hablo de suavizar me refiero que perfecciona los bordes de los objetos y las texturas, etc.

Para utilizar el antialiasing activamos GL_BLEND al igual que con la niebla pero tenemos que activar alguna constante más como son GL_LINE_SMOOTH y/o GL_POINT_SMOOTH y/o GL_POLYGON_SMOOTH.

glEnable GL_BLEND
glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
glEnable GL_POLYGON_SMOOTH
glEnable GL_LINE_SMOOTH

Tenemos que tener en cuenta que el antialiasing es costoso y según para que aplicaciones no nos será útil.

Director Web Directorio AdirLink directorio web Agregar Web
Directorio Gratis Pala.net directorio de enlaces Pala.net directorio de enlaces