• Aucun résultat trouvé

B.1 Projection d'une bo^ te orthogonalement a la diagonale principale

4.5 Ameliorations possibles

4.5.3 Remplissage/occupation des bo^ tes

ELIORATIONSPOSSIBLES 67

Il nous a donc semble peut raisonnable d'utiliser cette methode, bien que des tests sur des cas reels n'aient pas ete eectues. De plus, il semble bien plus dicile de denir une metrique sur les bo^ tes generalisees, ce qui rend donc quasiment impossible l'utilisation de cette methode.

4.5.2.3 Troisieme methode

Cette troisieme methode est nee de la volonte d'essayer d'obtenir des resultats comparables a ceux generes par la premiere methode avec des temps similaires a ceux de la deuxieme.

Nous avons donc conserve le principe de regrouper a chaque etape deux objets, mais en utilisant cette fois-ci comme critere de regroupement le critere de la premiere methode, c'est-a-dire le volume de la bo^ te generee. On choisit donc de regrouper les deux objets dont la bo^ te englobante globale est de volume minimal.

La complexite de cet algorithme est alors proportionnelle a n3. En eet, a chaque etape, le choix de deux objets a regrouper se fait en temps quadratique, ce qui donne donc cette complexite.

Les resultats simules dans le plan semblent bien meilleurs et d'ailleurs tres proche de la premiere methode. De plus, il n'y a aucune diculte a etendre cette methode aux bo^ tes generalisees. C'est donc vraisemblablement dans cette direction que nous poursuivrons nos etudes.

4.5.3 Remplissage/occupation des bo^tes

Nous avons fait la remarque que dans une hierarchie de bo^ tes, certaines de ces bo^ tes sont \inutiles", et il est en particulier inutile de calculer l'intersection entre de telles bo^ tes et un rayon (cas des objets intervenant dans une intersection ou en partie retranchante d'une dierence).

Il est possible de prolonger cette notion en denissant deux coecients lies au remplissage des bo^ tes. Plus precisement, on denit pour chaque objet du graphe CSG:

{ un coecient de remplissage, egal au quotient de la somme des volumes des bo^ tes des sous-objets composant cet objet par le volume de la bo^ te de l'objet.

{ un coecient d'occupation, egal au quotient du volume de la bo^ te de l'objet par le volume de la bo^ te du sur-objet qui l'utilise.

De la m^eme facon que l'utilite des bo^ tes, le coecient de remplissage peut ^etre stocke directement sur l'objet, alors que le coecient d'occupation doit ^etre stocke sur le sur-objet, ce qui implique que la gestion en incombe a la pile d'environnement. Remarquons que dans notre cas, le coecient de remplissage pour les transformations anes est toujours egal a 1. Remarquons encore que ces notions sont independantes du type de bo^ tes utilise et peuvent donc ^etre denies pour des bo^ tes standard ou generalisees.

L'utilisation de ces deux coecients est alors subordonnee a la valeur de deux seuils, appeles seuil minimal de remplissage et seuil maximal d'occupation. L'algorithme d'intersection gere alors un taux d'occupation courant, qui est stocke dans la pile d'environnement. Sa valeur est initialisee a 0. On peut alors ainsi decrire l'algorithme de gestion des ces taux:

si le taux d'occupation est inferieur au seuil maximal d'occupation

si le coecient de remplissage est superieur au seuil minimal de remplissage intersecter la bo^ te de l'objet

aecter 1 au taux d'occupation sinon

multiplier le taux d'occupation par le coecient d'occupation sinon

Ainsi, le taux d'occupation represente le quotient de volume de la bo^ te englobante d'un objet par rapport au volume de la derniere bo^ te testee. On choisit donc de n'intersecter que les bo^ tes des objets qui ont un volume susamment petit par rapport a la derniere bo^ te intersectee, et qui sont susamment remplies.

On gagne ainsi du temps en evitant:

{ d'intersecter des bo^ tes quasiment vides ou la probabilite d'intersecter l'un des sous-objets est faible m^eme si l'on intersecte l'objet (cas de l'union des deux petits cubes decrit precedemment). { d'intersecter des bo^ tes quasiment identiques a des bo^ tes deja intersectees (la probabilite

d'inter-secter une sous-bo^ te sachant que l'on intersecte la bo^ te est alors tres grande).

On peut m^eme envisager que les deux seuils puissent ^etre adaptatifs et ^etre anes en cours de calcul d'une image. On a alors un algorithme d'apprentissage qui permet d'optimiser la gestion des bo^ tes englobantes. Ces developpements nous semblent tres interessants et nous allons essayer de poursuivre leur etude. Des travaux recents Viv93] ont d'ailleurs utilise une approche similaire pour eectuer une decomposition adaptative d'une scene en utilisant un test d'arr^et sur le coecient de remplissage (notons que Vivian utilise le nom de taux d'occupation pour ce qui est appele ici coecient de remplissage).

69

Chapitre 5

Le rendu

5.1 Introduction

Apres avoir detailleles principes de fonctionnement de l'intersecteur, il convient maintenant de preciser la deuxieme partie importante d'un trace de rayons, a savoir le rendu.

Rappelons que pour notre modele, le rendu est l'utilisation qui est faite des donnees calculees par l'intersecteur. Ces donnees consistent en une liste d'intervalles d'intersection, chaque intervalle pouvant contenir une description des proprietes volumiques de l'objet traverse (ou des objets traverses dans le cas d'objets neutres) et une description des points d'entree et de sortie (normales aux surfaces, numeros des surfaces, couleurs et textures). Cette liste, qui peut bien s^ur ^etre vide, est associee au rayon qui a permis de generer ces intersections, ainsi qu'a une structure d'information sur ce rayon.

Il nous a semble interessant d'essayer d'unier les methodes de rendu traditionnellement utilisees ne synthese d'images, cette unication devant aussi permettre des extensions a d'autres modeles comme un calcul de masse ou de moment d'inertie. Nous sommes ainsi parvenus a la denition d'un \modele de modele" de rendu (les specialistes de l'approche orientee objet parleraient de meta-modele).

Une telle unication presente de nombreux avantages: tout d'abord, elle incite a formaliser beaucoup plus ce qui se passe dans un algorithme de rendu. D'autre part, dans la mesure ou nous voulons pouvoir utiliser successivement (ou m^eme parfois simultanement) plusieurs modeles dierents, il est necessaire de pouvoir changer dynamiquement le rendu utilise. Ce changement est beaucoup plus simple si les deux algorithmes suivent un m^eme modele. Enn, d'un point de vue pratique, l'implantation des divers rendus est facilitee par le fait qu'un grand nombre des fonctions a ecrire pour un tel rendu sont des fonctions generiques, c'est-a-dire utilisables quel que soit le rendu.

On peut noter que cette idee d'unication n'est pas a proprement parler nouvelle puisque l'on peut trouver dans la litterature un certain nombre d'exemples. Le principe utilise dansRenderMan Ups89], avec la denition des shaders, est tres similaire a notre approche, m^eme si les shaders peuvent aussi modier la geometrie du modele. De la m^eme facon, Hall Hal88] avait deni un algorithme generique de rendu, avec cependant un certain nombre de restrictions : la couleur n'est denie que par un tableau de valeurs, on ne maitrise que tres peu la generation des rayons secondaires. Nous avons simplement essaye d'enrichir au maximum les possibilites de l'algorithme generique de rendu.

Precisons maintenant les concepts essentiels de ce modele. Nous allons d'abord introduire les donnees manipulees par le rendu, et nous detaillerons ensuite les diverses fonctions que l'on utilise pour eectuer le rendu. Enn, nous presenterons l'algorithme general de rendu.

A titre d'exemple, nous presenterons diverses implantations \classiques" en synthese d'images. Ces implantations concernent les modeles de Lambert, Phong et Whitted.

l'utilisation d'un trace de rayons pour repartir l'energie dans une scene. Ceci peut ^etre tres utile dans une phase de pretraitement avant calcul d'image an de repartir correctement l'energie lumineuse dans la scene. Cette notion a ete introduite sous le nom de trace de rayons inverse Arv86]. Nous pourrons d'ailleurs voir que notre algorithme generique ne doit ^etre que fort peu modie an de remplir ce r^ole.