Bonjour à tous,
Le Lancer de Rayon, ou Ray Tracing/Casting, permet d’afficher en 2D une scène 3D.
Pour ce faire, on place logiquement une caméra en face de l’image 2D (qui au départ est vierge), laquelle est elle-même en face de la scène 3D. L’assertion suivante doit être vraie : chaque pixel de l’image 2D correspond à un pixel de la scène 3D.
Pour chaque pixel de l’image 2D, on envoie un rayon ayant pour origine la caméra et qui atteint son pixel correspondant (pixel de la scène 3D).
Si le rayon rencontre un objet 3D (donc un pixel colorié), c’est qu’il y a un objet. En tenant compte de ses propriétés physiques, et de s’il est éclairé par une source de lumière dans la scène 3D, on obtient sa couleur et on dessine alors le pixel dans l’image 2D à partir du pixel 3D : petit à petit cette dernière se complète.
Questions
-
Que se passe-t-il si le rayon ne rencontre rien ?
-
Peut-on réellement parler de "pixel dans la scène 3D" ? D’ailleurs est-ce que le Ray Tracing fonctionne vraiment de cette manière ?
-
Les objets 3D ne doivent-ils pas être explicitement indiqués au Ray Tracer ? En effet, celui-ci doit savoir que telle ou telle propriété physique (rugosité, etc.) appartient à tel ou tel objet, et forcément que tel ou tel objet est situé à tel ou tel endroit de la scène 3D (puisqu’il y a correspondance entre : pixel_image_2D et pixel_scene_3D) ?
-
J’ai lu que les ombres des objets, s’ils sont éclairés par une source lumineuse dans la scène 3D, sont également dessinées par le Ray Tracer/Ray Tracing. Or je ne comprends pas du tout comment c’est possible ?
-
Enfin, j’ai lu sur un site qu’un rayon rencontrant un objet de la scène 3D (ou plus précisément, d’après moi, le pixel correspondant de ce dernier) ricocherait vers sa source lumineuse (ou vers un autre objet puis vers la source lumineuse), cf. cette image : https://www.scratchapixel.com/images/upload/introduction-to-ray-tracing/lightingnoshadow.gif .... A quoi ça sert ?
Merci d’avance, bonnes fêtes de fin d’année.