-
Rayon réfléchi
Bonjour à vous!
Je suis en train de programmer une application qui permet d'améliorer le rendu d'images, je suis en train de travailler sur les lancers de rayons et je bute sur les calculs vectoriels qui font lois dasn cette matière
Voici mon, problème:
http://raphaello.univ-fcomte.fr/IG/R...aReflexion.gif
Je ne comprends pas comment tomber sur le N cos(teta i) dont il est question dans cette image, j'ai beau tourner et retourner la question je ne trouve pas comment on peut trouver cette partie d'equation
Merci à ceux qui pourront m'aider dans ma brusque et très brutale incursion dans le monde des lancers de rayons
-
Tu n'est pas dans le bon forum car ta question n'a rien à voir avec opengl, c'est dans la partie algorithmes (je pense) que tu aurais dû poster, et comme les règles du forum interdisent le double post il va faloir attendre qu'un modérateur veuille bien déplacer ton post dans le forum adéquat
tout ça pour dire que, désolé, je n'ai pas la réponse à ta question :(
-
c'est relativement simple :
pour obtenir le vecteur reflechi il faut :
soit I ton rayon a reflechire et N la normal
calculer
scalaire = I dot N
vect tmp = N * scalaire * 2
vect result = tmp - I
et voila tu a ton vecteur reflechi.
bon avec un dessin c'est plus facil a comprendre, en gros mon vecteur tmp est le même que ton vecteur Ncos(tetha I) , je le multiplie par 2 et je retranche I pour former un parallelogramme... franchement un dessin c'est nettement plus facil pour expliquer...
-
Il me semble que l'image du premier post sous-entend clairement que les vecteurs I et N sont de même norme (ce qui n'a peut-être pas été dit explicitement). C'est pourquoi, quand on projette I sur N orthogonalement, on obtient un vecteur de norme cos(theta_i)*norme(N).
-
Voir dans ce même forum - algorithmes- le sujet "angle d'incidence et angle de sortie"
La même question y a été posée et j'y ai, avec quelques autres, déjà donné réponse