>> 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.



Auteurs : Thomas Bonfort, Delphine Chaigneau, Olivier Galizzi, Laure Heigeas