Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
833 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  normalisation d'un vecteur et epsilon value in raytracing

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

normalisation d'un vecteur et epsilon value in raytracing

n°892681
jfken2000
Il faut comprendre l'art de
Posté le 07-11-2004 à 20:09:06  profilanswer
 

1)à quoi sert la normalisation d'un vecteur dans le raytracing?
2)à quoi sert la valeur epsilon toujours dans le raytracing?

mood
Publicité
Posté le 07-11-2004 à 20:09:06  profilanswer
 

n°892721
Panini
Posté le 07-11-2004 à 20:46:30  profilanswer
 

Le format IEEE des floats n'est qu'approximatif. Il introduit donc des erreurs de calcul qui, bien que faibles, peuvent s'accumuler dans un calcul itératif. De même du fait de ces erreurs, on peut difficilement tester une égalité parfaite en calcul flotant.
 
La normalisation d'un vecteur est nécessaire à chaque fois que t'as besoin d'un vecteur de longueur 1, typiquement dans un calcul d'éclairage (phong par ex.).

n°892761
jfken2000
Il faut comprendre l'art de
Posté le 07-11-2004 à 21:15:54  profilanswer
 

la valeur epsilon sert à rendre le calcul plus juste,plus precis???
Pourquoi dans un calcul d'eclairage a t on besoin d'un vecteur de longueur 1???

n°892789
youdontcar​e
Posté le 07-11-2004 à 22:01:35  profilanswer
 

jfken2000 a écrit :

la valeur epsilon sert à rendre le calcul plus juste,plus precis???

Elle sert à compenser le manque d'imprécision dont parle Panini. Une opération comme 10.21 - 10.2 donne 0.0100000000000016, pas 0.01. Tester si le résultat est dans un certain domaine [résultat-epsilon, résultat+epsilon] teste si le nombre est environ 0.01 et règle le problème.
 

jfken2000 a écrit :

Pourquoi dans un calcul d'eclairage a t on besoin d'un vecteur de longueur 1???

On n'en a pas forcément besoin, c'est plus simple et plus rapide de l'écrire ainsi. Prends un produit scalaire v1*v2/(norme(v1)*norme(v2)), éclaire un point avec multiples lumières. C'est le même calcul avec des valeurs différentes. La normale de l'objet est constante, la normaliser gicle le calcul de norme dans l'éclairage et l'accélère.

n°893914
LeGreg
Posté le 09-11-2004 à 01:48:35  profilanswer
 

jfken2000 a écrit :

la valeur epsilon sert à rendre le calcul plus juste,plus precis???


 
Non, tu ne peux pas regagner la précision que tu as perdu.
 
Il s'agit avant tout de robustesse.
Sur ta feuille de papier tu fais des calculs exacts tels
que a + b - b == a.
Sur ton ordinateur ce n'est pas le cas. Dans le cas où tu as déterminé que la valeur exacte du résultat importe moins que le fait que a == a, alors il faut utiliser un epsilon ou valeur d'erreur acceptable dans ton calcul d'égalité (a <= a+e && a >= a-e). En faisant ça tu perds de la précision ! donc si b est plus petit que epsilon ça n'a aucun sens et il faut que tu fasses tes calculs autrement (changer l'algorithme ou l'ordre des calculs ou la limite de la précision de tes flottants).
 

jfken2000 a écrit :

Pourquoi dans un calcul d'eclairage a t on besoin d'un vecteur de longueur 1???


 
Il ne s'agit pas de n'importe quel vecteur. Il s'agit de la normale à la surface qui est une représentation symbolique de l'orientation de ta surface. Cette normale n'a pas d'unité (la valeur de l'éclairement en un point ne varie pas en fonction de la taille de la surface élémentaire utilisée pour faire le calcul en ce point). On lui donne donc une norme de valeur arbitraire de 1 qui servira de référence dans tous les calculs d'illumination faisant intervenir cette normale.
 
L'avantage de 1 c'est que si l'intensité lumineuse est L, le coefficient
de diffusion est d (modèle de Lambert), alors l'illumination maximale du vecteur lumière d'intensité L, est simplement L*d.

n°895721
Panini
Posté le 10-11-2004 à 23:02:30  profilanswer
 

Euh, la norme de 1 n'est pas arbitraire puisqu'il nous faut le cosinus de l'angle formé entre la normale et la lumière inscidante.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  normalisation d'un vecteur et epsilon value in raytracing

 

Sujets relatifs
changer une "hex value"...?pb input et value
Problème Access récupération value d'une TextBox dans une RequêteJ'ai de la peine entre value-of et apply-template
vecteur en vba[Résolu] Insérer variable dans "value" dans un formulaire
value textarea[Applet] Applet signé + magic value ?!
Calcul de vecteur propre d'un matrice asymetriqueRécuperer le contenu (et non le value) du <option> selectionné
Plus de sujets relatifs à : normalisation d'un vecteur et epsilon value in raytracing


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR