Luces en WebGL



Se agrega un buffer para cada figura, en este se guarda los valores de la normal de cada vertice.


  • La normal en cada punto de una esfera es simplemente las coordenadas del vertice.
  • La normal de las tapas del cilindro y el cono, apunta hacia Y positivo para la tapa superior y hacia Y negativo para la tapa inferior.
  • Como el cilindro y el cono se pintan iterando el angulo theta de de 0 a 2PI, la normal de sus costados equivale a las coordenadas del circulo unitario, es decir X= cos ( Θ), Y = 0, Z = sin(Θ) 
  • A las normales de los costados del cono adicionalmente se les agrega un componente en Y, proporcional a la inclinación del costado del cono.




Se modifica el fragment shader para que calcule modifique la intensidad del color de acuerdo a el producto punto entre la normal del vertice  y el angulo en el cual apunta la luz.

Comentarios

Entradas populares de este blog

Sombras en WebGL

Ejemplo Basico Processing

Objeto siguiendo una curva