Texturation, ou ce que vous devez savoir pour devenir un artiste de surface. Partie 2. Masques et textures

Masques et textures


Nous continuons une série de leçons sur la façon de devenir un artiste de surface.

Partie 1. Pixel ici .
Partie 2. Masques et textures - vous les lisez.
Partie 3. PBR et matériaux ici .
Partie 4. Modèles, normales et balayage ici .
Partie 5. Système de matériaux ici .

Masques


Dans la dernière partie, nous avons examiné le fonctionnement des canaux et notre premier masque que j'ai créé - le masque de transparence.

Le masque de transparence dans l'exemple de chat a été créé à l'aide d'un canal séparé appelé Alpha Channel. Ce canal avait également une dimension de 8 bits par pixel.

Chaque pixel de masque peut avoir une valeur de 0 à 255 (ou jusqu'à 1), où 0 est un pixel complètement transparent et 255 (ou 1) est un pixel complètement NON transparent.

Maintenant, si vous regardez le canal Alpha comme un canal normal, il deviendra clair qu'il n'est pas différent de tout autre canal RVB. En fait, ce sont tous les mêmes pixels qui ont la même intensité de 0 à 255 (jusqu'à 1). C'est le même dégradé de gris. Et si nous prenions un autre canal, le copions et le collons dans le canal Alpha, nous aurions un effet intéressant:

image

Le masque est superposé à l'ensemble de l'image, mais là où l'intensité des pixels est la plus lumineuse possible (proche de 1 ou 255), la couleur du masque est la plus petite, et là où l'intensité est aussi faible que possible (plus proche de 0), alors le masque est très clairement affiché au contraire:

image

Et maintenant, si vous exportez une telle image et l'ouvrez dans n'importe quel programme pour visualiser des images, vous obtenez l'image suivante:

image

La plupart des pixels ont une semi-transparence selon l'intensité indiquée dans le canal alpha. Mais si le masque de transparence est le même que les autres canaux, alors la question est - est-il obligatoire de l'utiliser dans le canal Alpha?

En fait, pas nécessairement. Le canal alpha est nécessaire pour que l'image puisse enregistrer des données de couleur et avoir des données de transparence. Autrement dit, il s'avère que dans l'image 1 pixel a 3 canaux requis, et le 4ème canal est facultatif et facultatif.

Au total, dans notre image il n'y a pas 32 bits de couleur, mais seulement 24 bits de couleur (8 bits * 3 canaux) + 8 bits de transparence. De plus, nous ne pouvons pas inclure le canal de transparence dans l'image, puis la taille du fichier sera 1/4 plus petite.

Qu'est-ce qu'un masque?


Masque dans la texturation (oui, probablement, et pas seulement) C'est une image qui se compose du 1er canal et est nécessaire pour réguler d'autres canaux et visualiser les paramètres de texture (C'est déjà PBR, et nous le rencontrerons certainement un peu plus tard).

Autrement dit, le masque est utilisé pour résoudre 2 problèmes:

  • Déterminer le degré de transparence.
  • Déterminer l'intensité de quelque chose dans un pixel (plus à ce sujet plus tard, mais obligatoire).

En fait, il n'est pas nécessaire de diviser le travail des masques en deux tâches - à la fois là et là, un certain degré d'intensité est utilisé, juste dans le premier cas pour la transparence, et dans le second cas dans le but de réguler l'apparence de la texture.

Nous allons maintenant examiner clairement le principe de fonctionnement des masques dans Substance Painter et essayer de mettre un chapeau sur mon chat.

Pour ce faire, nous allons créer un nouveau projet, pointer et ajouter nos photos du chapeau et du chat au programme. (Remarque: Substance Painter ne vous permettra pas de créer un projet sans modèle 3D, j'ai donc créé un plan carré dans Autodesk Maya. La création de modèles dépasse le cadre de nos didacticiels, vous devez donc trouver ces informations vous-même. Nous ne prendrons pas non plus en compte l'interface de Substance Painter en détail. pour ne pas retarder les tuteurs au maximum, cependant, vous travaillez avec Substance Painter pour la première fois, puis si vous ne cliquez sur rien de plus, toutes les fenêtres devraient s'afficher correctement et il ne sera pas difficile de trouver les paramètres nécessaires).

image

Ensuite, nous devons créer 2 couches de remplissage:

image

Le calque de remplissage dans Substance Painter est un énorme ensemble de paramètres pour l'apparence de la texture. Ici, vous pouvez personnaliser visuellement la présentation du métal, du plastique et de toute autre texture. Cependant, nous en parlerons plus tard, et maintenant nous devons avoir une idée claire que le calque de remplissage est une image (couleur), composée de 3 canaux et d'un tas de canaux supplémentaires de 8 bits, qui sont responsables de l'apparence de ce calque de remplissage.

Autrement dit, le calque de remplissage a une combinaison plus complexe qu'une image ordinaire. Dans ce cas, la couche de remplissage se compose de:

  • 3 canaux principaux affectés à la couleur du bâtiment. Ces trois canaux sont combinés en un seul paramètre BaseColor.
  • 3 canaux supplémentaires, dont chacun est responsable d'une sorte d'effets visuels (par exemple, le canal Metal est responsable de la quantité de pixel considérée comme métal en termes de texturation PBR).
  • 3 canaux pour travailler avec la carte normale (carte normale).

Nous ne sommes pas intéressés par des canaux supplémentaires maintenant, car nous ne sommes pas encore familiarisés avec la texturation PBR, et nous y reviendrons certainement plus tard, et maintenant notre tâche est d'utiliser des masques pour contrôler quels calques dans les pixels dont nous avons besoin domineront (dans le cas de la moitié). masque transparent), quels calques seront complètement masqués et quels calques seront affichés de manière unique.

Nous allons maintenant analyser cela sur un chat et un chapeau, puis passer à des couleurs monotones plus simples et analyser plus en profondeur l'utilisation combinée complexe de masques pour contrôler les couches.

Notre tâche consiste maintenant à désactiver tous les canaux de cette couche qui ne nous intéressent pas pour le moment. Vous devez désactiver les canaux Height, Rough, Metal, Nrm (Normal) et ne laisser que la couleur (color):

image

Nous devons maintenant distribuer nos images en couches et configurer leur affichage correct. Pour ce faire, sélectionnez le calque, recherchez l'image, importez-la dans le dossier Projet (dans le panneau Etagère) et faites glisser l'image dans le paramètre Couleur de base.

image

Répétez cette action avec le deuxième calque et le chapeau.

C'est important. La couche avec le chapeau doit être plus élevée dans la hiérarchie que le chat, car nous voulons que le chapeau soit sur le chat, et non SOUS lui. N'oubliez pas que vous pouvez contrôler la visibilité des calques à l'aide du bouton en forme d'œil à gauche du calque.

Étant donné que le projet est conçu pour les textures et que les textures sont censées être carrées (il est souhaitable que la taille soit toujours un multiple de 2 m. Autrement dit, la taille de 64 * 64 pixels est de 2 * 2 * 2 * 2 * 2), l'image du chat sera légèrement étirée en largeur , puisque sa photographie est rectangulaire verticalement, et Substance Painter l'a étirée en une forme carrée.
À cet égard, nous devons modifier l'échelle de l'image et étirer la photo sur le calque verticalement. Pour ce faire, nous déverrouillons le verrou de conservation du rapport et étendons l'image en définissant l'échelle verticale à 0,7.

image

Vous devez maintenant ajuster la taille du chapeau de la même manière, mais vous n'avez plus besoin de désactiver les relations d'enregistrement. Depuis que j'ai un très grand chapeau, lorsque vous changez l'échelle, un effet tel que le carrelage commence à fonctionner - la texture commence à se répéter horizontalement et verticalement, donc le système ne vous permet pas de laisser des espaces vides si l'image est plus petite que la taille de l'image finale (dans notre cas, moins de 1024x1024 pixels).

Une petite digression: pourquoi avons-nous besoin de carrelage?

Le carrelage est nécessaire lorsque nous devons remplir des éléments de texture répétitifs. Par exemple, une grille ou une sorte de motif de tissu. L'image ci-dessous a une structure d'image spécialement structurée de telle sorte que si nous attachons une copie de cette image d'en haut, d'en bas ou de chaque côté, elle ressemblera toujours à une image entière et plus large (en particulier dans l'exemple inférieur, l'image se compose déjà de 16 images répétitives ):

image

Ces répétitions sont appelées motifs (ou plus simplement - textures sans couture) et elles sont créées de sorte que vous puissiez répéter ces motifs encore et encore au moins un million de fois. À l'avenir, nous utiliserons cette répétition pour améliorer la qualité de l'image, mais nous l'utilisons principalement lors de la création de shaders, nous ne reviendrons donc pas bientôt sur le carrelage et les motifs.

Et donc, continuez

Nous avons fait le chapeau à l'échelle à la taille dont nous avons besoin. Maintenant, nous devons placer le chapeau plus ou moins sur la tête du chat - pour cela, nous commençons à tordre les paramètres de décalage (décalage), en déplaçant le chapeau dont nous avons besoin sur le chat.

Nous avons obtenu l'image suivante:

image

Eh bien, il est maintenant temps d'utiliser des masques pour modifier la visibilité du calque de chapeau. Les masques dans Substance Painter peuvent être créés de 2 manières:

  • Créez un masque sur le calque lui-même, en limitant sa visibilité.
  • Créez un dossier dans lequel vous pouvez placer le calque. Et mettez un masque sur le dossier.

La deuxième option vous permet de créer plus de combinaisons de masques, mais maintenant nous nous intéressons au principe du masque lui-même, et non à la complexité des combinaisons, nous allons donc créer un masque sur le calque et le rendre immédiatement noir. Pour ce faire, nous cliquons sur la couche RMB et sélectionnons «Ajouter un masque noir».

Et qu'arrive-t-il à un pixel lorsque le canal du masque de transparence de pixel dessus est 0 (complètement noir)? Correctement, le pixel devient complètement transparent et n'apparaît pas du tout:

image

Comme vous l'avez remarqué, le calque est maintenant composé de deux images: une image est un chapeau et la deuxième image est un masque entièrement noir. Le masque dans Substance Painter (comme ailleurs, en principe) est créé à partir d'un seul canal 8 bits. Et maintenant, en contrôlant l'intensité, nous pouvons dessiner sur le masque avec des nuances de gris, «montrant» la couche supérieure. Plus l'intensité de l'ombrage des pixels est élevée, plus la couche de pixels avec des chapeaux sera lumineuse jusqu'à ce que les pixels soient entièrement affichés.

Maintenant, notre tâche est de rendre visible le chapeau dont nous avons besoin, et pour cela, nous devons indiquer sur le masque quelle zone du calque de remplissage du chapeau sera affichée. Pour ce faire, sélectionnez le calque avec le masque et sélectionnez le masque lui-même (cela est important, car vous ne pouvez pas modifier le calque de remplissage, vous pouvez uniquement modifier le masque). Lorsque vous sélectionnez un masque, nous ouvrons les paramètres de pinceau, que nous dessinerons sur le masque, et tout en bas des paramètres, il y a un paramètre de niveaux de gris de 0 à 1 (de 0 à 255, respectivement).

Maintenant, en dessinant un masque sur la tête d'un chat, nous allons révéler un chapeau:

image

Eh bien, et retirez l'excédent avec une brosse à intensité 0:

image

Le masque lui-même ressemble à ceci:

image

Ainsi, le masque nous a permis de déterminer la zone du calque avec les chapeaux à afficher.
Eh bien, cela s'applique à l'édition des sceaux. Et comment l'appliquer aux textures des jeux?

Combinaisons complexes de masques.


Regardons maintenant une tuile propre pour le sol. Plus précisément, sa texture:

image

Imaginez maintenant que nous devons créer une texture de carreau qui serait endommagée, avec des fissures et de la saleté. De plus, pas seulement de la saleté, mais juste celle ci-dessous sur la texture:

image

En conséquence, nous savons déjà comment créer des couches de remplissage avec des textures et maintenant notre tâche:

  • Créez un nouveau projet avec les mêmes paramètres que dans le précédent (nous les considérerons comme standard).
  • Créez 2 couches - une pour les tuiles, l'autre pour la saleté. Étant donné que la saleté doit être au-dessus du carreau, nous plaçons la couche de saleté au-dessus.

Mais maintenant, nous ne masquons pas le calque avec de la saleté, mais créons un dossier vide pour les calques et mettons le calque de saleté dans ce dossier (rappelez-vous que le dossier doit toujours être plus élevé dans la hiérarchie que la tuile).

Et le masque est déjà créé sur le dossier.

image

Définissons maintenant les zones dans lesquelles vous pouvez peindre la saleté (vous faites la vôtre et moi la mienne). Et n'oubliez pas que pour modifier le masque, nous devons sélectionner le masque sur le dossier, pas sur les calques.

J'ai donc eu l'image suivante:

image

Pas un chef-d'œuvre, mais les zones dans lesquelles la saleté doit être exposée, nous l'avons identifiée.

Créez maintenant un autre dossier dans le dossier avec la couche de saleté et transférez la couche de saleté dans ce dossier. Au total, il s'est avéré que la couche de saleté se trouve dans un dossier qui se trouve dans un autre dossier:

image

Nous allons également créer un masque sur le nouveau dossier, mais cette fois ce n'est pas un remplissage solide, mais nous allons sélectionner quelque chose parmi les différents masques existants. Par exemple, je l'ai trouvé ici sur Internet:

image

Offtop sur le téléchargement d'images vers Substance Painter
Pour télécharger une image puis l'utiliser comme masque, vous devez la transférer sur l'étagère (dans le dossier) à partir du navigateur et sélectionner les options suivantes:
image

Vous pouvez peut-être spécifier un format différent, plutôt que «texture», et l'image sera toujours connectée en tant que masque, mais je ne le sais pas (suggérer dans les commentaires).


Définir cette texture comme un masque est facile. Cliquez avec le bouton droit sur le dossier et sélectionnez Ajouter un masque bitmap. Dans la fenêtre qui apparaît, trouvez la texture dont vous avez besoin et sélectionnez-la comme masque. La hiérarchie avec les dossiers a commencé à ressembler à ceci:
image

Notez que dans une petite fenêtre d'aperçu près du dossier supérieur, au lieu de la saleté complète, un tas de carrés avec de petits aperçus visibles de saleté a commencé à s'afficher. C'est le résultat de la façon dont la couche de saleté actuelle sera traitée, en tenant compte de tous les masques que nous avons ajoutés.
Mais en général, nous avons obtenu l'image suivante:

image

Dans cet exemple, nous avions un mélange de masques. Le premier niveau du masque a déterminé les zones où 100% ne doivent PAS apparaître de saleté et où elles peuvent apparaître. Le deuxième niveau du masque a déterminé où 100% de la saleté apparaît et où non. Les pixels dans lesquels les deux masques avaient des valeurs supérieures à 0 ont commencé à afficher de la saleté en fonction de la limite inférieure d'intensité (si le premier masque a une intensité de pixel de 0,5 et une seconde de 0,2, le pixel sera transparent à 0,2). Autrement dit, chaque pixel prend en compte tous les masques qui affectent son affichage. Et si au moins un masque vaut 0, le pixel ne sera pas affiché.

Total:

Calques - c'est le remplissage sur toute la zone du projet, qui a un tas de canaux pour contrôler l'état de l'image.

Un masque est 1 canal d'un pixel d'image (texture) qui est nécessaire pour traiter la visibilité de quelque chose.

Le nombre de canaux pour le 1er pixel peut être très important. Avec les paramètres standard, Substance Painter prend déjà en compte 9 canaux dans la 1ère couche - 3 par couleur et 3 pour divers effets, 3 sur les cartes normales. L'image elle-même dans l'image de votre navigateur ne contient que 3 canaux + 1 supplémentaire, s'il y a de la transparence.

De plus, les couches peuvent se chevaucher et le programme fait déjà des calculs pour 1 pixel beaucoup plus grand que pour 9 canaux. Autrement dit, dans le cas du mélange de 2 couches dans le 1er pixel, le logiciel doit calculer 9 canaux d'une couche, puis prendre en compte la transparence qui a été spécifiée dans le canal de masque et calculer l'intensité totale des pixels en tenant compte du masque. Ensuite, vous devez calculer la deuxième couche et ses 9 canaux. Ensuite, appliquez une couche translucide sur le dessus. Total 18 canaux de couches et 1 canal de mixage. Bien sûr, lorsque vous le téléchargez sur des images (textures), il n'y aura pas 19 canaux - Substance Painter créera 3 images (textures):

  • Image (texture) avec couleur (3 canaux par pixel).
  • Image (texture) avec canaux pour les paramètres PBR.
  • Image (texture) pour déterminer les normales.

Autrement dit, Substance Painter fera déjà tous les calculs afin que vous puissiez simplement obtenir le résultat final dans l'image. Eh bien, comme vous le savez, il ne sera pas possible de contrôler le masque de transparence de la saleté dans ces images - les images (textures) dans ce cas sont obtenues comme résultat final, que nous pouvons positionner sur le modèle et obtenir un modèle coloré.

La texture


J'ai intentionnellement écrit dans les résultats sur les masques «Image (texture)», afin que vous commenciez à différer la compréhension que la texture n'est en fait pas une image dans notre sens habituel.

Une texture est un ensemble de paramètres permettant aux moteurs de jeu ou aux programmes de travail avec des textures de comprendre comment traiter un pixel.

Une texture peut contenir 1 canal. Par exemple, pour la transparence. Ou il peut contenir 3 canaux à la fois à des fins diverses (par exemple, pour les paramètres du travail métallique, la rugosité et l'ombrage).

Il existe de nombreuses variétés d'application de textures, mais elles se résument toutes à une chose: travailler avec 1 ou plusieurs canaux.

Par exemple, la texture de la cavité (fissures) décrit généralement les bords (bords) d'un objet dans une numérisation, mettant en évidence des pixels avec un maximum de blanc sur toute la longueur des bords. Mais en fait, ce n’est qu’une texture dont le canal vise à afficher l’intensité des pixels aux bons points. Une telle texture peut être utilisée, par exemple, pour des masques de boue - c'est-à-dire que nous pouvons y afficher de la saleté sur l'objet.

Appliquez des masques en dehors des programmes de texturation.

Les masques sont nécessaires non seulement pour des programmes comme Substance Painter. Dans les moteurs de jeu, la texture est très similaire au travail de Substance Painter - vous pouvez simplement coller les textures finies de Painter, ou vous pouvez commencer à personnaliser les shaders (matériaux) à volonté, en combinant les textures à travers les masques de différentes manières. Et si Painter donne un résultat prêt à l'emploi, un shader basé sur un masque effectue des calculs à la volée (grosso modo en ligne).

Un peu de textures PBR


En fonction du fonctionnement de la texture et des raisons pour lesquelles elle est nécessaire, vous pouvez expliquer très rapidement ce qu'est le PBR.

PBR est un rendu de texture basé sur la physique. Autrement dit, il s'agit d'un ensemble de paramètres, contrôlant que nous pouvons donner à la texture un aspect cinématographique.

Pour cela, des paramètres sont utilisés qui sont responsables de la façon dont la lumière doit être affichée sur un pixel.

Voici une liste de ces options:

  • Métallique Responsable de représenter le pixel en métal. Avec quelle facilité la lumière est réfléchie par un pixel.
  • Rugosité. Responsable du degré de rugosité des pixels. La quantité de lumière diffusée au contact du pixel.
  • Occlusion ambiante (obsolète). Responsable de l'ombrage des pixels. Ce paramètre, qui devient obsolète et ne sera bientôt plus utilisé.
  • Carte normale. Il est responsable de la façon dont la lumière peut être déformée sur un pixel, créant une fausse profondeur ou courbure imaginaire.
  • Albédo (couleur) - la couleur avec laquelle le pixel doit être affiché.

Il existe encore une tonne de paramètres différents que vous devrez peut-être ou non prendre en compte pour obtenir le résultat souhaité. Tout dépend de l'effet que vous obtenez.

Par exemple, si un programme insère un pixel dans un canal métallique avec un seul canal, dont l'intensité sera de 1 (255), alors ce pixel reflétera tout autour autant que le métal pur.

image

Après avoir réglé le canal de rugosité au maximum (indiquant tous les pixels comme 1 ou 255), nous voyons que maintenant le pixel a cessé de tout refléter et a commencé à diffuser la lumière si fortement qu'elle est devenue grise:

image

Il est très important de comprendre qu'il n'y a pas de textures distinctes qui se spécialisent dans une chose. Toutes les textures sont des canaux dont les pixels ont une intensité ou des valeurs, ce qui indique lequel, vous dites à un paramètre ou à un autre de réagir d'une manière ou d'une autre.

Nous analyserons le PBR de la manière la plus détaillée dans la prochaine partie de la leçon. Et envisagez également des techniques supplémentaires pour mélanger les masques afin d'améliorer l'image.

Si j'ai écrit quelque chose de mal ou pas clair, je vous prie de me le faire savoir afin que je puisse corriger cette leçon.

Merci à tous pour votre attention =)

Source: https://habr.com/ru/post/fr458470/


All Articles