Comment réunir plusieurs textures en une seule (Atlas)

Si vous voulez partager ou améliorer vos connaissances. C'est ici !
Répondre
Avatar du membre
keltwookie
Admin du site
Messages : 80
Enregistré le : mer. avr. 04, 2018 5:42 pm
Localisation : Kashyyyk
Contact :

Comment réunir plusieurs textures en une seule (Atlas)

Message par keltwookie » sam. mai 26, 2018 10:48 pm

Le problème survient lorsque on veut exporter des textures vers des moteurs de jeux tiers. En effet, quand on a un grand nombre d’images dû aux nombreux maillages qui composent parfois un modèle, il paraît évident que de toute les réunir en une seule paraît LA solution.
C’est ce que l’on appelle une texture « Atlas ». En effet celle-ci comportera toutes les textures + UVmaps que vous auriez pu ajouter.


Note :
Je ne développerais ici que le cas d’une texture diffuse, simplement parce que les effets de brillances, reflets, floutages et autres seront fait depuis le moteur vers lesquelles ces textures seront exportées. Ceci dit, la réalisation d’une normal map selon la même méthode sera vivement conseillée.



Pour réaliser cet atlas, vous aurez besoin de deux choses :
  • Des UVmaps de chaque partie de votre modèle comportant une texture différente.
  • Les textures que vous utilisez.

Cuire (« baking ») les textures

Note :
On suppose ici que tous vos matériaux sont déjà créés.


Petit rappel pour réaliser une UVmap :
  • Partagez votre viewport en deux si ce n’est déjà fait. Dans une des vues, choisissez la vue « Editeur UV/Images »
  • Dans l’éditeur UV, créer une nouvelle uvmap (bouton « + »), nommez là par exemple « monimage.uvmap »
  • Revenez dans la vue 3D, passez en mode édition et sélectionner la totalité du mesh concerné.
  • Appuyer sur « U »
  • Sélectionner « UV projection intelligente », laisser les autres options par défaut puis validez.
Passons à la « cuisson » proprement dite :
  • Sélectionner tout d’abord votre matériau dans l’onglet approprié.
  • Revenez dans la vue « Editeur UV » puis partagez ce viewport en deux. Dans l’un des deux, choisissez le vue « Editeur de nœuds ».
Dans ce nouveau viewport vous devriez avoir au moins 3 nœuds connectés si vous avez utilisé une texture image.
  • 1 nœud Texture image (Maj+A→ Textures → Texture image.).
  • 1 nœud BSDF diffus (Maj+A→ Shader→ BSDF diffus).
  • Le nœud de sortie de votre matériau.
Image

Note :
L’utilisation de shaders en lieu et place d’images pour les textures pourrait donner des résultats indésirables et est donc à éviter dans le cas du présent tutoriel.
On pourrait parfaitement remplacer tout ceci par un simple BSDF diffus avec la couleur de son choix.

  • Dans la vue « Editeur de nœud », Ajoutez un autre noeud « Texture image ».
  • Dans ce nouveau nœud, sélectionnez votre uvmap , dans notre exemple : monimage.uvmap.
Image

Note :
Dans l’état actuel de l’opération, vous pourriez ajouter un nœud BSDF diffus à cette nouvelle texture image et le relier à la sortie de votre matériau, ce qui vous permettrait de peindre la texture directement sur le maillage.

  • Maintenant, allez dans l’onglet « Rendu » et descendez jusqu’à « Pré-calculer ».
  • Sélectionner « Diffuse », Couleur, et désélectionnez « Direct et « Indirect »
Astuce :
Laissez la valeur de la marge par défaut (16px). Cette marge sera une distance de « sécurité » qui fera déborder la couleur sur l’uvmap afin de ne pas voir les coutures.


Image
  • Cliquer sur « Pré-calculer » et attendre que l’opération se termine (barre de progression en haut de l’interface de Blender).
  • Retournez dans l’éditeur UV et sauvegardez la nouvelle image obtenue.
  • Dans l’éditeur de nœud, ajouter un autre nœud Textures image.
  • Dans celui-ci, chargez la nouvelle image obtenue.
  • Reliez ce nœud à la sortie de votre matériau par l’intermédiaire d’un BSDF diffus.
C’est fait !


Créer l’atlas

Il vous faut d’abord activer le plugin « UV Texture Atlas » dans vos préférences utilisateur :

Image

Une fois activé et vos préférences utilisateur sauvegardées :
  • Créez une nouvelle image vide dans l’éditeur UV.
  • Dans la vue 3D (ou dans l’arbre des objets), sélectionnez les maillages concernés.
  • Sélectionnez l’onglet « Rendu » et faites défiler jusqu’à « Texture Atlas ».
  • Créez un nouvel atlas avec le bouton « + ». Laisser le nom par défaut.
  • Sélectionner « No Unwrap », comme vous avez déjà vos uvmaps préparées.
  • Cliquez sur « StartManualUnwrap ».
Image

Un objet temporaire va être créé et automatiquement sélectionné.

  • Toujours dans la vue 3D, passez en mod Edit pour ce nouvel objet.
  • Sélectionnez l’ensemble du maillage.
  • Dans l’éditeur UV, sélectionnez UV→  Taille moyenne des îles.
  • Appuyez sur Ctrl+P pour une réorganisation automatique.
Note :
Vous devrez peut être réorganiser vos différentes parties en fonction de la complexité de l’uvmap. En effet lors de l’opération de baking, certaines couleurs pourraient déborder sur d’autres.


Passons maintenant dans l’onglet des matériaux et créez en un nouveau relatif à ce nouvel objet, vous pouvez d’ailleurs enlever les autres de la liste.
  • Retournez dans l’onglet « Rendu » et faites défiler vers le bas jusqu’à « Pré-calculer »
  • Cochez la case »Sélectionné vers actif ».
  • Sélectionnez tous vos objets originaux en vous assurant de sélectionner le nouvel objet seulement en dernier.
  • Dans l’éditeur de nœuds, ajoutez un nouveau nœud texture image dans lequel vous chargerez la nouvelle UVmap.
  • Cliquez sur Pré-calculer
  • Une fois le baking effectué, et toujours dans l’onglet « Rendu », allez à Texture Atlas puis cliquez sur « FinishManualUnwrap ».
  • Sauvegardez la nouvelle image obtenue.
Note :
Dans certains cas, vous pourriez devoir effectuer quelques retouches rapides avec The GIMP. Mais rien de bien méchant.
- Le projet"XPlore"
- Tutos Blender
- Tutos Godot Game Engine

“ L'artiste est un malade qui essaie de se soigner en créant, mais plus il se soigne, plus il est malade. Et plus il est malade, plus il est content, vu qu'il n'a aucune envie de guérir." Philippe Geluck