Bonjour à tous!

Il s'agit du premier de deux tutoriels, réalisés en référence à la version 2019 de Substance Painter, sur l'exportation de textures à partir de ce programme vers diverses destinations: à partir d'autres logiciels 3D (tels que Unity, Unreal, V-Ray et autres), vers des ensembles de Textures génériques pour le paradigme PBR (Physically Based Rendering).

Dans les tutoriels que j'ai publiés jusqu'à présent dans la Playlist Youtube "Videotutorials Substance Painter - All", en fait, j'ai montré comment utiliser Matériaux, masques, pinceaux et autres outils, mais pas comment exporter les résultats obtenus sous la forme d'images de textures UV-mappées à utiliser, sur des modèles, dans d'autres logiciels.

Cette opération peut sembler simple (en théorie, il suffit de cliquer sur Exporter les textures dans le menu Fichier et de continuer), mais en réalité il y a quelques points à garder à l'esprit, notamment pour éviter les erreurs dans la phase d'exportation (dans la fenêtre Journal de Substance) ou, pire encore, dans les Textures générées pour les différents programmes, qui finiraient par montrer des matériaux autres que ceux créés dans Substance.

Contrairement à la plupart de mes didacticiels Substance Painter, les actifs (modèles 3D et autres actifs) utilisés dans ce didacticiel ne sont PAS disponibles; cependant, vous pouvez suivre le didacticiel et apprendre sans avoir à répliquer des opérations avec ces objets particuliers!

Ok, faites tous ces locaux, commençons!

LE PROJET QUE NOUS UTILISERONS DANS CE TUTORIEL

J'ai créé un nouveau projet Substance avec le template «PBR - Metallic Rughness (Allegorithmic)», le même que celui utilisé dans les tutoriels vidéo précédemment publiés dans la Playlist sur Youtube; après avoir importé un modèle 3D, j'ai équipé ce modèle de quelques matériaux par défaut Substance, qui ensuite - avec le modèle choisi - présentent les canaux d'information suivants:

  • Base Color
  • Height
  • Roughness
  • Metallic
  • Normal

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 01

NOUS EXPORTONS AVEC LE PRESET POUR UNITY 5 (STANDARD METALLIC)

Supposons maintenant que nous souhaitons exporter les ensembles de textures (trois, dans mon cas: un pour chaque ensemble de textures dans la liste des ensembles de textures), par exemple pour Unity 2019.

Tout d'abord, ouvrons le menu Fichier et choisissez l'élément Exporter les textures.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 02

Dans la fenêtre «Exporter le document - Exporter», nous pouvons définir certains paramètres; parmi ceux-ci, on note en particulier:

  • en cliquant sur le bouton en haut, le chemin sur le disque où stocker les images Textures à créer;
  • à côté de ce bouton, le format de fichier (par défaut, ce devrait être PNG) et la profondeur de bits (par défaut, 8 bits par canal);
  • dans le menu Config, le préréglage d'exportation; dans notre cas, nous choisissons Unity 5 - Standard Metallic;
  • la résolution des textures; comme prévu dans un précédent tutoriel de la Playlist, il est possible de travailler avec une résolution réduite puis de définir une résolution plus élevée, pour les Textures à générer en export, ici.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 03

En théorie, donc, tout devrait être prêt pour l'exportation, mais en cliquant sur Exporter, nous obtenons le message d'erreur "Export terminé avec quelques erreurs (voir Journaux)" ...

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 04

ERREURS D'EXPORTATION: CANAUX D'INFORMATION MANQUANTS

Jetons donc un coup d'œil à l'onglet Journaux, qui peut être activé à partir de Fenêtre - Affichage - Journal, s'il n'est pas disponible.

Dans cette fiche, nous lisons que dans les trois Textures Set, il manque deux canaux d'information: OPACITE et EMISSION.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 05

Pour comprendre la raison de cette erreur, nous ouvrons à nouveau la fenêtre Exporter les textures, à partir du menu Fichier, mais cette fois nous allons dans l'onglet CONFIGURATION, dans la fenêtre «Exporter le document», puis sélectionnez le préréglage Unity 5 - Standard Metallic à examiner ce.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 06

Comme nous pouvons le voir, le préréglage d'exportation pour Unity 5 avec flux de travail Metallic prévoit la création de 4 images Textures:

  • une image de type RVB + A (où A signifie Alpha, le canal d'opacité ou de transparence), appelée "Albedo Transparency", qui sera transmise au canal Unity Albedo et qui aura la couleur de base dans les trois canaux RVB et l'opacité carte dans le canal Alpha;
  • une image de type RVB + A, qui dans ce cas stockera les informations Métalliques en RVB et, dans le canal de transparence Alpha, les informations dérivant de la Carte Convertie - Brillance;
  • une image de type RVB, appelée Normal, créée non pas à partir de Input Map - Normal, mais à partir de Converted Map - Normal OpenGL; cette distinction est importante car la carte ainsi générée apportera non seulement les informations définies dans le canal Normal, mais aussi celles définies dans le canal Hauteur (rappelez-vous, par exemple, mon tutoriel sur le découdre de la ceinture?); de cette façon, la normale et la hauteur seront fusionnées en une seule carte normale qui peut être utilisée par Unity 5;
  • enfin, une image RVB, appelée Emission, générée à partir des Input Maps - Emissive channel, utile pour les matériaux électroluminescents (ampoules, flammes, LED, néons, etc.)

CHOIX DU BON FORMAT DE FICHIER, EN FONCTION DES CANAUX

L'existence d'images RVB + A, donc avec le canal de transparence, dans ce préréglage, nous fait aussi comprendre autre chose: dans l'onglet Exporter nous devrons choisir un format de fichier capable d'encapsuler ces 4 canaux.

L'élément sélectionné par défaut par Substance, c'est-à-dire PNG 8 bits, convient, car le format PNG fournit déjà les 4 canaux RGBA, alors qu'un format de fichier tel que JPG ou BMP ne serait pas bon, car ces formats ne fournissent que les trois Canaux RVB, sans les informations Alpha, donc - dans le cas du Preset Unity 5 Metallic - la transparence (opacité) et la douceur du matériau (brillance) seraient manquantes.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 07

AJOUTER DES CANAUX D'INFORMATION POUR LES JEUX DE TEXTURE

Ok, nous avons dit que nous avons également besoin des informations pour Opacity et Emissive; oui, mais comment ajouter ces canaux d'information à nos matériaux?

La réponse se trouve dans l'onglet Paramètres du Set de Texture: on retrouve ici la liste des canaux d'information présents pour un matériau et, à côté de chaque canal, également un détail technique: la couleur ou l'espace d'information à associer à chaque canal; par exemple, pour la couleur de base, nous avons, par défaut, sRGB8, c'est-à-dire une image couleur dans l'espace colorimétrique sRGB avec 8 bits d'informations par canal, tandis que pour les canaux qui peuvent être exprimés en niveaux de gris (comme la rugosité et le métal), nous avons un nombre de 8 bits dans l'espace linéaire (la lettre L), tandis que pour la hauteur, nous avons une image dans l'espace linéaire à 16 bits en virgule flottante (16F) et pour les cartes normales, nous avons une image couleur (RVB) avec 16 bits de virgule flottante précision (16F).

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 08

Notez que 16 bits d'informations sont fournis pour la hauteur et la normale, mais gardez à l'esprit que dans la phase d'exportation, avec les paramètres par défaut de l'onglet Exporter le document (où, comme nous l'avons vu, la valeur définie est 8 bits), ces informations sera toujours compressé pour tenir en 8 bits.

Pour ajouter les canaux d'opacité et d'émission au jeu de textures actuellement sélectionné, cliquez ensuite sur le symbole + à côté de canaux et choisissez ces canaux dans la liste qui apparaîtra; Substance Painter définira automatiquement le type de données à utiliser pour ces deux canaux (pour mémoire, il s'agit d'un nombre de 8 bits dans l'espace linéaire, L8, pour Opacity, qui est ensuite exprimé avec une image en niveaux de gris, tandis que pour Emissive nous avons une image couleur, dans l'espace colorimétrique sRGB8, car l'émission lumineuse peut aussi être colorée: ce n'est donc pas la simple intensité de l'émission, que nous aurions pu exprimer avec L8, générant une image à l'échelle des gris, mais à la fois en couleur et intensité).

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 09

Mais attention: nous avons ajouté ces deux canaux d'information uniquement pour le jeu de textures actuel; pour éviter les erreurs, nous devons également répéter l'opération pour les autres ensembles de textures du projet ...

… Ou, la prochaine fois, créez le projet avec un modèle adapté à nos besoins; par exemple, en ce qui concerne Unity 5, Substance Painter 2019 fournit le modèle "Unity 5 (Allegorithmic)", lors de la création d'un nouveau projet, afin de trouver ces paramètres et d'autres déjà optimisés pour l'exportation vers Unity 5. Dans le prochain tutoriel, dans que nous verrons comment créer un préréglage personnalisé, nous verrons également comment créer notre propre modèle.

VÉRIFIEZ LES INFORMATIONS POUR TOUS LES CANAUX; UTILISATION DE LA COUCHE DE REMPLISSAGE

Après avoir ajouté les canaux d'information manquants pour tous les ensembles de textures, nous regardons ces canaux séparément dans la vue 3D en les choisissant dans le sélecteur en haut à droite de la vue 3D ou en appuyant plusieurs fois sur le raccourci «C», pour les changer cycliquement (raccourci "M" pour revenir à la vue d'ensemble du matériau).

Pour certains canaux, nous remarquons qu'en réalité, Substance ne génère pas les informations: nous le remarquons en raison de la texture en damier appliquée, dans mon exemple, à des canaux comme Normal, Hauteur, Opacité et Emission.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 10

L'absence de ces informations peut constituer un problème considérable lors de la phase d'exportation: la substance finira en effet par donner une valeur à ces canaux dans les Textures, définissant typiquement la couleur de certaines Textures telles que l'Opacité ou l'Émission sur le noir; si pour Emission c'est généralement correct (car dans la plupart des cas les matériaux n'émettent pas de lumière), ce n'est pas bon pour Opacity, car Opacity en noir (c'est-à-dire 0) signifie en fait un objet transparent!

Il existe différentes solutions possibles à ce problème; ici je vous dis ce que je fais habituellement: pour chaque ensemble de textures du projet, j'ajoute, en bas, un calque de remplissage par défaut, c'est-à-dire un niveau de remplissage; par défaut, ce type de calque a une hauteur et une émission à 0,0 (noir: pas de relief ni émission de lumière) et, d'autre part, une opacité à 1,0 (blanc, objet opaque, non transparent): des paramètres qui, dans la plupart des cas, vont très bien.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 11

Le calque de remplissage doit être inséré, comme mentionné, au bas de la pile de calques de chaque ensemble de textures: de cette façon, il ne couvrira pas les informations des autres calques présents et finira par remplir les canaux d'information manquants avec des valeurs par défaut qui , généralement, ils iront bien.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 12

RÉSUMÉ ...

En résumé: lorsque nous créons un projet, nous devons commencer par choisir le Template approprié en fonction du logiciel cible, afin d'avoir les canaux d'information et autres paramètres appropriés.

En cas de canaux d'information manquants, nous pouvons résoudre le problème en ajoutant les canaux nécessaires (et éventuellement en modifiant les paramètres techniques) dans les paramètres du jeu de textures, pour chaque jeu de textures présent dans la liste, pour le projet en cours.

Avant de procéder à l'exportation, nous pouvons faire défiler les canaux avec C dans la vue 3D pour identifier les informations manquantes et, si nécessaire, résoudre le problème avec un calque de remplissage, c'est-à-dire un niveau de remplissage à placer en bas de la pile. de calques et de matériaux dans l'onglet Calques, pour chaque ensemble de textures du projet.

Enfin, avant de tout exporter, vérifiez le format du fichier, en définissant un avec un canal Alpha (par exemple, PNG) si cette information est requise, sinon un autre format, en fonction de vos besoins.

Pour ce premier de deux versements sur l'exportation de textures à partir de Substance Painter, c'est tout!

Dans le prochain épisode, nous verrons comment définir notre propre préréglage d'exportation personnalisé, afin d'exporter les textures qui nous intéressent et, entre autres, de les créer avec un schéma de nom personnalisé, en utilisant les variables macro Substance; nous verrons également comment créer notre propre Template, avec les paramètres que nous avons l'intention d'avoir pour tous nos nouveaux projets.

Comme toujours, je vous invite à exprimer vos doutes, questions ou demandes de clarification dans les commentaires de la vidéo sur Youtube. À bientôt!