Upload
adrienne-tran
View
128
Download
1
Embed Size (px)
Citation preview
Octree Textures for Painting and Rendering Textures on
Unparameterized Models
Master MMU.Bordeaux 1
Stéphanie ReccoXavier Larrodé
Rappel : Principales étapes du « texture mapping »
Obtenir la couleur de l ’image•sauvegarder tableau : (reconstruire une image continue)•lisser l ’image (éviter les distorsions ex:perspective)•filtrer l ’image (enlever les H.fréquences ex: aliasing)•reéchantillonagePlaquage•appliquer l ’image sur la surface de l ’objet (coordonnées textures sur les vertices de l ’objet)•interpolation des coordonnées pour obtenir sur chaque pixels du polygone une couleur préciseImplémenté en Hardware .
Inconvenients•paramétrer à la « main »•stocker plusieurs textures 2D•problèmes de LOD , discontinuité …•manque de cohérence entre les faces•difficile sur les surfaces complexes
Texture : a un point est associé une couleur
Exemples:
à la main en projetant
Paramétrisation par l ’artiste
Paramétrisation automatique
Texture Volumique
…
Blinn et Newell
80’s
Catmull
Ma et Lin
Maillot
Hunter
1985
Sloan
Peachey, Perlin
Debry, Benson
1976
Optimisations réalisées:
•suppression fréquences locales •utilisation de quadtree (voir rappel apres)
Taille de la texture (Hunter et Cohen ) [1]
Optimiser les coordonnées de textures (J.Sloan, D.M.Weinstein,J.D.Brederson ) [3]
Sans optimisation
Avec optimisation
Exemples:
Génération automatique des surfaces UV: [4] Levy 2002
Coordonnées Textures(s,t)
Coordonnées Objet(u,v)
Volumetric textures: [6] (K. Perlin et D. Peachy 85)
•fonction à 3 paramètres•tableau à 3 dimensions •sculpture
•cohérence des faces•pas de discontinuité•marche bien sur les objets complexes•pas « aliasing »
Avantage
Nécessite trop d ’espace mémoire...(sauf dans le cas de la fonction…)
Paramétrisation automatique avec modèle 3D :(B.Levy) [2]
•correspond à un morphing 3D
•toujours des problèmes de distorsion :•beaucoup de temps •problèmes de maillage?
Rappel : QuadtreeStructure de donnée :• encode une image 2D en plaçant des sous partie de l ’image dans un arbre.•chaque nœud de l ’arbre dispose d ’au plus 4 fils.• généralement on partitionne l ’image en 4 quadrants ayant chacun un nœud .•et donc représentant 1/4 de l ’image et ainsi de suite pour ses fils…•on continue jusqu ’à avoir une région suffisamment simple :
•taille d ’un pixel•couleur•résolution souhaité (certaine hauteur dans l ’arbre)
Rappel : OctreeStructure de donnée :Un octree est un quadtree mais avec 8 fils au lieu de 4.Ce qui en fait un bon outils pour décomposer une scène en 3DOn décompose l ’octree de la même façon que le quadtree jusqu ’à obtenir une partition désirée.
Propriétés :•compression de donnée•gestion de la profondeur de l ’arbre : LOD•la résolution peut varier le long de la texture•générer facilement les coordonnées de Texture •3D-> plus de problème de discontinuité• -> de distorsion
[7] Samat 1990
Motivations:
•pallier aux limites de la paramétrisation : •fastifieux•difficile (surfaces implicites, subdivision, maillages détaillés)
•un model doit pouvoir etre “peint”
•plus de discontinuitées,coller à la topologie
•plusieurs niveau de détails
•mémoire utilisé comparable à texture 2D
L’octree comme texture• Correspondance entre les coordonnées du modèle de texture
et celle du modèle géométrique
• Donc pas de discontinuité, la texture est aussi lisse et continue que le modèle lui-même (caractéristique du volumétrique)
• La couleur est stockées dans les feuilles de l’octree. (si nécessaire)
• D’autres données peuvent être stockées (normales…), donc cette nouvelle structure sera appelée octexture (octex)
Le détail dans l’arbre est donnée par le détail dans la texture
Chaque nœud contient une couleur.
Le nœud père a une couleur seulement si certain fils n’ont pas été crées (moyenne de tous ces fils).
Enfant potentiel crée par géométrie : création des fils rouges .( rouge couleur de leur père dans l’octree)
Enfant crée par la texture : création de fils pour s’approcher de la taille du point rouge.
Peindre la texture
La création de la texture ne peut se faire que par « peinture ».
Les détails de la texture peuvent être ajoutés au fur et à mesure comme en peinture. (niveau de détail)
On affiche seulement les parties visibles (grace au Z-buffer et au clipping)
Puis on fait correspondre les coordonnées de la texture à celle de l’objet (en étant le plus « fin » possible).
Seulement les cellules (octree) qui intersectent la surface de l ’objet sont mémorisés
Simplifications
Suppression des feuilles qui ont la même couleur que leur père (à près)
Donc l’octex peut diminuer en profondeur en fonction du niveau de détail demandé (fixer un ).
Attention il faut limiter la taille de l’octex en mémoire, pour cela il faut limiter les détails donc limiter les possibilités du créateur de la texture.
Utilisations des normales
Problème causés par les objets fins
Pour éviter cela on stocke la normale de la surface et sa couleur correspondante(8 bits) dans [A] et 6 « flags » dans [B]
Mémoire
La place en mémoire varie selon plusieurs critères :Le nombre d’informations stockées seuls les 8 pointeurs fils stockés (4 bits chacun)la normale de la surface(8 bits)la couleur (nombre de bit dépend de la représentation utilisée)
Amélioration possible avec l’utilisation d’un octree sans pointeur :« pointerless » [7] (Samat 1991)
Le niveau de détail demandé : plus on dessinera de détail, plus l’octex sera lourd
Avantages
N’importe quel modèles, pouvant être rendu, peut être texturé. Différents niveaux de détails adjacents ne donne pas de discontinuité
(interpolation) Le niveaux de détail n’est pas limité (sauf par la mémoire), on a le control total
sur la texture.
Inconvénients
L’octex peut prendre beaucoup de place en mémoire. On est obligé de peindre sa texture ( en utilisant un logiciel
spécifique) On ne résout pas le problème de paramétrisation
Comparaison avec les textures 2D
Selon [B] l ’octree fera la même taille qu ’une texture 2D voir inférieur
Selon [A] on aurait un surplus de taille de 33% :ou cas exceptionnel ex: une texture avec 2 couleurs : Texture 2D 3Mo Octree 50 bytesmais non révélateur...
Visualisation:Pas encore de Support Hardware pour Octree :logiciel de rendu Mais aussi de « 3D Paint »
[A] Debry &...
en GPL ! : thrownclear.com
Résultats:
Biblio :2 articles :
[A] Debry,Gibbs, Petty,Robins ; Painting and Rendering Textures on Uparameterized proceedings of SIGGRAPH 2002
[B] D.Benson & J.Davis : Octree Textures 2002 proceedings of SIGGRAPH 2002
[1] Hunter et Cohen 2000 : Uniform frequency images [2] B.Levy 2001 :Constrained texture mapping for polgonal meshes[3] J.Sloan, D.M.Weinstein,J.D.Brederson : Importance driven texture coordiante optimization [4] Levy 2002[6] (K. Perlin et D. Peachy 85)[7] Samat 1991
Pour plus d ’infos sur les articles consultez la bib complète des deux premiers articles...