Prologue...

Dans ces pages vous allez trouver de nombreux renseignements utiles pour vos débuts dans le monde de l'image de synthèse.
Bien que n'étant pas exhaustifs, ces renseignements vous serviront pour utiliser agréablement les logiciels que j'emploie.

Pour les initiés, vous retrouverez certains éléments empruntés à droite et à gauche, notamment :

  • ST-Magazine (magazine 'disparu' dans le début de années 90)
  • Doc officielle de POV
  • Doc non-officielle en français de POV
  • Doc officielle de MORAY
  • Doc officielle de sPatch

D'ailleurs, un travail de titan est en cours de réalisation, par une équipe française :
la traduction de la doc de POV en français...

Allez donc voir le site du POV-Monde, vous m'en direz des nouvelles...

  Prologue | POV | MORAY | sPatch | Conseils | Retour Site |




Article tiré du magzine 'ST-magazine' No 69 de Février 1993, rédigé par Elysée Ade, auteur d'un logiciel de raytracing.

Introduction

En infographie (informatique graphique), il existe plusieurs techniques de synthèse d'images. Vous connaisser la technique classique qui consiste à créer l'image de toutes pièeces en intervenant à toutes les étapes de la création, c'est ce que nous appelons communément 3D. La 3D est assez pratique pour effectuer des animations d'objets géométriques avec un rendu simpliste, mais dés lors qu'il faut obtenir un rendu réaliste cela devient très fatiguant. Le Ray Tracing (suivi de rayons) est la technique à la Terminator (brutale comme la vie) pour créer des images, parce qu'elle ne fait pas preuve de finesse dans la mesure où elle consite à lancer des rayons dans l'espace et de calculer leurs intersections avec d'éventuels objets d'une scène 3D.

Historiquement, la première utilisation de la technique du suivi de rayons fut en 1968 par Appel ([APPE68]); c'était, au départ, une technique d'élimination des faces cachées comme l'algorithme du peintre... C'est dans les années 80 que cet algorithme commença à être réellement exploité comme les chercheurs s'étaient rendu compte qu'il pouvait non seulement effectuer une élimination sûre des faces cachées mais aussi donner un rendu hyperréaliste. Depuis, les améliorations n'ont pas cessé au niveau du rendu, du temps de calcul, des objets... Tant et si bien qu'aujourd'hui le Ray Tracing est la technique incontournable pour qui veut se prétendre infographiste.

Le système de vision

Comme nous l'avons dit plus haut, en Ray Tracing nous nous contentons de lancer des rayons dans l'espace et de calculer la couleur éventuelle de l'objet rencontré. Le Ray Tracing permet de créer une image 2D d'un scène 3D, nous devons tracer ou lancer des rayons depuis le point d'observation jusqu'à un pixel donné ; si l'écran est 640x480 il faudra lancer 307200 rayons pour constituer l'image (je pense que vous commencez à comprendre pourquoi on dit que le Ray Tracing est gourmand en temps de calcul, mais cela n'est qu'un début). Pour chaque pixel de l'écran de vision, il faut créer un vecteur allant du point d'observation vers le pixel, il faut bien sur placer l'écran dans l'espace.

Comme le Ray Tracing est une simulation de la réalité, il faut indiquer comment elle est perçue, pour ce faire nous devons indiquer où se place la caméra (l'oeil), où regarder, tout cela dans l'espace. L'ensemble point d'observation + écran forme une pyramide dont la base est la caméra, la scène doit être contenue dans cette pyramide pour être visible directement.

Rayons et pixels

Comme je l'ai dit plus haut, nous effectuons un balayage de l'écran avec des rayons lumineux, le rayon part du point d'observation, passe par le pixel (x,y,z) de l'écran puis intercepte ou non une surface d'objet.

Le Forward Raytracing

Pour l'instant tout ce que nous avons vu n'était pas difficile à comprendre et à mettre en oeuvre, une fois qu'un rayon rencontre une surface il faut simplement réussir à déterminer la couleur de cette dernière.

Imaginez une pièce où il y ait un canapé rouge accolé au mur, au dessus du canapé un mirroir et une lampe éclairant la pièce en envoyant des rayons lumineux dans toutes les directions, nous plaçons la caméra de manière à ne voir que le canapé et le miroir.
La lampe envoie des rayons dant toute la pièce, nous allons en suivre quelques-uns :

  • le rayon A quitte la lampe mais ne rencontre aucun objet, sa contibution dans l'image observée par la caméra est donc nulle;
  • le rayon B quitte la lampe, rencontre le miroir qui le réfléchit en le renvoyant vers le canapé qui le renvoie cet fois vers le plan image, le rayon B contribue donc à l'image finale;
  • le rayon C quitte la lampe, rencontre la miroir qui le renvoie directement vers le plan image.
Le rayon à chaque étape (intersection) change de couleur si la surface intesectée n'est pas de la même couleur que la sienne, dans le cas du rayon B blanc, il devient rouge une fois le canapé rencontré.

Nous venons d'effectuer, de menière grossière, ce que fait un ray tracer. Nous avons suivi le chemin emprunté par un rayon lumineux (un photon) dans son parcours d'une scène. Plus précisèement nous avons fait du suivi de rayons en avant, comme vous vous en doutez de nombreux rayons ne participent pas à l'image, il serait donc plus pratique et surtout plus rapide de ne lancer que les rayons participants à la constitution directe de l'image. Il existe, heureusement, le ray tracing arrière qui permet de faire cela.

Le Backward Raytracing

Avec cette méthode, nous lançons les rayons depuis l'oeil vers les objets, des objets vers les sources lumineuses. Nous ne nous intéressons plus qu'aux rayons intervenant de manière directe dans la scène visible donc nous gagnons du temps.

De par le fait que le forward ray tracing soit coûteux en temps de calcul, le terme Ray Tracing est utilisé exclusivement pour le Backward Ray Tracing. Le terme 'backward' souligne le fait que nous suivons le rayon depuis son point final (l'écran) jusqu'à son éventuelle origine.

Les divers types de rayons

Jusquà présent nous n'avons vu et parlé que d'un type : les rayons de vision (allant de l'oeil à l'écran) mais il y en a d'autres tout aussi importants.

Les rayons d'illumination ou d'ombrage sont les rayons joignant une source lumineuse à un point d'une surface donnée, ils illuminent le point de la surface s'ils ne rencontrent pas d'obstacle opaque.

Les rayons réfléchis transportent la quantité lumineuse réfléchie par une surface vers une autre. Ce sont ces rayons qui cractérisent la propriété d'un miroir, un miroir a généralement son coefficient de réfexion à 1 ce qui signifie que toute l'énergie lumineuse reçue est renvoyée. Ils peuvent aussi être appelés rayons spéculaires.

Les rayons transmis transportent la quantité lumineuse à travers une surface vers une autre. Ce sont les rayons de transparence, pour une surface parfaitement transparente le coefficient de transparence vaut 1.

Les rayons d'illumination ou d'ombrage

Imaginez vous sur une scène de théatre éclairée par deux sources lumineuses A et B. De votre position sans vous déplacer vous distiguez parfaitement la source A, elle ne subit aucune atténuation. De votre position, la source B vous est entièrement cachée par une objet placé entre B et vous. Au point où vous vous trouvez seule la souce A vous éclaire, donc seule son intensité serait prise en compte dans l'équation d'éclairage (Rendering Equation). Seuls les rayons lumineux qui ne rencontrent pas d'obstacle opaque éclairent une scène, c'est en suivant cette idéee que l'on génère les ombres d'une image de synthèse.

Les rayons de réflexion

Comme je l'ai dit plus haut, un mirroir est une suface parfaitement réfléchissante ou, si vous voulez, avec laquelle tous les rayons arrivant repartent. Les rayons arrivants peuvent subir un changement de couleur si celle de la surface rencontrée est différente.
Les rayons qui sont réléchis vérifient les propriétés suivantes :

  • le rayon R réfléchi appartient au plan défini par le rayon I incident et la normale N à la surface au point d'intersection;
  • l'angle A entre le rayon I et la normale N est le même qu'entre la normale N et le rayon R.

Les rayons transmis

Le rayon transmis T est le rayon qui passe à travers une suface donc d'un milieu d'indice n1 à un milieu d'indice n2, les propriétés caractérisant ce rayon sont :

  • le rayon T réfléchi appartient au plan défini par le rayon I incident et la normale N à la surface au point d'intersection;
  • il vérifie l'égalité de Snell-Descartes qui est exprimée par 'n1.Sin A= n2.Sin B', A est l'angle entre le rayon incident I et la normale N, B est l'angle entre la normale N et le rayon T transmis.

C'est la différence entre les indices des milieux (n1/n2) qui provoque la déformation caractéristique des surfaces transparentes.

Le retour de la récursivité

La récursivité joue un rôle capital dans le rendu réaliste des images par ray tracing, je vais vous expliquer pourquoi.

Pour pouvoir tracer l'histoire du pixel par lequel passe le rayon vision, nous devons ranger chaque intersection avec une surface dans un arbre binaire (la branche gauche correspond au rayon réfléchi et la droite au rayon transmis) de profondeur défini par le niveau de récursion. Le fait de gérer l'arbre de manière récursive évite une gestion explicite qui serait très ennuyeuse et gourmande en mémoire, comme nous nous intéressons qu'à un rayon vision à la fois une seule branche de l'arbre est parcouru à la fois.

Quant un rayon de vision rencontre la surface d'un objet, le rayon réfléchi ou transmis constitue une sorte de nouveau rayon vision et il faut réitérer ce processus autant de fois que nécessaire, c'est à ce niveau qu'intervient la récursivité parce qu'avec la même routine nous pouvons gérer les divers types de rayon (vision, réfléchi, transmis). Si nous calculons une image avec une profondeur de récursion 1, nous aurons juste une image avec les faces cachées éliminées et un éclairage élémentaire.

La touche finale : l'aliasing

Comme vous le savez maintenant le Ray Tracing est un processu de sampling, de par ce fait, il manque toujours des informations et cela se constate plus précisément aux limites d'une surface. Par exemple, une sphère apparaît avec des bords cassés sans antialiasing, parce qu'aux bords de la sphère les rayons lumineux ne sont pas assez nombreux pour décrire le changement, il manque des informations pour constituer une image nette d'où les cassures observées.

Il existe plusieurs techniques d'antialiasing comme :

  • le supersampling qui consiste à lancer plus d'un rayon vision à travers un même pixel et de faire la moyenne des intensités de chancun d'entre eux après leur parcours;
  • le supersampling qui reprend l'idée donnée plus haut mais de manière intelligente, seul les endroits où il y a un changement de couleur brusque sont subdivisés et resamplés récursivement.

Il existe d'autres techniques d'antialiasing mais nous n'en parlerons pas cette fois puisque nous nous contentons d'effectuer un survol des divers constituants d'un noyau de ray tracer.

L'équation de rendering

C'est l'équation qui lie tous les éléments vus auparavant pour déterminer la couleur d'un point donné. Il existe plusieurs équations ayant chacune leur intérêt mais la plus simple est celle apportée par Whitted en 1980 qui permet d'avoir des effets de reflets et de transparences.

Conclusion et chute

Le Ray Tracing est une technique pour produire des images réalistes, sa mise en oeuvre est simple en principe mais n'est pas évidente, c'est la raison pour laquelle la réalité est très difficile à reproduire, tant les paramètres réels sont nombreux.




Article tiré du magzine 'ST-magazine' No 69 de Février 1993, rédigé par Elysée Ade, auteur d'un logiciel de raytracing.

  Prologue | POV | MORAY | sPatch | Conseils | Retour Site |

© Tous droits réservés 2002 Lightning Generator
et Hit-Parade

Valid CSS!