octree textures for painting and rendering textures on unparameterized models master mm u.bordeaux 1...

Post on 03-Apr-2015

129 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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...

top related