Passer au contenu principal
Spiria black logo
dans « Développement desktop »,
 25 avril 2016

Comprendre le “UV-mapping” et les textures

Dans cet article, nous allons prendre le temps de voir les procédés d’UV Mapping, ainsi que les différents types de textures. Notez que je vais utiliser quelques termes anglais quand il n’y a pas vraiment d’équivalents français en usage dans le milieu de la 3D.

Dans cet article, nous allons prendre le temps de voir les procédés d’UV Mapping, ainsi que les différents types de textures. Notez que je vais utiliser quelques termes anglais quand il n’y a pas vraiment d’équivalents français en usage dans le milieu de la 3D.

Que sont les UVs ?

Le procédé consiste à appliquer une image plane (texture 2D) sur la surface d’un modèle en volume (3D). Le terme UV découle de la nature bidimensionnelle (2 D) du processus : U et V représentent les deux axes du plan 2D de la texture appliquée (X, Y, et Z étant déjà utilisés pour les axes 3D du modèle).

Le modèle 3D est découpé en plusieurs pièces qui sont assemblées à plat, sur un plan 2D. Le procédé de mapping est proche de celui des patrons de découpe qui sont utilisés en couture. Une fois le mapping achevé, on peut concevoir une image adaptée qui sera découpée suivant le « patron » et appliquée sur le modèle 3D. Sans ce procédé, il ne serait pas possible d’obtenir des modèles aux couleurs variées et riches détails. Il existe des méthodes pour colorer un modèle sans passer par cette technique, mais elles ont de fortes limitations.

Voyons à quoi un mapping peut bien ressembler et prenons ici l’exemple communément utilisé du simple cube :

Cube UV

Dans cet exemple, nous voyons comment le modèle est déplié en une seule pièce sur le « canvas » 2D. Il est généralement préférable de garder le nombre de jointures (seams) sous contrôle. Le gros du travail est d’optimiser leur nombre et leur position sur le modèle. Idéalement, ces jointures devraient être invisibles, soit parce qu’elles sont situées à des emplacements qui correspondent à une coupe ou une arrête (coutures d’un pantalon, joint entre deux plaques de métal, par exemple), soit par ce qu’elles sont situées à des endroits peu ou pas visible par l’utilisateur (par exemple pour un personnage : sous les bras, à l’arrière de la tête, dissimulées sous les cheveux ou un chapeau).

Il existe depuis quelques années des méthodes automatisées pour générer ces UVs, avec un plus ou moins grand contrôle de la part de l’utilisateur. Leur qualité s’est grandement améliorée et leur usage professionnel peut être envisagé. Il faut toutefois faire attention lorsque nous les utilisons, les jointures étant souvent situées à des emplacements qui, bien qu’acceptables, sont visibles. Les nouvelles approches qui autorisent à peindre directement sur le modèle permettent de ne plus avoir à se soucier des UVs. En revanche, des textures générées dans une application 2D telle que Photoshop requièrent des mapping manuellement optimisés. Au final, automatiser ou non votre mapping est directement lié à la technique que vous prévoyez d’utiliser pour la création des textures.

Un autre point important est que le processus d’UV Mapping doit être effectué après avoir terminé la modélisation 3D, et, en raison de limitations techniques, il est généralement nécessaire de le faire avant toute forme d’animation.

Voici deux exemples illustrant pourquoi il est important de respecter le bon ordre des étapes. Notez comment le damier est déformé.

— Si vous étirez le cube après avoir fait l’UV :

Stretching UV

— Si vous ajoutez une nouvelle géométrie. :

extruding UV

Des textures à effets variés

Nous avons le maillage (mesh, le modèle 3D monochrome, sans textures, ni animation, ni effets) et son Mapping UV. Nous pensons alors pouvoir placer tout simplement la texture sur le modèle et que le tour sera joué ! Malheureusement, il est très peu probable que cela nous donne en fin de compte un excellent résultat. Pour produire un objet de qualité, il est nécessaire d’employer des textures spécialisées, qui semblent parfois étranges, mais qui apportent des subtilités enrichissant l’apparence et le réalisme de notre travail.

Commençons par la texture la plus intuitive, la plus visible qui donne les « couleurs » de votre modèle. Ce peut être une Diffuse Map ou une Albedo Map :

— Une texture de type Diffuse Map est celle qui donne les couleurs principales à votre modèle. En plus de définir la couleur que votre cerveau associera à l’objet, elle sera utilisée par votre logiciel pour donner une teinte à la lumière réfléchie. Ainsi, la couleur de votre modèle sera légèrement visible sur les objets qui l’environnent. L’effet est généralement subtil, peu visible, mais participe grandement à donner l’illusion du réel.

— Une texture de type Albedo Map est très semblable à une Diffuse Map, et remplit les mêmes fonctions. La différence est que l’Albedo Map ne doit pas contenir de zones d’ombres ou de hautes lumières ; c’est la couleur brute de l’objet, sans ombrages, sans tons d’éclairage.

Diffuse Map

Ensuite, nous avons la Specular Map. Il en existe également deux types : la Specular Level Map et la Specular Color Map. Ces textures ont comme rôle de contrôler la quantité et la couleur de lumière que l’objet réfléchira. Ce n’est pas une réflexion telle que celle d’un miroir, mais bien comme celle que nous retrouvons partout autour de nous, celle des murs, de la table, etc. Nous parlons ici de lumière diffuse. Il est à noter que la couleur du reflet est souvent blanche ou de même couleur que celle de la Diffuse Map. La Specular Level Map peut aussi être utilisée pour simuler les ombrages dans une fissure et d’autres fins détails du modèle. Vous entendrez alors parler d’Ambient Occlusion (occultation ambiante) pour décrire cette utilisation de la Specular Level Map.

Specular Color Map

Il est de pratique courante d’ajouter la Ambient Occlusion Map pour améliorer le réalisme du modèle. L’AO, comme elle est souvent appelée, est une simulation de l’ombrage généré par l’environnement, particulièrement aux zones concaves de votre modèle. Le résultat est particulièrement visible lorsque l’on compare à un rendu qui ne l’utilise pas. Vous noterez que l’image de droite, avec AO, montre un meilleur dégradé des tons, ainsi qu’un léger assombrissement de la surface juste en dessous de la sphère.

Eclairage Sans Ambiant occlusionÉclairage Avec AMbiant Occlusion

La prochaine texture est très utile pour comprendre les subtilités des Normal Maps (cartes de normales), ces textures qui simulent des reliefs. On parle ici des Bump Maps. Elles doivent être en noir et blanc, car c’est le niveau de gris de l’image servant de texture qui est la seule information utile. Cette texture permet essentiellement de tricher en faisant apparaitre des dénivellations sur la surface sans ajouter de polygones au modèle. Pour mieux comprendre, nous allons prendre une simple surface plane de forme carrée, définie par 4 sommets (vertex) reliés entre eux. Normalement, ce carré ne peut être que tout à fait plat, les 4 sommets étant dans le même plan. La Normal Map utilise la valeur de gris de chaque pixel comme une échelle de 0 à 100 % qui sert à déterminer la hauteur de chaque pixel de la surface. Ci-dessous, vous pouvez voir le carré de départ et le même après application d’une Bump Map. À droite, c’est la texture en noir et blanc qui a été utilisée pour cette Bump Map donnant un effet de relief.

Bump Demo Bump Map

De nos jours, on utilise des Normal Maps afin de contrôler la déformation des surfaces en temps réel. Le processus est essentiellement le même, à l’exception que la valeur utilisée n’est plus seulement un niveau de gris, mais les trois niveaux de couleurs d’une image en RVB (rouge, vert et bleu). Avec ces trois valeurs combinées, nous pouvons déformer la surface dans trois directions au lieu d’uniquement sur l’axe de la normale à la surface. Le grand avantage est alors de donner une bien meilleure apparence quand la surface est regardée sous un angle indirect.

Tangeant Space Normal Map

Il existe deux variantes de ces maps. La première est la Tangent Space Normal Map, qui est conçue pour un modèle qui se déformera, l’exemple le plus classique étant un personnage animé. Ensuite, il y a les Object Space et World Space Normal Map. Les deux sont destinées aux modèles qui ne seront pas déformés. La Object Space Normal Map est optimisée pour les objets mobiles, par exemple une chaise qu’il est prévu de déplacer dans le projet. La World Space Normal Map est conçue pour les objets statiques, totalement immobiles, comme un mur ou le sol.

Lorsque nous créons des animations qui sont rendues pour une vidéo ou un film, il est courant d’utiliser une Displacement Map, qui, à la différence des deux types précédents, générera des polygones additionnels au moment du rendu, ce qui offre une qualité bien supérieure. Le problème, c’est que le processus est très lourd. Il ralentit de manière considérable le calcul de rendu, et est difficilement justifiable dans un contexte d’animation en temps réel.

La dernière Map que nous allons regarder est la Reflection Map. Celle-ci est utilisée pour créer un reflet qui sera visible sur le modèle. Ainsi, si nous appliquons une texture de ciel ennuagé sur une sphère, celle-ci réfléchira notre texture de ciel ennuagé, et ce, même s’il n’y a aucun ciel dans notre scène. Il faut prendre en compte que la réflexion est visible sur l’intégralité du modèle, à moins d’utiliser plusieurs matériaux.

Utiliser les textures : les matériaux

Je viens d’évoquer les matériaux, il convient donc d’expliquer en quoi ils consistent. Un matériau est une suite d’instructions prédéfinies, indiquant au logiciel comment gérer les réactions d’un modèle à la lumière, texture par texture. Dans les mains d’un artiste 3D, le matériel est une sorte de conteneur dans lequel sont assemblés et configurés toutes les textures nécessaires en une seule entité. Certains matériaux fonctionnent toutefois de manière différente et n’utilisent pas les Textures Maps que nous venons de présenter, mais des algorithmes plus ou moins configurables (variables). On parle là de matériau procédural. Par exemple, ce type de matériau peut produire l’apparence du bois via un algorithme, ce qui à l’avantage de ne pas avoir à faire un UV Mapping. Comme ces matériaux sont des scripts de l’application, l’artiste doit connaître les matériaux qui sont fournis par la plateforme utilisée et doit être capable de faire avec ceux qui sont disponibles.

Notons aussi le Toon Shading (en référence aux Animated cartoons, aussi appelé Cel Shading, ombrage de celluloïd, en référence aux « cellulos » qui étaient autrefois utilisés pour réaliser les dessins animés). Le rôle de ce matériau est de simuler un aspect de dessin animé, avec des contours marqués et souvent des ombrages à palette de couleurs réduite.

decorative

Finalement, j’aimerais prendre un moment pour retourner sur les méthodes automatisées d’UV Mapping. Comme je l’ai mentionné, plusieurs applications autorisent maintenant la peinture directe sur votre modèle. Certaines de ces méthodes reposent sur un système de création automatique d’UV et suppriment les difficultés liées au camouflage des joints. Une autre approche permet de peindre sur votre modèle directement sans même utiliser les UV : elle est généralement connue sous le nom de Polypainting. La couleur devient alors directement associée à la géométrie du modèle. Chaque sommet (vertex) peut recevoir sa propre couleur, et ainsi, la surface est peinte avec des dégradés composés des couleurs de chaque point définissant la surface.

Ces procédés sont souvent utilisés pour la création d’images statiques, générées à même le logiciel, pouvant ensuite être retouchées dans des logiciels comme Photoshop. Certains logiciels offrent la possibilité d’extraire et convertir l’information en fichiers d’image qui pourront être utilisés en tant que textures.

L’avantage par rapport au traditionnel UV-mapping est une utilisation très intuitive, qui élimine beaucoup du fardeau technique et qui est particulièrement appréciée des personnalités artistiques. Le grand désavantage est que les UVs qui résultent des procédés automatisés sont très complexes, générant des fichiers de textures fragmentés et incompressibles, qui ne permettent ni inspection ni révision manuelle. Cela peut constituer un obstacle majeur à des ajustements et retouches que l’on pourrait souhaiter réaliser dans le futur.

Partager l’article :