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
Publicar un comentario