Introduction
TP8 : Put the lights on !
Ce dernier TP sera l'occasion d'implanter un modèle d'éclairage simple permettant de gérer des lumières de type ponctuelles ou directionelles, sans ombres.
Le modèle que nous allons mettre en place est le modèle de Blinn-Phong. C'est le fragment shader qui se chargera de faire le calcul d'éclairage.
Le modèle de Blinn-Phong est défini par l'équation suivante :
où:
- est la direction incidente depuis laquelle provient la lumière. On la calcule par rapport à la position de cette dernière.
- est la lumière (une couleur) incidente dans la direction . On la calcule par rapport à l'intensité et la distance à la source de lumière.
- est la normale.
- est le coefficient de réflexion diffuse de l'objet. C'est une couleur qui dépend du matériau de l'objet.
- est le coefficient de réflexion glossy de l'objet. C'est une couleur qui dépend du matériau de l'objet.
- est un exposant de brillance permettant de contrôler la taille de la "tache" de brillance glossy. C'est un float qui dépend du matériau de l'objet.
- est le vecteur , étant le vecteur pointant vers la caméra.
Dans la formule, tous les produits "" entre vecteurs sont des produits scalaires. Les vecteurs doivent tous être normalisés.
La notion de matériau est très importante en synthèse d'image. Nous allons utiliser des variables uniformes pour passer les coefficients , et au shader avant de dessiner. Cela aura pour effet de dessiner des objets dont le matériau est le même en chaque point. Dans une application plus complexe on utiliserait le multi-texturing pour binder une texture diffuse, une texture glossy et une texture de brillance. De cette manière on peut avoir des coefficients différents pour chaque point d'un objet.