Escena interactiva con luces y texturas

 


Esta escena, al igual que en anteriores ocasiones, se realizó con OpenGl en Golang (Go).
Ya que el principal característico de esta escena son las luces y las texturas, fue necesario rehacer todas las geometrías con las se contaba anteriormente, ya que estás solo contenían la información de los vértices, mientras que en esta ocasión se requería de la información de las coordenadas de las texturas para cada vértice para así poder mapear la textura a la geometría, además de la información de las normales para cada vértice, para así poder implantar el efecto de luz.

Mucho del trabajo realizado fue en los fragment y vertex shader, con esto se logró implementar varios efectos tanto para texturas como para luces. En cuanto a las texturas, se puede observar en la escena que se dio la posibilidad de tener cero, una o hasta dos texturas por geometría, este último caso se puede ver en el piso, donde además de una textura de nieve, se combina con una textura de camino de piedra.



En cuanto a las luces, se realizó una implementación de phong shading, con la posibilidad de tener múltiples fuentes de luz, cada una con sus propias propiedades de posición, color, luz ambiente, diffuse, specular, entre otras. Esto se puede observar en la posibilidad de tener una luz móvil que actúa como linterna, además de otras tres luces de distintos colores y que actúan de forma independiente.


Además de las texturas y luces, otro aspecto a resaltar es la interactividad, en esta ocasión el usuario es capaz de usar las teclas WASD para moverse por el escenario, y usar el ratón para girar la cámara, cabe mencionar que la linterna se mueve junto a la cámara y gira con el usuario. Además de esto, el usuario es capaz de apagar y encender la linterna en cualquier momento usando la barra espaciadora.

Por último, una característica interesante de esta escena es el uso de animaciones, si se observa en detalle se podrán distinguir varias de ellas, como el giro de la linterna, el movimiento del cielo, o el movimiento de las luces de colores. Esta última compone una característica interesante de esta escena, ya que la animación en las que estas esferas ascienden desde el abismo y comienzan a definir distintas curvas en el cielo, solo comienza una vez el usuario ha avanzado cierta distancia hacia el frente, así se es capaz de observar en mejor detalle la aparición de estas esferas. Esta animación se realizó con una combinación de curvas de Bézier y funciones que hacen uso de senos y cosenos.



Comentarios

Entradas populares de este blog

Sistema de partículas con geometry shader