en Théorie, oui je connais :
je te prends un exemple : imagine que tu aies un triangle blanc.
s´il est bien en face de la lumiere, tu le vois blanc, s´il est + tourné, tu le vois gris, on est ok ?
s´il est perpendiculaire a la lumiere, alors il est noir, toujours d´accord ?
Comment voir cela ? c´est de la géométrie ! !
ta lumiere est définie par un point dans l´espace. Premiere chose,tu vas calculer le vecteur L, orientation de la lumiere, vers ton triangle a éclairer ( donc tu as en gros un dessin avec une lumiere représentée par une flèche)
Tu vas ensuite calculer le normale N au triangle.
( la normale, c´est un vecteur orthogonal au plan du triangle)
( pour cela, considère ton triangle a,b,c par 2 vecteurs, le vecteur ab, et le vecteur ac, N est le produit vectoriel suivant : ab^ac.
Normalise ensuite tes 2 vecteur N et L ( il faut que leur module soit égal a 1 : pour cela, divise chaque composante du vecteur par sa norme)
Ensuite c´est presque fini : tu comprends bien que plus les vecteur N et L seront colinéaires, plus ton triangle devra etre blanc.
Si jamais ton triangle est perpendiculaire à la lumiere, alors N et L sont orthogonaux, tu vois ?
Alors c´est simple : tu calcule le coefficient de lumiere c = L.N ( produit scalaire)
tu vas trouver un entier entre -1 et 1.
je te conseille d´en prendre la valeur absolue : conséquence directe : ton triangle devient double face, et tu as un coeff entre 0 et 1.
Pour colorer ton triangle, prend sa couleur d´origine ( celle a laquelle il doit etre s´il est bien éclairé), et multiplie la juste par c, et obtiens directement la couleur de ton triangle
En effet, si le triangle est bien en face, alors L et N sont colinéaires ( en valeur absolue), donc c=1 : donc C bien blanc.
Si il est perpendiculaire, alors N et L orthogonaux, or le produit scalaire de 2 vecteurs orthonaux est nul, donc c=0 donc tu as du noir
et C magique car ça t´affiche toutes les nuances de gris pour un triangle qui bouge
et si tu veux de la couleur, multiplie chacune de tes composantes de couleur par c.
Voila, essaie de te faire un petit schéma pour bien comprendre cela
Dis moi si tu as bien compris !
Ceci est le FLAT Shading : C pas super car le triangle a une couleur unie.
Si tu as bien compris, je t´expliquerai le GOURAUD shading, celui qui est utilisé dans le jeux, pour faire de meilleurs rendus, et peut etre aussi le PHONG Shading, qui demande encore trop de calcul donc pas utilisé en temps réel.
Voila, j´espere que - sans dessins - ça a quand meme été pas trop chaud a comprendre.
j´espere aussi que tu n´as pas de mal avec les vecteurs, produits scalaires et vectoriels
Tiens moi au courant !