Lancer de Faisceaux en Synthèse d'Images - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 1998

Lancer de Faisceaux en Synthèse d'Images

Résumé

Ray tracing is one of the most important rendering techniques used in computer graphics. However, this algorithm cannot resolve all the aliasing problems, particulary small objects, or small shadows are missed. Beam tracers can be considered as an extension of classical ray tracers. They replace the concept of infinitesimal ray by that of beam. The "pyramidal beam tracer" studied here has some advantages: complex and expensive computations of conventional beam-object intersection are entirely avoided, so an extension to some non polyhedral scenes such as CSG ones is possible; usual approximations or complex approaches for refraction computations are avoided; soft shadows due to large light sources are possible; objetcs preselection based on simple tests and regular spatial subdivision can decrease computational time. Other applications of beam tracer are possible. We can use beam tracer in an exact visibility algorithm based on generalized maps. Beams are used to optimize this method and to determine precisely the position between two objetcs. In the case of a rendering process, beams can decrease the nomber of considered objets to determine the visibility, for example in a radiosity algorithm.
On peut affirmer, sans grand risque de se tromper, que le XXIème siècle sera, entre autres, celui des images virtuelles. Pour s'en convaincre, il suffit de regarder à quel point notre quotidien a changé ces dernières années. La part consacrée aux images de synthèse ne fait que croître. Prenons par exemple les bulletins météorologiques télévisés qui sont présentés à l'aide d'animations 3D, les films utilisant massivement des effets spéciaux informatiques, les publicités, ... Bien sûr, toutes les industries sont aussi très friandes d'images de synthèse. Et demain, peut-être nous déplacerons nous dans des mondes virtuels pour faire nos achats, aller au travail ou au cinéma ... Il est clair que les images de synthèse sont promises à un bel avenir mais on en "demandera toujours davantage", on cherchera à être plus rapide, plus précis et plus réaliste. Ce mémoire s'inscrit dans cette évolution et présente nos recherches dans ce domaine. Avant de présenter la démarche suivie, il est nécessaire d'aborder deux problèmes, relatifs à la synthèse d'images. Ces problèmes seront le fil directeur de nos travaux. Le premier problème est celui de l'aliassage. On regroupe dans ce terme trois phénomènes visuels qui nuisent au réalisme des images. Le premier, et le plus connu, est le phénomène des marches d'escalier sur les contours des objets. On peut le traiter efficacement avec un lancer de rayons et un suréchantillonnage adaptatif des pixels. Le deuxième est le phénomène des moirés sur les textures, il peut être traité en utilisant des textures filtrées a priori en fonction de différents taux de compression. Enfin, le troisième phénomène est la disparition des petits objets et des petites ombres. C'est un problème complexe, qu'un lancer de rayons conventionnel ne peut résoudre efficacement. En effet, il est impossible d'assurer qu'aucun objet ne se glisse entre les rayons d'épaisseur infinitésimale lancés. C'est, de plus, un problème important puisqu'il produit des effets involontaires de scintillement de petits objets dans les animations. Notons que les difficultés rencontrées avec de petits objets se retrouvent dans d'autres domaines comme l'acoustique ou les télécommunications. On cherche à calculer dans ces disciplines, avec précision, la propagation des ondes dans des environnements particuliers, par exemple un théâtre dans le cas des ondes sonores, ou une ville lors de la détermination de la visibilité entre deux antennes dédiée à une liaison microondes point à point. Le deuxième problème est le temps de calculs nécessaire pour obtenir une image de synthèse réaliste. Un algorithme tel que le tampon de profondeur ("z-buffer"), en général câblé sur les stations graphiques, permet un calcul très rapide des images et des animations. Malheureusement, des effets tels que la réfraction, la pénombre et l'éclairage diffus sont difficiles à réaliser, voire impossible. Ces manques laissent aux images produites un aspect synthétique et irréel. Pour produire des images plus réalistes, on peut utiliser des algorithmes de lancer de rayons et de calcul de radiosité. Le premier propose un très grand nombre d'effets spéciaux comme la réflexion, la réfraction, la pénombre, le flou de bougé, la profondeur de champs, ..., le deuxième crée des éclairages diffus très réalistes. Malheureusement, ces effets, augmentant le réalisme sont coûteux en temps de calculs. On constate en fait que réalisme et rapidité de calcul sont des critères qui ne vont pas souvent ensemble et qu'il faut la plupart du temps choisir entre les deux. Notre travail de recherche a donc consisté à trouver et développer des solutions à ces deux problèmes. Une première solution qui résout efficacement les problèmes d'aliassage et en particulier la disparition des petits objets et des petites ombres, est le remplacement des rayons d'épaisseur infinitésimale du lancer de rayons par des rayons volumiques. On parle alors de lancer de faisceaux. Cette approche n'est pas nouvelle puisque [AMAN 84] remplace les rayons par des cônes, [HECK 84] les remplace par un seul faisceau volumique et [GHAZ 92] les remplace par des pyramides. Ces propositions résolvent en principe les problèmes d'aliassage mais ne permettent pas toujours des effets de réflexion ou de réfraction réalistes et sont limitées à certains types de scènes. Une approche fondée sur [GHAZ 92] résout tous les problèmes d'aliassage, permet des effets de réfraction et de pénombre au moins aussi réaliste qu'un lancer de rayons et peut être utilisée pour des scènes non polygonales comme les scènes "CSG". Nous proposons, entre autres, dans ce mémoire l'étude détaillée de l'algorithme de [GHAZ 92] et des optimisations et extensions apportées [HASE 96][GHAZ 98]. Une autre solution, pour résoudre les problèmes d'aliassage, est de calculer exactement tous les contours visibles des objets à partir d'un point de vue. On parle alors d'algorithme de calcul de visibilité exacte. Pour cela, de manière très schématique, on projette tous les objets sur le plan de l'écran et on les découpe en fonction de leurs parties visibles depuis l'oeil. Cette approche est intéressante parce qu'elle permet de faire abstraction de toutes définitions d'un écran. On peut ainsi modifier la taille de l'image sans la recalculer entièrement et sans perte d'informations. Nous proposons dans ce mémoire un algorithme de calcul de visibilité exacte fondé sur le modèle des cartes généralisées et sur un lancer de faisceaux. Le modèle des cartes simplifie les différents découpages entre polygones et autorise une représentation des contours intégrant les propriétés d'adjacence entre les arêtes. Les faisceaux permettent de positionner très précisément les objets les uns par rapport aux autres et optimisent le nombre d'objets à traiter. Notre solution tient de plus compte des effets d'ombres portées, de réflexion et approche les effets de réfraction. Une solution pour diminuer les temps de calcul est de diminuer le nombre d'objets à traiter. Pour cela, il existe plusieurs approches comme les volumes englobants, les subdivisions spatiales régulières ou adaptatives, les "BSP", ... Mais toutes ces solutions ont leurs limites, en particulier lorsque l'on travaille avec des scènes décrites avec plusieurs dizaines de milliers de polygones ou lors d'animation. Nous proposons une approche qui, plutôt que de chercher les objets visibles, cherche ceux qui sont cachés afin de les exclure des traitements. Ces objets sont en général situés derrière d'autres objets très imposants qui rendent une partie de la scène non visible. Nous proposons donc des solutions pour trouver ces objets imposants et pour déterminer rapidement les objets qu'ils cachent. Ce mémoire se décompose en cinq chapitres. Dans le 1er chapitre, nous étudions les algorithmes fondés sur des variantes du lancer de rayons et les algorithmes qui utilisent, d'une manière ou d'une autre, des faisceaux. Pour synthétiser la présentation, nous avons classé les différentes approches en quatre catégories : * les algorithmes fondés sur des ensembles de rayons lancés en même temps ; * les algorithmes utilisant exclusivement des faisceaux ; * les algorithmes hybrides utilisant à la fois des rayons et des faisceaux ; * les algorithmes utilisant ponctuellement les faisceaux pour résoudre un problème. Le 2ième chapitre présente les résultats de l'analyse et de l'implémentation de l'algorithme de "lancer de faisceaux pyramidaux" proposé par [GHAZ 92] pour des scènes polygonales. Nous verrons que les problèmes d'aliassage sont résolus mais que les temps de calculs restent importants. Une extension de cet algorithme aux scènes non polygonales ("CSG") est présentée. Le chapitre 3 reprend l'algorithme de "lancer de faisceaux pyramidaux" pour améliorer ses performances. Plusieurs points de cet algorithme sont optimisés pour finalement améliorer très sensiblement les temps de calculs. Une nouvelle extension permettant des effets de pénombre avec des sources lumineuses volumiques est décrite. Le chapitre 4 propose un nouvel algorithme de visibilité. Il est fondé sur les "cartes généralisées" [LIEN 89c] et sur un lancer de faisceaux. Cet algorithme permet de produire une description de tous les contours des objets, des ombres, des réflexions et des réfractions sur le plan image. La construction de ces contours est facilitée par le modèle topologique utilisé et en particulier par les propriétés d'adjacence dont on dispose. Le dernier chapitre présente une méthode permettant de diminuer le nombre d'objets à traiter dans un algorithme de visibilité. Pour cela, des faisceaux sont lancés à partir du point de vue sur des polygones imposants afin de déterminer les objets de la scène manifestement cachés. Cette approche est exploitée dans un algorithme de calcul de la radiosité.
Fichier principal
Vignette du fichier
BeamTracing.pdf (3.41 Mo) Télécharger le fichier
Vignette du fichier
img15.gif (22.9 Ko) Télécharger le fichier
Vignette du fichier
img16.gif (10.34 Ko) Télécharger le fichier
Vignette du fichier
img17.gif (14.74 Ko) Télécharger le fichier
Vignette du fichier
img18.gif (15.05 Ko) Télécharger le fichier
Vignette du fichier
img19.gif (42.82 Ko) Télécharger le fichier
Vignette du fichier
img20.gif (6.42 Ko) Télécharger le fichier
Vignette du fichier
img21.gif (12.7 Ko) Télécharger le fichier
Vignette du fichier
img22.gif (10.82 Ko) Télécharger le fichier
Format : Figure, Image
Format : Figure, Image
Format : Figure, Image
Format : Figure, Image
Format : Figure, Image
Format : Figure, Image
Format : Figure, Image
Format : Figure, Image
Loading...

Dates et versions

tel-00527254 , version 1 (18-10-2010)

Identifiants

  • HAL Id : tel-00527254 , version 1

Citer

Jean-Marc Hasenfratz. Lancer de Faisceaux en Synthèse d'Images. Informatique [cs]. Université de Limoges, 1998. Français. ⟨NNT : ⟩. ⟨tel-00527254⟩

Collections

UNILIM XLIM
259 Consultations
353 Téléchargements

Partager

Gmail Facebook X LinkedIn More