Julien Viana - Courbes stylisées à la surface d’objets 3D pour un rendu temporellement cohérent en temps réel - Résultats
De Ensiwiki.
Sommaire |
Courbes stylisées à la surface d’objets 3D pour un rendu temporellement cohérent en temps réel
| Labo | INRIA |
| Equipe | ARTIS |
| Encadrants | Joelle.Thollot@imag.fr,Adrien.Bousseau@imag.fr
|
Etudiant
Viana, Julien
Introduction
De plus en plus de jeux vidéo préfèrent se démarquer en proposant un rendu non photo-réaliste, on observe notamment un style aquarelle pour le jeu Okami ou style BD pour le jeu XIII. Dans cette perspective, mon travail durant ce TER était de représenter des scènes 3D par des lignes caractéristiques stylisées. En s’inspirant de l’étude que les frères Gooch ont faite sur la synthèse de dessins sur papier dans Non-Photorealistic Rendering (AK Peters Ltd. 2001), il a été décidé que le but du TER serait de reproduire des styles crayons ou fusain.
Ainsi, les grandes étapes étaient d’extraire les lignes représentatives de la forme d’un objet 3D et de les styliser grâce à une texture de crayon ou fusain. De telles stylisations avaient déjà été proposées auparavant mais les résultats produits souffraient d’un problème de cohérence (lors d’un zoom notamment). Ce problème pouvait être alors résolu en appliquant une méthode proposée un an plus tôt par Pierre Bénard, membre d’ARTIS, intitulée Textures volumiques auto-zoomables pour une stylisation temporellement cohérente en temps réel.
Eléments de pré-requis
La méthode des textures volumiques auto-zoomables de Pierre Bénard propose de réparer les problèmes de cohérences temporelles visibles lors de mouvement 3D d’un objet possédant une stylisation 2D (taille des marques de style à l’écran, glissement sur l’objet…). Globalement, le principe est de superposer plusieurs niveaux de stylisation (appelé octave) à différentes échelles de zoom. Les coordonnées de texture (u,v,w) de chaque sommet p(x,y,z) de l’objet 3D dépendent alors de la distance de la caméra à l’objet et sont données par la formule :
Travail réalisé
La première idée pour styliser un objet 3D par des lignes représentatives et donner l’illusion du 2D (effet dessiné) est d’utiliser la silhouette. Mais une silhouette ne montre pas le volume d’un objet et les détails à sa surface. Il faut donc extraire ces lignes à partir de l’information de courbure car les maximums et minimums locaux de la courbure correspondent aux lignes représentatives de la forme (crêtes et aux vallées à la surface de l’objet).
La première tâche que j’ai effectué était donc de représenter cette information de courbure dans une image (partie sombre pour une crête et claire pour une vallée par exemple, voir fig. 1) puis de traiter cette image pour ne garder que les extremums locaux avec une largeur de 1 pixel. Cependant le résultat n’est pas parfait car on observe beaucoup de bruit sur les parties les plus lisses de l’objet 3D (fig. 2). En effet, le traitement garde non seulement les crêtes et les vallées, mais aussi quelques arêtes du mesh d’origine (un objet 3D étant composé de sommets et d’arêtes) interprétées comme de petites crêtes sur les parties lisses. Pour corriger ce bruit, il est possible de pré filtrer l’image de courbure dans le but de faire disparaître les parties lisses (fig. 3). Concrètement, ça consiste à fixer un palier au-dessus ou en dessous duquel l’information de courbure ne sera plus affichée. Ensuite, on applique le même traitement que précédemment pour extraire les lignes et l’image obtenue est beaucoup moins bruitée (fig. 4).
Une fois les lignes extraites, la deuxième étape effectuée était de styliser ces lignes grâce à une texture 3D. C’est l’étape où l’observation d’un vrai dessin au crayon ou au fusain est primordiale pour tenter de reproduire des stylisations réalistes. Par exemple, pour que les marques de styles soient visibles, il faut d’abord élargir les lignes extraites à certains endroits. Malheureusement j’ai manqué de temps durant le TER pour achever cette étape et je me suis contenté de reprendre une information de courbure filtrée de telle sorte que les lignes extraites soient plus larges. On choisie ensuite une texture 3D irrégulière pour essayer de rendre les irrégularités des lignes observées sur un dessin au crayon (grain du papier, type de crayon…). On affiche alors l’objet 3D texturé dans une nouvelle image (fig. 5) et on combine les deux images. Le résultat est un objet représenté par des lignes irrégulières comme celle d’un dessin sur papier (fig.6). Ce résultat est loin d’être parfaitement réaliste et peut être amélioré en jouant sur la largeur des lignes et le choix de texture.
Comme dit dans l’introduction, la stylisation peut apporter un problème de cohérence lors d’un déplacement de la caméra ou de l’objet, notamment la texture apparaîtra avec une taille différente selon que l’objet est loin ou près de la caméra (fig. 7). Pour donner plus de réalisme lors de tels mouvements, il faudrait préserver une taille constante des marques de styles dans l’espace écran (taille constante du grain du papier). J’ai alors appliqué la méthode des textures volumiques auto-zoomables [Bénard et al. 2008] pour corriger ces problèmes de cohérence temporelle ce qui permet de pouvoir animer les objets stylisés tout en gardant un certain réalisme des marques de styles (fig. 8).
Conclusion
Ainsi, j’ai obtenu une représentation d’objet 3D par une stylisation 2D. La simplicité de l’approche permet d’utiliser les résultats dans des applications en temps réel (jeux vidéo par exemple). Les principaux buts fixés dès le début du TER ont été atteints, à savoir de réussir à représenter un objet 3D par des lignes stylisées comme s’il était dessiné au crayon. Le temps a tout de même manqué pour parfaire le résultat final et donner plus d’exemples. Le bilan est tout de même positif, aussi bien pour l’expérience acquise au long du projet, pour la découverte du milieu de la recherche que pour les résultats apportés.
Les perspectives pour ce sujet restent vastes. Premièrement, le rendu peut être amélioré en implémentant le traitement de la courbure directement lors de son calcul en se servant de la direction de courbure. Ce calcul, plus précis qu’un traitement d’image, pourrait effacer les défauts notables dans certains résultats. De plus, la méthode introduite par Bénard peut être appliquées à de nombreuses autres formes de stylisations autres que le rendu par des lignes représentatives.
QUELQUES RESULTATS :
Références
[1] Bénard, P., Bousseau, A., and Thollot, J. 2008. Dynamic Solid Textures for Real-Time Coherent Stylization. In NPAR 2008.
[2] Gooch, B., and Gooch, A. 2001. Non-Photorealistic Rendering. AK Peters Ltd
[3] Breslav S., Szerszen K., Markosian L., Barla P., Thollot J. : Dynamic 2d patterns for shading 3d scenes. SIGGRAPH ’07, Computer Graphic Proceedings 26, 3 (2007), 20.
[4] Judd T., Durand F., Adelson E. H.: Apparent ridges for line drawing. ACM Trans. Graph. 26, 3 (2007), 19.
Documents additionnels
- Transparents de la soutenance : Media:Rapport_TER2009_Julien_Viana.pdf
- Rapport : Media:Slides_TER2009_Julien_Viana.ppt
