Ptex : une technique pour se passer du dépliage d'UV

Si vous avez déjà lutté lors du dépliage de l'UV map d'un modèle 3D, cet article est fait pour vous !

Ce billet de blog est plus long que d'habitude, j'espère avoir su rester raisonnable... Je suis preneur de toute critique ou remarque, pour pouvoir éventuellement faire d'autres articles de ce type.

Brent Burley et Dylan Lacewell, qui travaillent tous deux pour les studios d'animation Disney, ont mis au point une technique visant à éliminer du processus de création 3D l'étape de l'assignement d'UV. Le but est de gagner du temps -et donc de l'argent- à l'aide d'un système ne nécessitant aucune étape manuelle, et pouvant gérer des modèles arbitraires en complexité ou en niveau de détail des textures.

Petit rappel : au fait, c'est quoi une map UV ?

Une UV map est une texture 2D utilisée pour texturer un objet 3D ; une sorte de papier peint que l'on va appliquer sur ce modèle. Ainsi, une mappemonde peut servir à texturer un globe. En pratique, on part de l'objet 3D, et on va créer les parties planes, en coupant au besoin. Un peu comme pour récupérer la peau d'un animal, en somme.

Ce processus est assez complexe pour des objets définis en surface de subdivision -le type de modélisation largement utilisé dans l'industrie du cinéma d'animation et du jeu vidéo- , car cette mise à plat n'a alors rien de naturel.

Selon le type d'objet, on aura tendance soit à déformer un peu plus la texture (comme la mappemonde, déformée aux pôles) soit à devoir couper plus. La difficulté lorsque la texture est très découpée est bien entendu d'avoir des raccords invisibles sur l'objet.

Il est possible de réaliser de façon automatique ou semi-automatique cette opération via différentes méthodes, dont voici deux exemples :

  • le pelting (qui consiste littéralement à peler l'objet) est largement utilisé. La "peau" est étirée pour être mise à plat. La méthode, développée par Piponi et Borshukov, combine par ailleurs plusieurs textures qui se superposent pour éliminer toute trace visuelle des "coutures" sur le rendu de l'objet 3D.
    Texture pelting: Piponi et Borshukov, Siggraph 2000
    Texture pelting: Piponi et Borshukov, Siggraph 2000

    Cette façon de procéder peut néanmoins créer des problèmes de filtrage de textures, et ne peut pas s'appliquer à tous les types d'objets.
  • Les atlas de textures, eux, consistent à utiliser une sorte de patchwork. Le processus est automatisé (alors qu'il fallait encore du contrôle manuel avec le pelting) mais là encore des problèmes de filtrage persistent.Atlas de textures: Levy et al., Siggraph 2002.
    Atlas de textures: Levy et al., Siggraph 2002.

Au final, l'essentiel est de retenir que la plupart des méthodes actuelles sont limitées : problèmes de filtrage1 (aliasing, gestion imparfaite des coutures, filtrage anisotrope), processus pas entièrement automatique, résolution limitée de la texture, procédé non généralisable. Ceci explique de des chercheurs et studios continuent de faire de la recherche dans ce domaine.

Ptex : une autre méthode

L'approche choisie par Brent Burley et Dylan Lacewell est d'utiliser une texture par face du maillage de l'objet 3D. Ainsi, le système de textures découle directement de la géométrie de l'objet. L'image qui suit montre le résultat sur un maillage de tête de T-Rex : les axes U et V correspondent aux coordonnées 2D de la texture (d'où le nom d'UV map).

Ptex: une texture par face
Ptex: une texture par face

On voit immédiatement qu'avec un nombre de textures aussi énorme, les problèmes de filtrage évoqués plus haut peuvent poser problème. Si par exemple on ne cache pas les coutures, la méthode risque dêtre totalement inutile...

L'astuce va être d'attribuer à chaque face des informations permettant de savoir quelles sont les faces voisines. Cela va permettre d'effectuer les opérations de filtrage en prenant en compte les textures adjacentes, comme si la couture n'existait pas.

Ptex du point de vue de l'artiste

Pour l'infographiste, Ptex est relativement simple à utiliser. La résolution de la texture s'adapte à la géométrie : inutile de mettre des textures énormes pour des faces très petites. Il est possible d'agir sur les textures, par exemple en augmentant manuellement leur résolution si l'on veut détailler une zone précise. La peinture se fait directement sur le modèle 3D, en temps réel.

Le mieux, pour se faire une idée, est de visualiser une vidéo montrant le système en action :

Pour un flux de production professionnel, les avantages sont évidents : les modeleurs ne sont pas concernés par les textures, et les infographistes qui réalisent les textures n'ont plus à se casser les dents sur la gestion des UV maps.

Enfin, la méthode a permis de réduire considérablement les problèmes de flux d'entrée-sortie ; il ne faut en effet pas oublier que les studios travaillent en réseau, et que la gestion des données est un problème critique (par exemple lorsque l'on doit charger plusieurs millions de textures pour rendre une image d'un film).

Ptex en pratique

Ptex a déjà été utilisé dans deux films d'animation : le court-métrage Glago's Guest, qui sera diffusé juste avant le film La Princesse et la Grenouille (sortie fin 2009 aux USA), et Bolt (Volt en français).

Bolt
Bolt

Ptex pour le rendu temps réel ?

Pour le moment, Ptex est clairement orienté vers le rendu non temps réel. Gérer un nombre élevé (dizaines de milliers) de petites textures sur les cartes graphiques est loin d'être évident ; de plus, le filtrage prenant en comptes les faces voisines deviendrait prohibitif pour du temps réel. La prévisualisation temps réel visible dans la vidéo ne se préoccupe d'ailleurs pas des problématiques de filtrage, et le système de rendu est très basique (nearest point sampling).

Il est donc très peu probable de voir Ptex rapidement employé dans des jeux, d'autant plus que l'utilisation de modèles low-poly (peu de polygones) simplifie les problèmes de dépliage d'UV map. Par contre, on peut imaginer pouvoir utiliser ce genre de technique à plus long terme, avec l'essor du GPGPU et l'augmentation des performances des cartes graphiques.
On peut par ailleurs penser que les cinématiques en 3D temps réel incluses dans certains jeux seront les premières à bénéficier de ce type de rendu.

Pour en savoir plus

J'ai essayé de ne pas faire un article trop long, et j'ai donc été obligé de passer certains points techniques. Le site de Dylan Lacewell comporte une page sur Ptex donnant plus d'informations : une présentation sous forme de slides et une autre vidéo.
Le papier complet de présentation est disponible uniquement sur demande, pour des raisons de copyright : le papier a été créé pour Eurographics (une association européenne sur la synthèse d'images au sens large), qui interdit la diffusion publique pendant un an.
Je vous conseille donc fortement d'écrire directement (et en anglais) à Dylan Lacewell (son e-mail est indiqué sur la page de Ptex).

Pour finir, un grand merci à Dylan Lacewell et Brent Burley pour leurs réponses aux différentes questions que j'ai pu leur poser.

  1. 1. Pour ne pas alourdir encore plus le billet de blog, j'ai préféré passer les détails du filtrage ; pour plus d'informations on pourra lire le filtrage des textures sur Tom's hardware

URL de Trackback pour ce billet :

http://www.shadows.fr/trackback/592

Commentaires

Félicitation

Portrait de Valenco

Bravo pour cet article très instructif. Peut-être serons-nous bientôt libérés de ce que beaucoup considèrent comme une torture mentale : le dépliage du modèle. 8-)

Merci !

Portrait de shadow

J'espère aussi que ce genre de méthode se démocratisera rapidement, jusque dans les logiciels libres comme Wings3D ou Blender...

Très intéressant ! Par

Portrait de wazou

Très intéressant !

Par contre, me demande à quoi ressemble la map final, ou plutôt les millier de maps !
Et la merde que ça peut être si ça foire et qu'il manque une map ^^

Textures

Portrait de shadow

Ca ressemble surtout à une masse de données que l'artiste n'est pas censé aller voir... ;-)

Lors de la phase de peinture, d'après ce que m'ont dit les auteurs, les textures sont rassemblées par paquets dans des textures plus grandes. Le but est de ne pas mettre à genoux les cartes graphiques, qui n'aiment pas du tout traiter des masses énormes de petites textures.

Le système est bien entendu automatisé et transparent pour l'utilisateur.

Oohh oui !

Portrait de Maarc

+1 au sujet de Blender et de Wings3D ...
Et je n'en serait d'ailleurs pas surpris ... J'ai eu la joie de découvrir le doo-sabin dans la dernière version de Wings ... Alors qu'on peine à le trouver en natif dans d'autres logiciels ... (ou alors mes infos datent ... ^__^)

Tout ça pour dire que certains logiciels libres adoptent plus rapidement certaines techniques que d'autres logiciels propriétaires considérés comme des poids lourds dans leur domaine ... J'en ai été d'ailleurs très surpris la première fois que j'en ai pris conscience.

Aujourd'hui, je me l'explique peut-être parce que les équipes de développement n'ont pas les mêmes contraintes ... Quand on bosse pour du commercial, il y a des contraintes marketing et de deadlines qui sont peu ou pas présentes dans le libre ... non ?

Merci pour l'info ! ^^

Libre vs propriétaire

Portrait de shadow

Il est vrai que l'avantage du libre peut être que les développeurs peuvent développer des fonctions dont l'intérêt commercial à court ou moyen terme n'est pas forcément évident...

Pour le Doo-Sabin, c'est quand même étonnant, étant donné que les publications essentielles sont très anciennes (http://en.wikipedia.org/wiki/Doo-Sabin_subdivision_surfaces )... Peut-être s'agit-il plus d'un manque d'intérêt de la part des éditeurs que d'un simple retard ?
Il semblerait d'après http://www.holmes3d.net/graphics/subdivision/ que Doo Sabin soit par exemple utilisé dans 3DS Max (ou du moins, une variation de Doo Sabin).

Ceci dit, le libre a aussi des inconvénients, le fait de ne pas dépendre financièrement des clients fait que l'on ne les écoute pas forcément autant que dans le monde propriétaire, ce qui est assez gênant parfois (je pense en particulier à l'interface désastreuse et anti ergonomique de bien des logiciels libres...).

Interface désastreuse ?

Portrait de djib

C'est amusant je ne suis pas du tout d'accord sur le fait que les interfaces libres soient désastreuses. Pour la majorité des produits que je connais, je les trouve bien plus adaptées et adaptables que tout ce qui se fait dans le propriétaire :
- Eclipse et Netbeans sont sans comparaison d'ergonomie par rapport à des outils comme Visual Studio,
- Thunderbird et Evolution sont bien plus conviviaux que Outlook ou Notes,
- GIMP et sa gestion de raccourcis dynamiques ainsi que son interface dépouillée, est bien plus adaptable qu'Adobe Photoshop,
- Firefox est incroyablement adaptable, surtout face à IE,
- OpenOffice est vraiment mieux conçu et organisé que Word (avant 2007), il suffit de se pencher sur la gestion des styles pour s'en convaincre,
- GNOME est une merveille de simplicité dans les menus de configuration par rapport au panneau de configuration de Windows Vista,
- Pidgin écrase MSN de par la légèreté de son interface et les fonctionnalités "utiles" proposées (correction orthographique, multi-protocole, ...)
- Blender est incroyablement personnalisable, AOI est très bien pensé, ...

Dans les interfaces désastreuses j'ajouterais aussi Flash Studio qui est assez immonde, Access qui propose d'éditer des requêtes dans des champs de textes incroyablement petits et sans coloration, Enterprise Manager qui réindente les requêtes n'importe comment à chaque exécution, Acrobat Reader qui perd le texte de recherche à chaque copier-coller, ...

Mon meilleur exemple : je passe une grande partie de mon temps à manipuler du texte (code, notes, ...), et c'est le libre qui m'a fourni le seul outil adapté à mes besoins, Vim. Certes l'apprentissage est un peu fastidieux, mais le gain de temps qui s'en suit est considérable.

De mon point de vue, le libre produit des outils, certes parfois beaucoup mois accessibles, mais en général sacrément plus efficaces à la longue que ce qui se fait dans le monde propriétaire. Il faut accepter de fournir un investissement en temps pour savoir manipuler un outil plus adapté.

Interfaces & logiciels libres

Portrait de shadow

Je ne vais pas trop m'étendre sur le sujet puisque ce n'était pas vraiment le thème de l'article (d'autant plus qu'il peut facilement virer au dialogue de trolls sourds), mais voici quand même une ou deux remarques :

- tu ne cites que des logiciels libres" importants", autrement dit connus et largement utilisés. Or ils ne sont pas forcément représentatifs de la majorité. Beaucoup de logiciels libres sont des programmes codés par une seule personne, qui n'a pas toujours pris le temps de faire une documentation ou une interface compréhensible par le commun des mortels.
- Gimp a une interface composée de fenêtres multiples que l'on doit organiser patiemment pour optimiser l'espace sans perdre de place et sans avoir de superpositions. Je ne considère pas ça comme pratiqué, désolé... On peut très bien laisser l'utilisateur placer les barres d'outils où il le souhaite sans pour autant utiliser des barres flottantes.
- "OpenOffice est vraiment mieux conçu et organisé que Word (avant 2007)" :Je vois mal l'utilité d'utiliser l'ancienne interface d'un logiciel pour une comparaison...
-Pour Blender, je te renvoie à ceci : http://www.shadows.fr/blog/blender-interface-ergonomie

Oui, pour les petits projets

Portrait de djib

Oui, je suis d'accord avec toi que les petits projets libres sont pas forcément, voire pas souvent bien conçus. C'est aussi le cas de beaucoup de freewares et de sharewares. Après, pour le libre, c'est un peu la sélection naturelle qui en fait ressortir les meilleurs, ce qui n'est tristement pas toujours le cas pour les logiciels propriétaires.

Pour information, pour Gimp, la touche "tab" est bien pratique pour cacher et masquer les fenêtres d'outils. Ça devient alors un réel bonheur, même avec la disposition par défaut.

Tout d'abord bravo pour cet

Portrait de Mister3ZE

Tout d'abord bravo pour cet article ! Même si tu dis qu'il est long, moi je l'ai trouvé sacrément court :)

Ensuite, je ne vois pas ce qu'apporte de plus, a par le fait de donner plus de détails à certains endroits de la map d'UVs, qu'apporte Zbrush avec son automatic UV. De plus faire les textures sur Zbrush est un vrai régal...

Bon peut-être que je n'ai pas tout compris (vu que je ne comprend pas l'anglais :))...

Autre chose aussi, une fois la texture faite dans Ptex, ou peut-on l'importer? Il y a t'il des compatibilités entre les différents soft comme Maya, 3DS Max ou XSI? Maya trouvera forcément qu'il y a des UVS... M'enfin, j'ai pas du tout comprendre...

En tout cas, bonne continuation à toi !

ZBrush vs Ptex

Portrait de shadow

Merci ! ;-)
En fait il est long pour un article de blog, et court pour un article tout court... La prochaine fois je ferai peut-être un article séparé, sur plusieurs pages, et un billet de blog pour le signaler...

Pour ZBrush, je suppose que tu parles du polypainting ? Le polypainting attribue une couleur par polygone, ce qui permet de peindre facilement sur des modèles détaillés ; par contre, comme justement un polygone = une couleur, on ne peut pas, j'imagine (?), l'utiliser pour des objets avec peu de polygones. Ce n'est donc pas une technique générale.
Avec Ptex, au contraire, il n'y a pas de lien entre polygone et résolution de texture.

Pour les compatibilités, j'avoue ne pas avoir posé la question aux auteurs, et il ne me semble pas que ce soit évoqué dans l'article, mais a priori je ne pense pas, à moins qu'ils aient développé des modules de prise en charge. Même en admettant que le logiciel comprenne que l'on a une texture par polygone, on perdrait la notion de face adjacentes qui est dans Ptex.
Eventuellement, je pourrai leur poser la question...

intéressant

Portrait de tibo

Intéressant ! Merci pour cet article.

La limitation de cette technique est qu'en l'absence de map dépliée, on perd la possibilité d'utiliser un soft comme Gimp ou Photoshop. Ca implique de changer ses habitudes, et surtout de développer des logiciels aussi efficaces mais permettant de bosser directement sur le modèle...

Pour info on retrouve des à

Portrait de otsoa

Pour info on retrouve des à present cette technologie dans la version alpha de 3DCoat.

Ptex

Portrait de shadow

Merci pour cette info, je n'étais pas au courant !

Et pour relayer l'info de

Et pour relayer l'info de Pilou sur Zbrush.fr : Ptex est devenu opensource!

Poster un nouveau commentaire

Le contenu de ce champ est gardé secret et ne sera pas montré publiquement.
If you have a Gravatar account, used to display your avatar.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plus d'informations sur les options de formatage

Syndiquer le contenu