Comprendre la façon dont les données sont représentées et manipulées dans l'Editeur de matériau est l'un des principaux concepts de la création de matériau dans Unreal Engine. Les entrées du Noeud de matériau principal, qui définissent les attributs physiques d'un matériau, sont chacune programmées pour accepter un type spécifique de données. De même, de nombreux nœuds d'expression de matériau utilisés pour construire des matériaux ne pourront être compilés que s'ils reçoivent un type spécifique de données sur leurs entrées.
Cette page fournit une vue d'ensemble des quatre types de données disponibles dans l'éditeur de matériau et des exemples de leur utilisation fréquente.
Types de données flottantes
En infographie, une donnée flottante est un type de données qui stocke une seule valeur numérique, positive ou négative. Flottant est l'abréviation de à virgule flottante, ce qui signifie que le nombre contient une décimale et ne doit pas nécessairement être un nombre complet (ou entier). Des exemples de valeurs flottantes peuvent être 1,0, -0,5 ou 2,0.
En fin de compte, tous les types de données dans l'éditeur de matériaux sont des variations de la variable flottante. Là où ils diffèrent, c'est dans la quantité de valeurs qu'ils stockent. Alors qu'une variable float représente un seul nombre, une variable float2 stocke deux valeurs discrètes à virgule flottante. Par exemple : (1.0, 0.5).
Le tableau suivant présente les quatre types de données disponibles dans l'éditeur de matériau.
| Type de données | Expression(s) de matériau | Structure de données | Utilisations courantes |
|---|---|---|---|
| Flottante | Constante, Paramètre scalaire | (r) | Métallique, Rugosité, opérations arithmétiques |
| Float2 | Constant2Vector | (r, g) | UV ou coordonnées XY, Echelle |
| Float3 | Constant3Vector | (r, g, b) | Couleur (r, g, b) ou coordonnées 3D (x, y, z) |
| Float4 | Constant4Vector, Paramètre vectoriel, Textures | (r, g, b, a) | Couleur avec canal alpha, Textures (r, g, b, a) |
Float
Comme décrit ci-dessus, une variable float stocke une seule valeur en virgule flottante. Il peut être positif ou négatif et contient une décimale. Il existe deux expressions de matériau que vous pouvez utiliser pour définir une valeur à virgule flottante.
Expression du matériau constante
Un nœud Expression de matériau constante stocke une seule valeur flottante constante.. Comme il s'agit d'une constante, cette valeur ne change pas après la compilation du matériau. L'image ci-dessous montre un nœud Constant qui contient une valeur de 1.0.
Paramètre scalaire
Un Paramètre scalaire stocke également une valeur à virgule flottante. Contrairement à une constante, le paramètre scalaire devient également une variable nommée que vous pouvez modifier dans une instance de matériau après la compilation du matériau, ou même au moment de l'exécution. L'image ci-dessous montre un paramètre scalaire dont le nom est Rugosité et dont la valeur par défaut est 0.6. Vous pouvez l'utiliser pour définir l'attribut de rugosité du matériau, tout en offrant aux artistes la possibilité de remplacer la valeur dans une instance de matériau.
Pour plus d'informations sur le moment et la manière d'utiliser les paramètres scalaires au lieu des constantes, lisez la documentation Matériau instancié.
Exemples
Certaines entrées du Noeud de matériau principal sont définies par une valeur à virgule flottante. Par exemple, les [entrées] Métallique, Spéculaire, et Rugosité inputs acceptent toutes une expression à valeur flottante comprise entre 0 et 1. Par conséquent, vous pouvez transmettre une expression de matériau constante ou un paramètre scalaire directement dans le nœud de matériau principal pour définir ces attributs.
Les constantes et les paramètres scalaires sont souvent utilisés pour contrôler la magnitude d'un effet. Ci-dessous, un paramètre scalaire appelé Puissance émissive est multiplié par une couleur solide et transmis à l'entrée Couleur émissive. La modification de la valeur du paramètre Puissance émissive rend la sortie émissive plus lumineuse ou plus faible.
Float2
Une variable Float2 stocke deux valeurs numériques. Par exemple : (2.0, 3.0).
Dans l'éditeur de matériau, l'expression de matériau Constant2Vector est utilisée pour définir une variable float2. Ci-dessous, un Constant2Vector est présenté avec des valeurs de 2,0 et 3,0 dans chacun de ses deux canaux.
Constant2Vector
La variable Constant2Vector est utile chaque fois que vous devez définir ou modifier un attribut qui nécessite des données à deux canaux. Dans le panneau Détails, les deux valeurs sont intitulées R et G, en référence aux canaux rouge et vert de la couleur rgb, mais ce n'est qu'une des utilisations possibles. Les coordonnées (UV, XY) et l'échelle (largeur, hauteur) sont d'autres attributs que vous pouvez définir avec un Constant2Vector.
Dans l'exemple ci-dessous, un vecteur Constant2Vector est ajouté à un nœud Coordonnées de la texture pour modifier la position de la texture sur un plan. Dans la première diapositive, les valeurs du Constant2Vector sont (0, 0), la position de la texture est donc inchangée.

Les valeurs de la variable Constant2Vector contrôlent la position de la texture.
Lorsque la valeur R passe à 0,5, la texture se déplace le long de l'axe horizontal, car elle est ajoutée à la coordonnée U de la texture. Ainsi, la texture s'enroule autour des bords gauche et droit du plan. Lorsque la valeur G passe à 0,5, la texture se déplace verticalement. Le centre de la texture se trouve maintenant aux quatre coins du plan.
Float3
Une variable float3 stocke trois valeurs numériques. Dans l'éditeur de matériaux, le nœud Constant3Vector définit un float3.
Constant3Vector
Dans Unreal Engine, la couleur d'un pixel est définie par trois valeurs représentant les canaux de couleur rouge, vert et bleu. Par conséquent, une utilisation courante d'un float3 est de définir une couleur solide.
Si vous double-cliquez sur un nœud Constant3Vector, une boîte de dialogue de sélection de couleur apparaît, vous permettant de sélectionner une couleur avec la roue ou l'outil pipette. Le sélecteur de couleurs propose également des champs permettant de saisir des valeurs RGB, HSV ou Hex si vous devez créer une couleur spécifique. Vous pouvez également lancer le sélecteur de couleurs en cliquant sur le nuancier de couleurs dans le panneau Détails.
Un deuxième cas d'utilisation d'un float3 est la définition de coordonnées (x, y, z). Par exemple, l'entrée Décalage de la position dans le monde accepte trois valeurs, qui définissent le nombre d'unités de décalage du matériau sur les axes x, y et z dans l'espace du monde.
Dans les quatre diapositives ci-dessous, les valeurs d'un Constant3Vector sont toutes changées en 800. Vous pouvez voir comment la position de la sphère change, d'abord sur l'axe des x, puis sur l'axe des y, puis sur l'axe des z dans la troisième diapositive.

Le décalage de la position du monde prend trois valeurs, pour décaler le matériel le long des axes x, y et z.
Paramétrage de Constant3Vector
Vous pouvez paramétrer un Constant3Vector en cliquant dessus avec le bouton droit de la souris et en choisissant Convertir en paramètre dans le menu contextuel. Cela convertit le nœud en un paramètre vectoriel. Le nœud Paramètre vectoriel stocke en fait quatre valeurs (r, g, b, a), ce qui en fait un float4.
Cependant, toute entrée qui requiert un float3 utilisera simplement les trois premières valeurs et rejettera la quatrième. Par exemple, l'entrée Couleur de base accepte un float3. Si vous connectez un paramètre vectoriel à la couleur de base, il utilisera les canaux R, G et B et ignorera la quatrième valeur (le canal alpha). Comme Unreal Engine sait quel canal rejeter, vous pouvez utiliser sans risque un paramètre vectoriel lorsque vous devez paramétrer un float3, même si le nœud est techniquement un float4.
Float4
Un float4 stocke quatre valeurs à virgule flottante. Par exemple : (50.0, 0.0, 100.0, 0.5). Il existe deux expressions de matériau couramment utilisées pour définir un float4.
Constant4Vector
Le Constant4Vector stocke quatre valeurs constantes. La variable Constant4Vector est le plus souvent utilisée pour représenter une couleur RGBA, c'est-à-dire une couleur avec un canal alpha. Comme pour la variable Constant3Vector, vous pouvez double-cliquer sur le nœud ou cliquer sur le nuancier dans le panneau Détails pour accéder à un sélecteur de couleurs.
Paramètre vectoriel
Un Paramètre vectoriel est un float4 paramétré. Vous pouvez créer un paramètre vectoriel directement à partir de la palette, ou le faire. L'utilisation la plus courante d'un Paramètre vectoriel est de créer des paramètres de couleur dans un matériau que les artistes peuvent facilement remplacer dans les instances de matériau. Par exemple, la multiplication d'un paramètre vectoriel au-dessus d'une texture est une façon d'ajouter un contrôle de teinte à certains aspects d'un matériau (couleur de base et émissivité, par exemple).
Outre son utilité dans un flux de travail de matériau paramétré, le paramètre vectoriel présente un avantage supplémentaire. Contrairement aux exemples précédents sur cette page, chaque canal de données individuel dans un paramètre vectoriel est accessible par les cinq broches de sortie sur le côté droit du nœud. Comme indiqué ci-dessus, ce sont :
- RGBA - Produit toutes les valeurs dans le float4. Dans l'exemple ci-dessus : (0.0, 1.0, 0.5, 0.0).
- R — Produit la valeur dans le canal R uniquement.
- G — Produit la valeur dans le canal G uniquement.
- B — Produit la valeur dans le canal B uniquement.
- A — Produit la valeur dans le canal A uniquement.
Cela met en évidence un aspect important de la création de matériau. En fin de compte, les informations qui circulent dans un graphique de matériau ne sont que des valeurs à virgule flottante conditionnées et représentées de différentes manières. Même si les canaux d'un paramètre vectoriel sont étiquetés RGBA dans le panneau Détails, cela ne signifie pas qu'ils doivent être utilisés de cette manière dans votre matériau.
Au-delà de la représentation de la couleur, vous pouvez utiliser un paramètre vectoriel pour paramétrer quatre valeurs discrètes mais liées. Une de ces utilisations du nœud se trouve dans le matériau parent de Megascans, où un paramètre vectoriel est utilisé pour paramétrer le carré UV et le décalage du matériau.
Remarquez que les canaux RGBA ont été renommés dans cet exemple en Carré X, Carré Y, Décalage X et Décalage Y. Vous pouvez renommer les canaux d'un paramètre vectoriel dans le panneau Détails sous Personnalisation du paramètre > Noms des canaux. Ces noms sont visibles dans l'éditeur d'instance de matériau lorsqu'un artiste remplace les valeurs des paramètres.
Pour en savoir plus sur le nœud Paramètre vectoriel ici, et en apprendre sur le paramétrage du matériau sur ces pages.
Autres lectures
Les quatre types de données présentés sur cette page constituent la base de toutes les informations qui transitent par un graphique de matériaux. Il est important de comprendre que les types de données ne sont pas nécessairement immuables. Par exemple, vous pouvez combiner deux valeurs flottantes pour former un float2. De même, vous pouvez extraire ou isoler une seule valeur flottante d'un type de données plus large.
Continuez de consulter des informations sur la manipulation des types de données et les règles des opérations arithmétiques dans un graphique de matériau ici : Manipulation de données de matériau et opérations arithmétique.