Octree Textures for Painting and Rendering Textures on

  • Slides: 22
Download presentation
Octree Textures for Painting and Rendering Textures on Unparameterized Models Master MM U. Bordeaux

Octree Textures for Painting and Rendering Textures on Unparameterized Models Master MM U. Bordeaux 1 Stéphanie Recco Xavier Larrodé

Rappel : Principales étapes du « texture mapping » Obtenir la couleur de l

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échantillonage Plaquage • 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écise Implémenté en Hardware. Inconvenients • paramétrer à la « main » • stocker plusieurs textures 2 D • 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 1976 Paramétrisation par l ’artiste Blinn et Newell Catmull en

Exemples: à la main 1976 Paramétrisation par l ’artiste Blinn et Newell Catmull en projetant 80’s 1985 Paramétrisation automatique Ma et Lin Maillot Hunter Texture Volumique Peachey, Perlin Sloan Debry, Benson …

Optimisations réalisées: Taille de la texture (Hunter et Cohen ) [1] • suppression fréquences

Optimisations réalisées: Taille de la texture (Hunter et Cohen ) [1] • suppression fréquences locales • utilisation de quadtree (voir rappel apres) Optimiser les coordonnées de textures (J. Sloan, D. M. Weinstein, J. D. Brederson ) [3]

Exemples: Sans optimisation Avec optimisation

Exemples: Sans optimisation Avec optimisation

Génération automatique des surfaces UV: Coordonnées Textures (s, t) [4] Levy 2002 Coordonnées Objet

Génération automatique des surfaces UV: Coordonnées Textures (s, t) [4] Levy 2002 Coordonnées Objet (u, v)

Volumetric textures: • fonction à 3 paramètres • tableau à 3 dimensions • sculpture

Volumetric textures: • fonction à 3 paramètres • tableau à 3 dimensions • sculpture Avantage • cohérence des faces • pas de discontinuité • marche bien sur les objets complexes • pas « aliasing » Nécessite trop d ’espace mémoire. . . (sauf dans le cas de la fonction…) [6] (K. Perlin et D. Peachy 85)

Paramétrisation automatique avec modèle 3 D : • correspond à un morphing 3 D

Paramétrisation automatique avec modèle 3 D : • correspond à un morphing 3 D • toujours des problèmes de distorsion : • beaucoup de temps • problèmes de maillage? (B. Levy) [2]

Rappel : Quadtree Structure de donnée : • encode une image 2 D en

Rappel : Quadtree Structure de donnée : • encode une image 2 D 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 : Octree [7] Samat 1990 Structure de donnée : Un octree est un

Rappel : Octree [7] Samat 1990 Structure 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 3 D On 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 • 3 D-> plus de problème de discontinuité • -> de distorsion

Motivations: • pallier aux limites de la paramétrisation : • fastifieux • difficile (surfaces

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 2 D

L’octree comme texture • Correspondance entre les coordonnées du modèle de texture et celle

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

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

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)

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

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

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

Inconvénients ü L’octex peut prendre beaucoup de place en mémoire. ü On est obligé

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

Comparaison avec les textures 2 D üSelon [B] l ’octree fera la même taille

Comparaison avec les textures 2 D üSelon [B] l ’octree fera la même taille qu ’une texture 2 D voir inférieur üSelon [A] on aurait un surplus de taille de 33% : ou cas exceptionnel ex: une texture avec 2 couleurs : Texture 2 D 3 Mo Octree 50 bytes mais non révélateur. . .

Visualisation: Pas encore de Support Hardware pour Octree : logiciel de rendu Mais aussi

Visualisation: Pas encore de Support Hardware pour Octree : logiciel de rendu Mais aussi de « 3 D Paint » en GPL ! : thrownclear. com [A] Debry &. . .

Résultats:

Résultats:

Biblio : 2 articles : [A] Debry, Gibbs, Petty, Robins ; Painting and Rendering

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