Sujets de DEA 2004-2005
Rendu expressif
Joëlle Thollot
Dessin au trait en 3D
De nombreaux travaux ont été effectués dans le
domaine du rendu expressif dans le but de faire un rendu au trait de
modèles 3D. La question que l'on se pose est alors quelles sont
les lignes qui permettent de définir la forme d'un objet et
comment les calcule-t-on ?
Deux types de lignes ont été définies :
- les lignes de silhouettes, contour, "suggestive contour" qui sont
dependantes du point de vue (cf. fig 1);
- les lignes caratéristiques : vallées, montagnes,
crêtes qui sont dependantes de la géométrie (cf.
fig2).
Ces deux types de lignes sont calculables à partir d'un maillage
3D, de manière plus ou moins efficace et précise selon
les méthodes utilisées. Cependant les résultats
obtenus restent insatisfaisants, soit parce que l'on n'obtient pas
assez de lignes, soit parce que ce ne sont pas celles qu'un artiste
aurait choisi de dessiner.
Nous souhaitons faire une étude sur ce sujet pour determiner
quelles sont les lignes utiles pour définir une forme, comment
elles évoluent selon le point de vue, dans quelle mesure elles
dépendent de shemas pré-conçus sur l'apparence que
doit avoir un objet (un oeil de face est toujours dessiné de la
même manière), dans quelle mesure elles reflètent
l'éclairage, etc...
Pour cela nous proposons de définir une application permettant
de dessiner sur un objet 3D, sous differents points de vue. De faire
evoluer les lignes entre 2 points de vue pour obtenir un dessin
cohérent sous tous les angles. Et aussi d'etudier le lien entre
les lignes dessinées et celles caculées.
Fig 1 : contour et suggestive contours :
http://www.cs.princeton.edu/gfx/pubs/DeCarlo_2003_SCF/index.php
Fig 2 : feature lines
gauche :
http://www-i8.informatik.rwth-aachen.de/publications/publications_2000.html
droite :
http://www.cad.zju.edu.cn/home/mori/pages/research.php
Stylisation d'une animation à partir d'une séquence
de G-buffers (plusieurs sujets)
Nous voulons proposer un système permettant à un artiste
de styliser une animation qu'il aurait faite avec un modeleur
classique. Pour cela nous avons choisi une approche qui travaillerait
avec la succession des images de l'animation augmentées de
G-buffer (
geometry-buffer
[saito-Takahashi]) qui sont des images
refletant des informations 3D de la scène : image de profondeur,
image des normales, etc ....
Pour chaque frame de l'animation on possède donc plusieurs
G-buffer (l'image classique pouvant etre considérée comme
un G-buffer de couleur). Si ensuite on regarde l'ensemble de
l'animation (on se place en 2D+temps) on peut la voir comme une pile
d'images ou comme un cube dans l'espace/temps. On appelle cela le video
cube et ce principe a été utilisé dans un but
identique pour le traitement des videos : video tooning [
wang et al], cf figure
ci-dessous.
Nous proposons ci-dessous un pipeline de rendu basé sur ces
idées dans lequel diverses parties sont à
étudier et sont autant de sujets de recherche possibles :
Le système spatial est un système de rendu classique,
offert par n'importe quel modeleur (3dS, maya...). En sortie on
récupère un ensemble de G-buffers indexés dans le
temps pour former une animation. Dans un rendu standard on s'arrete
là ou on passe directement dans un logiciel de compositing pour
ajouter des effets spéciaux en combinant les diverses images de
l'animation. Typiquement l'infographiste va faire differents rendus
d'une même scène avec des éclairages differents
pour les compositer
ensuite.
Nous ajoutons donc entre le rendu et le compositing un pipeline de
traitement permettant de styliser et d'abstraire l'animation. Il y a 3
étapes (
voir
la version shématique ici):
- l'extraction de primitives 2d+temps dans l'animation, ce peut
être des régions (blobs en 2d+t) ou des lignes (surfaces
en 2d+t ou
edge sheets) comme dans video tooning, ou bien des points (lignes en
2d+t);
- le calcul des attributs de ces primitives;
- la génération de marques pour "peindre" l'animation
en remplissant ou dessinant les primitives selon leurs attributs.
Sujet 1 : extraction des régions en 2d+t
C'est une partie du système d'extraction des primitives. On peut
la décomposer en deux étapes :
- Abstraction des couleurs pour obtenir une simplifiaction des
images;
- Extraction des régions en fonction des couleurs : une
région est une zone de l'espace/temps dont tous les points ont
à
peu près la même couleur.
Il faut en plus que cette région soit paramétrée
pour pouvoir ensuite la remplir avec des marques. Cela donne le
schéma suivant :
Dans le cadre d'un projet de DEA on se placera dans un cas
simplifié : on suppose que l'abstraction des couleurs a
déjà été en partie effectuée par un
rendu de type "cartoon". On aura donc des images facilement
segmentables en régions car les couleurs seront des applats.
Comme dans les images ci-dessous :
Turorial
blender sur le toonshading
http://cm.bell-labs.com/cm/cs/who/howard/toonshade.html
Les questions de recherches à résoudre seront alors
comment segmenter l'animation en 2d+t (suivre une région dans le
temps) pour obtenir un volume.
Puis comment obtenir une paramétrisation de ce volume permettant
de remplir chaque tranche (chaque frame) avec des marques en conservant
une cohérence au cours de l'animation.
Ce projet de DEA s'appuiera sur les travaux suivants :
Comprehensible
rendering of 3D shapes - Saito et Takahashi 1990
Video tooning - Wang et
al - 2004
Sujet 2 : extraction des lignes et des points en 2d+t
C'est une partie du système d'extraction des primitives. Les
points et les lignes peuvent représenter deux types
d'infromations, soit des informations géométriques
(silhouettes, contours) soit des informations 2D (postionnement ou
orientation dans l'image) permettant de guider le système de
marques.
De plus, il est possible que d'une image à l'autre des lignes
apparaissent/disparaissent ou fusionnent, il faudra donc ajouter un
traitement de ces évenements pour obtenir une evolution
temporelle cohérente. De même, il est possible que trop de
points ou lignes soient extraits dans certaines images, on souhaite
donc aussi avoir un méchanisme de simplification et abstraction
de ces primitves.
Enfin, ces primitives 2d+t devront être
paramétrisées correctement pour pouvoir assurer une
stylisation correcte lors de la création des marques
associées.
On peut résumer cela dans le schéma suivant :
Ce projet consistera à dêfinir des méthodes pour
extraire les contours dans les G-buffer et les pramétriser
correctement. Pour cela il faudra être capable de suivre les
contours entre deux images successives. On s'impirera pour cela des
travaux de
Kalnins
sur les silhouettes.
Ce projet de DEA s'appuiera sur les travaux suivants :
Comprehensible
rendering of 3D shapes - Saito et Takahashi 1990
Video tooning - Wang et
al - 2004
Sujet 3 : génération des marques
C'est une partie du système de gestion des marques. On suppose
que l'on possède les primtives 2d+t de l'animation avec une
paramétrisation et des attributs et on se pose la question de la
géneration des marques. La contrainte est la cohérence
temporelle de l'animation. Elle doit être en partie
assurée par les primitives sous-jacentes. Par exemple, dans le
cas des contours, la primitive associée est une surface en 2d+t
qui doit être suffisamment lisse pour assurer cette
cohérence dans la position du contour. En revanche les
primitves ne décrivent pas le style et le type de marque.
On cherchera donc à définir un ensemble de
paramètres permettant de définir le style des marques.
Pour cela on s'inspirera des travaux NPR portant sur la simulation de
différents types de peinture/traits et sur des oeuvres
d'artistes pour essayer d'en tirer les caractérisitiques
communes. Le générateur de marques peut-être se
schématiser comme ci-dessous :
Ce schéma donne uniquement les 3 grands types de marques :
points, lignes, regions.
Il reste à définir leurs attributs (forme, taille,
couleur, opacité, réaction au melange,....) et les outils
logiciels pour les gérer.
Pour une bibliographie sur le NPR, on pourra regarder :
http://www.red3d.com/cwr/npr/