¿Cuáles son los diferentes tipos de efectos OpenGL?

Hay una serie de efectos OpenGL® que se pueden lograr mediante el uso de mezclas, escalado de normales de superficie, materiales e iluminación. OpenGL® realmente no admite directamente muchos efectos especiales, como lo hacen algunas tarjetas gráficas, pero proporciona herramientas como el lenguaje de sombreado OpenGL® (GLSL) para permitir que algunos efectos OpenGL® se produzcan con relativa facilidad. Se pueden usar efectos básicos como niebla, detección de bordes y trucos de iluminación para ayudar a proporcionar una representación de escena más estilística, mientras que efectos como superficies verdaderamente reflectantes, sombras volumétricas y texturas animadas dinámicamente se pueden usar para revelar una escena que es muy realista.

Uno de los efectos OpenGL® más básicos que se pueden encontrar en muchas aplicaciones es el suavizado. Esto implica tomar una serie de píxeles que se han renderizado y luego calcular los espacios entre ellos para crear pasos intermedios y colores para rodearlos. El resultado final es una escena que a veces puede parecer un poco borrosa, con una suavidad añadida a todos los bordes duros que se dibujaron. La mayoría del hardware de gráficos admite el suavizado acelerado, ya que reduce la pixelación poco atractiva en la pantalla.

Muchos programadores que están comenzando se sorprenden al saber que las sombras dentro de una escena son en realidad uno de los efectos especiales de OpenGL® que deben programarse explícitamente y no ocurren por defecto. Este efecto se puede lograr renderizando el contorno de un modelo en un búfer de estarcido y luego proyectando ese estarcido en un plano que se coloca en una escena en el ángulo apropiado. A través de técnicas de mezcla más complejas, también se pueden crear sombras que sean más realistas en su profundidad.

El modelo de iluminación utilizado por OpenGL® en realidad no calcula el rebote de los rayos de luz dentro de una escena de una manera que sea consistente con el mundo físico. Esto ha llevado al desarrollo de superficies verdaderamente reflectantes como uno de los efectos OpenGL® más populares. Este tipo de efecto esencialmente representa la escena desde un ángulo diferente en una imagen y luego usa esa imagen como textura para la superficie reflectante. Aunque es computacionalmente costoso, puede ayudar a emular el realismo en una escena.

Uno de los efectos de OpenGL® más genéricos y más utilizados que se pueden realizar con sombreadores es un sistema de partículas. Esta es una forma de aplicar algoritmos, generalmente algoritmos fractales, a elementos de una escena para proporcionar objetos u otros elementos que parezcan moverse o mostrar cualidades orgánicas, aunque esas cualidades sean en realidad el resultado de una fórmula estática. Los sistemas de partículas se pueden utilizar en OpenGL® para simular un fuego ardiente, el movimiento de los pájaros o incluso la forma de las nubes en el cielo.