LE SHADING D'UN CUBE EN WIN32ASM

tomart2005 Messages postés 6 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 19 janvier 2007 - 17 juil. 2006 à 16:57
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 - 25 juil. 2006 à 12:06
Bonjour,

Je code un petit soft qui affiche un cube en rotation, j'aimerai savoir comment colorer les différentes faces du cube selon son angle, simuler une source de lumière en fait. Si vous avez une réponse ; merci

++

1 réponse

cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
25 juil. 2006 à 12:06
Bonjour tomart2005,

Tout dépend du type d'éclairage et de la "nature" de la surface de ton cube.
S'il est très lisse tu sera dans le cas d'un phénomène de reflexion qui peut être totale (miroir) ou non. Dans ce cas l'angle de reflexion par rapport à la normale à ta surface sera le symétrique par rapport à cette même normale (suis-je clair ?). Selon la zone de la surface et si la source est proche, alors l'angle d'incidence et l'angle de reflexion varieront.
Il est souvent plus facile de partir de l'observateur et d'afficher un point en fonction de l'éclairage qui atteint ce point. Les calculs peuvent être assez compliqués.
Si ta surface est opaque, une part de la lumière est absorbée et une part est réfléchie (cela dépend de la longueur d'onde)- c'est ce qui donne la couleur de ta surface (surface verte avec lumière rouge donne aspect noir).
Si ta surface est parfaitement diffusante, le rayon refléchit l'est dans toutes les directions et ta surface sera mate.
Enfin dans le cas général il y a une part de reflexion et de diffusion.

D'un point de vue physique tu considéreras que la source de lumière est constituée des 3 composantes RGB (255,255,255 si source blanche).
Pour un angle particulier de la source (theta,phi)et une distance de ta surface élémentaire tu pourra calculer l'angle d'attaque avec la surface et "l'énergie" qui diminue avec le carré de la distance. Il faut ensuite déterminer les angles de reflexion/diffusion et la part des composantes RGB. Enfin exprimer la couleur/énergie atteignant l'oeil (écran).

Bon courage
0
Rejoignez-nous