Existen varias técnicas para que una textura de 2 dimensiones proyecte sombras en tiempo real sobre sí misma. Las técnicas más rápidas hacen uso de mapas de horizonte pero es menos precisa y genera más artefactos que la implementación que voy a presentar aquí. Esta implementación es computacionalmente muy pesada pero, asumiendo que en un juego 2D tenemos una carga de GPU relativamente baja y que somos un poco putilla gráfica y tenemos hardware puntero, puede llegar a ser viable en una aplicación interactiva; sobretodo si nuestro motor gráfico trabaja con deferred rendering.
Mostrando entradas con la etiqueta 3D. Mostrar todas las entradas
Mostrando entradas con la etiqueta 3D. Mostrar todas las entradas
viernes, 25 de julio de 2014
martes, 15 de julio de 2014
Embellece tu juego 2D - Bloom
El efecto bloom queda genial en escenas de alto contraste de colores; y nuestro juego seguro que tiene una preciosa paleta de colores a la que le quedaría de maravilla.
Ejemplo de bloom:
La técnica implica varios pasos a seguir:
1) Obtener en una textura únicamente los pixeles más luminosos de la imagen.
2) Aplicarle un desenfoque gausiano (vertical y horizontal)
3) Combinar el resultado de la imagen desenfocada con la imagen original usando additive blending.
Todo esto lo realizamos con una resolución pequeña para mejorar el rendimiento puesto que no nos hace falta tanta precisión.
Etiquetas:
2D,
3D,
bloom,
games,
glow,
graphics,
hlsl,
lighting,
point light,
shader,
specular highlights
martes, 8 de julio de 2014
Embellece tu juego 2D - Specular Highlight
Specular Highlight es el brillo que aparecen en los objetos cuando la luz incidente es reflejada directamente hacia nuestros ojos.
La propuesta, a bote pronto, es sencilla: Calcular el vector de "rebote" de la luz y hacer el dot product con el vector de la vista; mientras menor sea el ángulo entre estos 2 vectores, más brillo vamos a apreciar.
L es el vector de dirección de la luz (invertido), N es el vector normal del pixel (sacado del normal map), V es la vista (o cámara), H es el Half Vectror que yo no voy a usar porque es más preciso utilizar el vector de la luz reflejado (R).
Etiquetas:
2D,
3D,
games,
graphics,
hlsl,
lighting,
point light,
shader,
specular highlights
martes, 1 de julio de 2014
Embellece tu juego 2D - Point Light
La técnica de normal mapping del post anterior queda muy bien, pero nos falta mejorar un poco el punto de luz creado para iluminar la textura. De momento el punto de luz ilumina toda la textura al completo pero es probable que en nuestro motor gráfico necesitemos definir un punto de luz con un rango finito. Para ello, vamos a añadirle la atenuación.
lunes, 30 de junio de 2014
Embellece tu juego 2D - Normal Mapping
Muchos de los juegos 2D que muestran iluminación dinámica se basan en una técnica llamada Color Blending. Con esta técnica se puede simular la iluminación de una textura como se ve en la imagen del enlace anterior.
Para mejorar los gráficos 2D se pueden emplear técnicas de iluminación 3D que embellecen enormemente el resultado final.
La primera técnica que podemos aplicar es NormalMapping. Esta técnica define la dirección hacia la que está orientado cada pixel en la textura por lo que podemos calcular como incide la luz en él.
Suscribirse a:
Entradas (Atom)

