D'un point du vue général, le rendu en temps réel est un sujet crucial en synthèse d'images. Dans le domaine de la simulation d'environnements virtuels, comme les jeux vidéos ou les simulateurs, l'interaction avec l'environnement est primordiale. Néanmoins, les contraintes de temps sont drastiques : la synthèse des images doit s'effectuer à une cadence au moins égale à 20 images par seconde, sous peine de perdre la sensation d'immersion dans l'environnement virtuel. Jusqu'à présent, il y a toujours un grand décalage entre la qualité visuelle des images de synthèse conventionnelles, comme par exemple celles utilisées dans le domaine de la post-production cinématographique, avec les images de synthèse calculées en temps réel. Avec l'apparition des cartes graphiques spécialement dédiées aux calculs de rendu, cette distinction tend à s'estomper.
De très nombreux travaux ont porté sur le rendu en temps réel de modèles complexes. Les techniques de simplification de maillage, de rendu à base d'images ou de points sont directement liées à cette problématique. Chacune de ces classes de méthode a ses propres avantages et inconvénients, que nous avons détaillés dans notre état de l'art.
Nous nous sommes efforcés, tout au long de cette thèse, de tirer parti
des avantages de ces différentes approches. Nous avons proposé des
méthodes transversales, hybrides, avec à chaque fois l'optique ''temps-réel''
en ligne de mire.
Nos premiers travaux ont porté sur l'extension au temps réel des méthodes d'interpolation d'images. L'interpolation d'image est séduisante car elle permet de générer les images intermédiaires à des points de vue de référence pré-acquis, par un calcul dépendant uniquement du nombre de pixels affichés, c'est à dire totalement indépendant de la complexité géométrique de la scène. Nous avons dans ce cadre développé trois méthodes distinctes, fonctionnant en temps réel.
La première s'apparente aux textures dépendantes du point de vue (VDTM, ''View-Dependent Texture Mapping'') de Debevec [DYB98,DTM96], car nous effectuons une moyenne pondérée de couleurs issues de points de vue de référence. Néanmoins, notre méthode est appliquée à un modèle virtuel, et non à des images réelles : le maillage simplifié de l'objet est peut alors être automatiquement créé, à l'aide des techniques de simplification de maillage conventionnelles, ce qui n'est pas le cas des VDTM qui nécessitent un lourd travail de reconstruction manuel. De plus, notre modèle est automatiquement paramétré, lors du rendu, ce qui n'est pas le cas du VDTM. Finalement, nous prenons en compte un éclairement variable de la scène, à l'aide de textures de normales associées au point de vue. Outre la possibilité de faire varier l'éclairement de la surface du modèle de façon réaliste, les textures de normales, également interpolées lors du mélange de points de vue, améliorent notablement la qualité du rendu.
La seconde méthode d'interpolation d'images que nous avons étudiée est le transfert de points, au sens de l'interpolation de points de vue de Seitz et Dyer [SD96]. Nous avons implémenté la méthode à l'aide du GPU, après différents travaux préliminaires. Notre méthode, quoique imparfaite dans le cas général, donne de bons résultats quand les points de vue de référence ne sont pas trop éloignés.
La dernière méthode que nous avons développée est la création d'un
maillage basé sur une image de profondeur. Nous n'avons fait qu'aborder
le problème. La solution que nous avons proposée génère trop de triangles.
La création de tels maillages basés sur une image de profondeurs est
un sujet complexe qui pourrait faire l'objet d'une thèse à lui seul.
Une solution pour obtenir l'image d'un modèle complexe en un temps
indépendant de sa complexité géométrique est de précalculer la visibilité
des points de sa surface dans toutes les directions, à partir d'un
plan positionné autour de lui. Nous avons implémenté cette approche
directe en développant les textures directionnelles. Celles-ci
s'apparentent aux BTFs de Dischler [Dis98], car
une texture stocke en chaque élément de texture la géométrie d'un
modèle complexe. Nous avons étendu le principe au temps réel en développant
une structure à base de surfels quantifiés qui permet de stocker toutes
les informations nécessaires au calcul de l'illumination d'un point,
y compris sa visibilité. Nous avons développé une méthode de représentation
de l'hémisphère de visibilité sous une forme compacte. La structure
décrivant la scène complexe, le nuage de surfels, occupe très peu
d'espace mémoire. Néanmoins, la structure de visibilité occupe beaucoup
de mémoire, ce qui restreint l'intérêt des textures directionnelles
en l'état.
Finalement, nous avons implémenté une technique d'interpolation de
points de vue basée sur la rétroprojection de points qui donne d'excellents
résultats, tant en termes d'espace mémoire et de vitesse de rendu
qu'en termes de qualité visuelle. Nous avons appliqué cette méthode
de deux façons différentes. La première permet de reconstruire l'image
du modèle complexe pour un point de vue se situant sur une trajectoire
fixe autour de la scène. La seconde se base sur un maillage simplifié
du modèle. Cette dernière méthode est la plus rapide car elle ne dépend
pratiquement pas du processeur central. Le temps de rendu dépend uniquement
du nombre de pixels affichés, c'est à dire de la proportion d'espace
écran qu'occupe le maillage simplifié. La méthode est en outre très
facile d'implémentation et directement compatible avec tous les modèles
d'éclairement courants en rendu en temps réel.
Concernant cette dernière méthode, de nombreux points restent améliorables. La silhouette, par exemple, est celle du maillage simplifié, ce qui peut poser problème dans certains cas. De plus, l'efficacité de l'interpolation pourrait être améliorée en évitant certains calculs redondants.
Concernant notre représentation en harmoniques de l'hémisphère d'ombrage des points, il serait facile d'implémenter cette fonctionnalité à l'aide de la carte graphique, en stockant les valeurs des principaux harmoniques dans une texture.
D'un point de vue général, le sens que nous donnons au mot image dans le domaine du rendu, a évolué. Nous parlons maintenant d'image de profondeurs, nous manipulons des images (ou textures) de normales, en plus de l'image traditionnelle de couleurs. Nos travaux ont fait intensivement appel à une représentation en image de profondeurs (z-buffer) de la scène. A bien des égards, ce type d'image s'apparente à un nuage de points : l'ensemble des points se projetant sur la caméra, exprimés dans son repère. Les dernières évolutions en matière de programmabilité des cartes graphiques permettent de tirer parti, comme nous l'avons fait, de cette connaissance explicite du relief de la scène. Cette approche hybride est très féconde et de nombreux travaux restent à faire : des algorithmes plus rapides et donnant de meilleurs résultats visuels peuvent être trouvés.
Porquet Damien 2005-03-02