
>> Galerie
d'images
Le but de ce projet est de réaliser un moteur
de lancer de rayons, codé en C++. Le concept du lancer de rayons
(en anglais raytracing) date de 1968, et le premier algorithme récursif
a été présenté en 1980 par Whitted. Cela a
été la première méthode permettant d'obtenir
des images de synthèse photo-réalistes, prenant en compte
la réflexion, la réfraction, l'élimination des parties
cachées, et d'autres effets optiques. Bien que cette technique
donne des résultats de haute qualité, elle est assez peu
utilisée en pratique, car nécessite un temps de calcul et
de l'espace mémoire importants.
· La vision naturelle
: Des rayons sont émis depuis une ou plusieurs sources lumineuses,
viennent frapper des objets, et sont réfléchis et/ou transmis
selon les caractéristiques (le matériau) de ces objets.
Une partie de ces rayons arrive enfin sur l'œil (après avoir
été réfléchis ou directement), ce qui forme
une image sur la rétine. Cette technique est inapplicable informatiquement,
car seule une infime partie des rayons arrive sur la rétine, et
donc impliquerait une quantité de calculs largement supérieure
à ce qu'il faudrait.
· Le principe général
du lancer de rayons : Cette technique tente de reconstituer le
parcours inverse de la lumière, depuis la caméra en direction
des sources lumineuses. Pour cela, on place une image virtuelle dans la
scène devant l'observateur (c'est cette image qui constitue le
résultat final). Pour chacun des pixels qui constituent l'image,
on lance un rayon partant du point de vue (l'observateur) passant par
le centre du pixel. La couleur de pixel traversé va être
déterminée en suivant le cheminement du rayon lancé
jusqu'aux sources lumineuses de la scène 3D. Cette technique permet
donc de ne calculer que les rayons qui seraient vus par l'œil, ce
qui rend les temps de calcul acceptables.

|