Les expressions de matériau utilitaires sont des nœuds qui peuvent affecter les matériaux de plusieurs façons différentes et surprenantes. Par exemple, le nœud GIReplace remplace la couleur de rebond indirect d'un objet par une valeur donnée que vous saisissez, tandis que le nœud Linear Interpolate permet de fusionner deux textures en fonction d'une entrée Alpha. Sur la page suivante, nous vous proposons une description détaillée de toutes les expressions utilitaires disponibles dans l'éditeur de matériau.
AntialiasedTextureMask
L'expression AntialiasedTextureMask permet de créer un matériau à l'aide d'un masque de transition progressive (anticrénelée). Le masque peut être utilisé pour fusionner deux propriétés de matériau complexes ou pour faire disparaître un matériau fusionné alpha (fonctionne bien avec SoftMasked). Spécifiez une texture avec le masque spécifié dans un canal (rouge, vert, bleu ou alpha), définissez le canal utilisé dans l'expression et spécifiez la valeur de comparaison. En supposant que le canal stocke une valeur de niveaux de gris dans la plage 0 = noir à 1 = blanc, la fonction de comparaison définit si le masque résultant doit être 0 ou 1. Cette expression est un paramètre, qui permet de remplacer la propriété Texture par les instances MaterialInstances enfants.
| Élément | Description |
|---|---|
| Propriétés | |
Seuil | Spécifie la valeur utilisée comme point de coupure dans la couverture des pixels. Une valeur de couverture de pixels inférieure à celle-ci devient noire ; une valeur supérieure devient blanche. |
Canal | Spécifie le canal de la texture à utiliser comme masque. |
Texture | Spécifie la texture de masque à utiliser. |
| Entrées | |
UV | Prend en compte les coordonnées de texture à appliquer au masque de texture. |
Pseudo code :
Result = 1
if TextureLookup < Threshold then Result = 0L'implémentation réelle est un peu plus compliquée, car elle essaie de définir des valeurs de retour entre 0 et 1 en fonction de la couverture réelle des pixels pour éviter le crénelage.
Exemple (cette petite texture de 128x128, non compressée pour une meilleure qualité) :
A été utilisée comme texture de normale (coin supérieur gauche) et utilisée avec l'expression de matériau décrite (coin inférieur droit) :
La technique fonctionne mieux en cas d’agrandissement et avec du contenu d’entrée flou. La compression nuit beaucoup à la qualité, essayez donc d'utiliser des textures basse résolution non compressées.
BlackBody
L'expression BlackBody simule l'effet du rayonnement du corps noir. L'utilisateur saisit une température (en Kelvin) et la couleur et l'intensité résultantes peuvent être utilisées pour ajuster les valeurs de couleur de base et d’émission afin d'obtenir un résultat physiquement précis.
BumpOffset
BumpOffset est l'expression utilisée dans l'Unreal Engine 4 pour ce qui est communément appelé 'Mappage de parallaxe'. L'expression Bump Offset permet à un matériau de créer une illusion de profondeur sans nécessiter de géométrie supplémentaire. Les matériaux BumpOffset utilisent une texture de hauteur en niveaux de gris pour donner des informations sur la profondeur. Plus la valeur de la texture de hauteur est élevée, plus le matériau semble 'ressortir' ; ces zones se décaleront à mesure que la caméra se déplacera sur la surface. Les zones sombres de la texture de hauteur sont 'plus éloignées' et sont celles qui se décaleront le moins.
| Élément | Description |
|---|---|
| Propriétés | |
HeightRatio | Multiplicateur de la profondeur extraite de la texture de hauteur. Plus la valeur est élevée, plus la profondeur sera extrême. La plage de valeurs type varie de 0,02 à 0,1. |
ReferencePlane | Spécifier la hauteur approximative dans l'espace de texture à laquelle appliquer l'effet. Une valeur nulle (0) semblera déformer complètement la texture par rapport à la surface, tandis qu'une valeur de 0,5 (valeur par défaut) signifie qu'une partie de la surface sera surélevée tandis que certaines zones seront enfoncées. |
| Entrées | |
Coordonnées | Prendre les coordonnées de texture de base à modifier par l'expression. |
Hauteur | Prendre la texture (ou une valeur) à utiliser comme texture de hauteur. |
HeightRatioInput | Multiplicateur de la profondeur extraite de la texture de hauteur. Plus la valeur est élevée, plus la profondeur sera extrême. La plage de valeurs type varie de 0,02 à 0,1. Si elle est utilisée, cette entrée remplace toute valeur dans la propriété Height Ratio (Rapport de hauteur). |
ConstantBiasScale
L'expression ConstantBiasScale prend une valeur d'entrée, y ajoute une valeur de biais, puis la multiplie par un facteur d'échelle pour obtenir le résultat. Par exemple, pour convertir des données d’entrée de [-1,1] à [0,1], vous utiliserez un biais de 1,0 et une échelle de 0,5.
| Propriétés | Description |
|---|---|
Biais | Spécifier la valeur à ajouter à l'entrée. |
Échelle | Spécifier le multiplicateur du résultat biaisé. |
DDX
L'expression DDX expose le calcul dérivé de DDX, une fonctionnalité matérielle du GPU utilisée dans le calcul du shader de pixels.
DDY
L'expression DDY expose le calcul dérivé de DDY, une fonctionnalité matérielle du GPU utilisée dans le calcul du shader de pixels.
DepthFade
L'expression DepthFade permet de masquer les jointures disgracieuses qui se produisent lorsque des objets translucides croisent des objets opaques.
| Élément | Description |
|---|---|
| Propriétés | |
Distance de fondu | Distance dans l'espace du monde sur laquelle le fondu doit être effectué. Elle est utilisée si l’entrée FadeDistance n'est pas connectée. |
| Entrées | |
Opacité | Prendre l'opacité existante de l'objet avant le fondu de profondeur. |
FadeDistance | Distance dans l'espace du monde sur laquelle le fondu doit être effectué. |
Le réseau de matériau dans cet exemple est illustré ci-dessous.
DepthOfFieldFunction
L'expression Depth of Field Function (fonction de profondeur de champ) est conçue pour donner aux artistes le contrôle sur ce qui se passe avec un matériau lorsqu'il est flouté par la profondeur de champ. Elle génère une valeur comprise entre 0 et 1 où 0 correspond à "net" et 1 à "complètement flou". Cela est utile lors de l’interpolation entre les versions nettes et floues d'une texture, par exemple. L’entrée Profondeur permet de remplacer le résultat existant des calculs de profondeur de champ de la scène par d'autres calculs.
Desaturation
L'expression Desaturation désature son entrée ou convertit les couleurs de son entrée en nuances de gris, en fonction d'un certain pourcentage.
| Élément | Description |
|---|---|
| Propriétés | |
Facteurs de luminance | Spécifie la contribution de chaque canal à la couleur désaturée. C'est ce qui permet de contrôler que le vert est plus lumineux que le rouge, qui est lui-même plus lumineux que le bleu lorsqu'il est désaturé. |
| Entrées | |
Fraction | Spécifie la quantité de désaturation à appliquer à l'entrée. Le pourcentage peut varier de 0,0 (couleur d’origine complète, sans désaturation) à 1,0 (complètement désaturée). |
Programmeurs : définissez la couleur désaturée D, la couleur d'entrée I et le facteur de luminance L. La sortie sera O = (1 - pourcentage)*(D.dot( I )) + pourcentage * I
Distance
L'expression Distance calcule la distance (euclidienne) entre deux points/couleurs/positions/vecteurs et génère la valeur résultante. Cela fonctionne sur des vecteurs à un, deux, trois et quatre composants, mais les deux entrées de l'expression doivent avoir le même nombre de canaux.
| Élément | Description |
|---|---|
| Entrées | |
A | Prend en compte une valeur ou un vecteur d'une longueur quelconque. |
B | Prend en compte une valeur ou un vecteur d'une longueur quelconque. |
Observez comment la couleur change à mesure que la distance par rapport à la caméra augmente.
Pseudo code :
Result = length (A - B)Code HLSL de bas niveau :
float Result = sqrt (dot (A-B, A-B))DistanceFieldGradient
L'expression DistanceFieldGradient du nœud Material Expression, lorsqu'elle est normalisée, renvoie la direction X, Y, Z dans laquelle un objet se déplacerait dans le champ de distance. Le nœud Material Expression du gradient de champ de distance est donc bien adapté aux matériaux qui doivent simuler l'écoulement de liquides.
L'option Générer les champs de distance de maillage doit être activée dans les paramètres du projet sous Rendu pour que cette expression fonctionne correctement.
| Élément | Description |
|---|---|
Position | Il s'agit par défaut de la position actuelle dans le monde en l'absence d'entrée. |
Vous trouverez ci-après un exemple d'utilisation de l'expression de matériau DistanceFieldGradient dans vos matériaux. Dans l'exemple ci-dessous, il faut noter que DistanceFieldGradient a d'abord été normalisée, puis intégrée dans un nœud Mask Channel. La raison en est que sans normaliser d'abord l’expression DistanceFieldGradient, vous ne pouvez pas obtenir de données directionnelles. Le paramètre de canal de masque a été ajouté pour faciliter la commutation de canal RVB dans l'instance de matériau.
Voici un exemple d’utilisation de DistanceFieldGradient. L'image ci-dessous montre quelles données l’expression DistanceFieldGradient utilise lorsque les différentes options RVB sont activées.
| Number | Description |
|---|---|
1 | Activer le canal R et désactiver tous les autres canaux. |
2 | Activer le canal G et désactiver tous les autres canaux. |
3 | Activer le canal B et désactiver tous les autres canaux. |
DistanceToNearestSurface
Le nœud Material Expression de l'expression Distance jusqu'à la surface la plus proche permet aux matériaux d'échantillonner n'importe quel point des niveaux du champ de distance global. Cette expression de matériau génère la distance signée en unités de l'espace du monde entre le champ de distance et les occluseurs les plus proches de la scène.
L'option Générer les champs de distance de maillage doit être activée dans les paramètres du projet sous Rendu pour que cette expression fonctionne correctement.
| Élément | Description |
|---|---|
Position | Il s'agit par défaut de la position actuelle dans le monde en l'absence d'entrée. |
Voici un exemple d'utilisation de l'expression de matériau Distance jusqu'à la surface la plus proche.
Dans cet exemple, la distance jusqu'à la surface la plus proche a été introduite dans l'entrée Opacité d’un matériau et ce matériau a été appliqué à un plan de maillage statique placé juste au-dessus du sol du niveau. L’expression Distance jusqu'à la surface la plus proche indique au matériau de colorer en rouge uniquement les zones où le plan des maillages statiques commence à croiser d'autres maillages statiques placés dans la scène.
FeatureLevelSwitch
Le nœud Feature Level Switch permet de créer des matériaux simplifiés pour les appareils de faible puissance.
Exemple d'utilisation : vous pouvez avoir un matériau avec 10 textures qui se chevauchent et des calculs complexes, mais une seule texture statique pour mobile (niveau de fonctionnalité ES2).
| Entrées | Description |
|---|---|
Par défaut | Le niveau de fonctionnalité par défaut. |
ES2 | Niveau de fonctionnalité défini par les capacités de base d'OpenGL ES2. |
ES3.1 | Niveau de fonctionnalité défini par les capacités des appareils de niveau Metal. |
SM4 | Niveau de fonctionnalité défini par les capacités de base du Shader Model 4 de DX10. |
SM5 | Niveau de fonctionnalité défini par les capacités de base du Shader Model 5 de DX11. |
Fresnel
L'expression Fresnel calcule une atténuation basée sur le produit scalaire de la normale de surface et de la direction de la caméra. Lorsque la normale de surface pointe directement vers la caméra, une valeur de 0 est générée. Lorsque la surface normale est perpendiculaire à la caméra, une valeur de 1 est générée. Le résultat est fixé dans la plage [0,1], ce qui fait qu’il n’y a pas de couleur négative au centre.
| Élément | Description |
|---|---|
| Propriétés | |
Exposant | Spécifier la vitesse à laquelle la valeur de sortie décline. Les valeurs élevées désignent une atténuation plus rapide ou plus marquée. |
Fraction de réflexion de base | Spécifier la fraction de reflet spéculaire à partir de laquelle la surface est vue de face. Une valeur de 1 désactive effectivement l'effet Fresnel. |
| Entrées | |
ExponentIn | Spécifier la vitesse à laquelle la valeur de sortie décline. Les valeurs élevées désignent une atténuation plus rapide ou plus marquée. Si elle est utilisée, la valeur remplace toujours la valeur de la propriété Exponent (Exposant). |
Fraction de réflexion de base | Spécifier la fraction de reflet spéculaire à partir de laquelle la surface est vue de face. Une valeur de 1 désactive effectivement l'effet Fresnel. Si elle est utilisée, la valeur remplace toujours la valeur de la propriété Exponent (Exposant). |
Normale | Prendre une valeur vectorielle à trois canaux représentant la normale de la surface dans l'espace du monde. Pour voir les résultats d'une texture de normales appliquée à la surface de l'objet Fresnel, connectez la texture de normales à l'entrée Normale du matériau, puis connectez une expression PixelNormalWS à cette entrée sur le Fresnel. Si aucune normale n'est spécifiée, la normale de tangente du maillage est utilisée. |
GIReplace
L'expression GIReplace permet aux artistes de spécifier une chaîne d'expression différente, et généralement plus simple, lorsque le matériau est utilisé pour le GI.
Exemple d'utilisation : le GI statique de Lightmass et le GI dynamique de LPV l'utilisent.
| Entrées | Description |
|---|---|
Par défaut | Le GI par défaut. |
StaticIndirect | Utilisée pour l'éclairage indirect précalculé. |
DynamicIndirect | Utilisée pour l'éclairage indirect dynamique. |
LightmassReplace
L'expression LightmassReplace passe simplement par l'entrée Realtime lors de la compilation du matériau à des fins de rendu de normale, et passe par l'entrée Lightmass lors de l'exportation du matériau vers Lightmass pour l'éclairage global. Elle permet de contourner les expressions de matériau que la version exportée ne peut pas gérer correctement, notamment WorldPosition.
| Entrées | Description |
|---|---|
Temps réel | Prendre la (les) valeur(s) à transmettre pour un rendu de normale. |
Lightmass | Prendre la (les) valeur(s) à transmettre lors de l'exportation du matériau vers Lightmass. |
LinearInterpolate
L'expression LinearInterpolate fusionne deux valeurs d'entrée basées sur une troisième valeur d'entrée utilisée comme masque. Il s'agit d'un masque permettant de définir les transitions entre deux textures, à l'instar d'un masque de couche dans Photoshop. L'intensité de l’Alpha du masque détermine le rapport de couleur à extraire des deux valeurs d'entrée. Si Alpha a la valeur 0,0, la première entrée est utilisée. Si Alpha a la valeur 1,0, la seconde entrée est utilisée. Si Alpha a une valeur comprise entre 0,0 et 1,0, la sortie est une fusion des deux entrées. Gardez à l’esprit que la fusion est effectuée par canal. Ainsi, si Alpha est une couleur RVB, la valeur du canal rouge de l'Alpha définit la fusion entre les canaux rouges de A et B indépendamment du canal vert de l'Alpha, qui définit la fusion entre les canaux verts de A et B.
| Élément | Description |
|---|---|
| Propriétés | |
Const A | La valeur mappée à 0,0. Utilisée uniquement si l'entrée A n'est pas connectée. |
Const B | La valeur mappée à 1,0. Utilisée uniquement si l'entrée B n'est pas connectée. |
Const Alpha | Prend en compte la valeur à utiliser comme alpha de masque. Utilisé uniquement si l'entrée Alpha n'est pas connectée. |
| Entrées | |
A | Prend en compte toute valeur mappée à 0,0. |
B | Prend en compte toute valeur mappée à 1,0. |
Alpha | Prend en compte la valeur à utiliser comme alpha de masque. |
Programmeurs : LinearInterpolate effectue un lerp par canal entre A et B en fonction de l'Alpha de la valeur paramétrique.
Bruit
L'expression Noise crée un champ de bruit procédural, ce qui permet de contrôler la façon dont il est généré.
| Élément | Description |
|---|---|
| Propriétés | |
Échelle | Modifier la taille globale des cellules de bruit. Plus la valeur est petite, plus le bruit est grand. |
Qualité | Paramètre d'aspect/de performances. Des valeurs plus faibles sont plus rapides, mais peuvent donner un rendu moins satisfaisant, tandis que des valeurs plus élevées sont plus lentes, mais peuvent offrir un rendu de meilleure qualité. |
Fonction |
|
Turbulence | Lorsque l'option Turbulence est activée, chaque octave de bruit ajoute uniquement les valeurs absolues au résultat. Modifier les caractéristiques visuelles et créer des formes ressemblant à des crêtes de montagnes. |
Niveaux | Nombre de niveaux de bruit à différentes échelles à combiner, multipliant le coût de calcul par le nombre de niveaux. |
Sortie min | La valeur la plus basse générée par le calcul du bruit. |
Sortie max | La valeur la plus élevée générée par le calcul du bruit. |
Échelle de niveau | L'échelle de niveau est toujours active et détermine dans quelle mesure l'échelle change pour chaque nouvelle octave. |
Quadrillage | Pour les fonctions de bruit qui le prenne en charge, il permet de réaliser un quadrillage du bruit. Cette méthode est plus onéreuse, mais elle est utile lorsque l'on veut précalculer le bruit dans une texture enveloppante sans transition. |
Répéter la taille | Lors du quadrillage, il s'agit de la fréquence de répétition du bruit. |
| Entrées | |
Position | Autoriser l'ajustement de la taille de la texture via un vecteur 3D. |
FilterWidth | En réalité, il contrôle la quantité de flou qui sera appliquée à la texture du bruit. |
Previous Frame Switch
L'expression de matériau Previous Frame Switch facilite l'implémentation d'animations de vertex dans les matériaux en fournissant un moyen de générer des vecteurs de mouvement corrects qui fonctionnent correctement avec l'anticrénelage temporel et le flou de mouvement.
Les matériaux qui ne sont qu'une fonction du temps fonctionnent déjà sans modification. Cependant, ils ne peuvent pas tenir compte d'autres variables, telles que les paramètres de matériau, qui peuvent affecter l'animation au moment de l'exécution. L'expression de matériau Previous Frame Switch offre un moyen de résoudre ces problèmes manuellement en suivant les modifications de ces paramètres. Par exemple, dans les blueprints, ils pourraient fournir manuellement des expressions pour la génération de vecteurs de mouvement due à des changements de décalage de position dans le monde entre les images.
Les vitesses issues de la déformation des vertex doivent être activées dans les paramètres du projet sous Rendu pour que cette expression fonctionne.
La version 4.24 et les versions ultérieures utilisent des vitesses précises issues de la déformation des vertex
La version 4.25 et les versions ultérieures utilisent les vitesses de sortie dues à la déformation des vertex
| Élément | Description |
|---|---|
Image actuelle | Vecteur directionnel utilisé comme références de position de départ. |
Image précédente | Vecteur directionnel utilisé comme références XYZ pour la quantité de flou à ajouter. |
Voici un exemple utilisant l'expression de matériau Previous Frame Switch dans un matériau.
Dans cet exemple, l’expression de matériau Previous Frame Switch utilise une valeur constante pour contrôler le flou directionnel via un nœud Multiply.
Dans cet exemple, vous découvrirez comment cette technique est utilisée dans les jeux d'Epic, comme Fortnite, pour contrôler le flou de mouvement à l'aide d'une animation de vertex qui s'assemble à l'écran. L'animation de droite utilise l’expression de matériau Previous Frame Switch pour ajouter un peu de flou de mouvement, contrairement à que l'animation de gauche.
Indicateur d'affichage dans le hublot
Il y a un indicateur d'affichage dans le hublot de l'éditeur, à l'emplacement Afficher > Visualiser > Reprojection de l'image précédente, que vous pouvez utiliser avec l'expression de matériau Previous Frame Switch pour diagnostiquer et corriger les écarts dans les vecteurs directionnels de l'image actuelle et de l'image précédente.
Si cette option est activée, cette visionneuse compare la couleur de l'image actuelle à la précédente, et renvoie la différence entre les deux images. Lorsque la différence est nulle, le matériau apparaît en gris dans le hublot (photo de gauche). Lorsque les vecteurs directionnels ne correspondent pas, le matériau affiche une superposition colorée (photo de droite).
QualitySwitch
L'expression QualitySwitch permet d'utiliser différents réseaux d'expressions en fonction du passage du moteur d'un niveau de qualité à l'autre, par exemple en utilisant une qualité inférieure sur les appareils bas de gamme.
| Entrées | Description |
|---|---|
Valeur par défaut | Cette entrée est utilisée pour les réseaux conçus pour une qualité visuelle par défaut. |
Faible | Cette entrée est utilisée pour les réseaux conçus pour une qualité visuelle inférieure. |
Élevé | Cette entrée est utilisée pour les réseaux conçus pour une qualité visuelle supérieure. |
RotateAboutAxis
L'expression RotateAboutAxis fait pivoter une entrée vectorielle à trois canaux en fonction de l'axe de rotation, d'un point sur l'axe et de l'angle de rotation. Ce nœud génère le Delta vers la position pivotée, et non vers la position entièrement pivotée elle-même. Cela en fait un moyen utile et simple de saisir le résultat dans l’entrée Décalage de position dans le monde pour les rotations simples.
| Entrées | Description |
|---|---|
NormalizedRotationAxis | Prend en compte un vecteur normalisé (0-1) qui représente l'axe autour duquel l'objet va pivoter. |
RotationAngle | L'angle de rotation. Une valeur de 1 équivaut à une rotation complète de 360 degrés. |
PivotPoint | Prend en compte le vecteur à trois canaux représentant le point de pivot autour duquel l'objet va pivoter. |
Position | Prend en compte le vecteur à trois canaux représentant la position de l'objet. |
Dans l'exemple ci-dessus, le plan d'aperçu semble tourner sur son axe vertical.
SphereMask
L'expression SphereMask génère une valeur de masque basée sur un calcul de distance. Si une entrée est la position d'un point et l'autre entrée est le centre d'une sphère de rayon quelconque, la valeur du masque est 0 à l'extérieur et 1 à l'intérieur avec une zone de transition. Cela fonctionne sur les vecteurs à un, deux, trois et quatre composants
| Élément | Description |
|---|---|
| Propriétés | |
Rayon d'atténuation | Spécifier le rayon à utiliser pour le calcul de la distance. |
Pourcentage de dureté | Spécifier la taille de la zone de transition. Il fonctionne comme la valeur de dureté du pinceau Photoshop. 0 signifie que la transition est nette, 100 signifie que la zone de transition est maximale (progressive). |
| Entrées | |
A | Prendre la valeur représentant la position du point à vérifier. |
B | Prendre la valeur représentant le centre de la sphère. |
Le nœud génère une valeur de 1 jusqu'à ce que la caméra dépasse une certaine distance. Ensuite, il génère une valeur de 0.
Faible translucidité
L'expression Thin Translucent Material Output représente avec précision les matériaux transparents à base physique en un seul passage. Cela vous permet de créer de véritables matériaux transparents teintés ou colorés qui réagissent avec précision à l'éclairage et à l'ombrage.
Lors de la création d'un matériau en verre teinté, une lumière spéculaire blanche et un arrière-plan teinté sont nécessaires. Ceux-ci sont rendus en un seul passage avec un shader basé sur la physique qui prend en compte les rebonds de la lumière de l’air vers le verre et inversement.
Activer la sortie de matériau à faible translucidité en définissant ce qui suit dans le panneau Détails du matériau :
Mode de fusion : translucide
Modèle d'ombrage : translucidité fine
Mode d'éclairage : ForwardShading de surface
Bruit vectoriel
L'expression de matériau Vector Noise d'ajouter plus de résultats de bruit de vecteur 3D ou 4D à utiliser dans vos matériaux. Vu le coût de ces fonctions au moment de l'exécution, lorsque vous les avez utilisées pour développer un aspect, il est recommandé de préparer des calculs complets ou partiels dans une texture à l'aide de la fonctionnalité Cibles de rendu.
Grâce à ces expressions de graphique de matériau, vous pouvez développer des aspects procéduraux dans le moteur sur les ressources finales ; vous évitez ainsi d'avoir à créer des textures générées de manière procédurale avec un outil externe. Dans l'expression de matériau Vector Noise, vous trouverez les types de bruit vectoriel suivants.
| Image | Élément | Description |
|---|---|---|
Cellnoise | Renvoie une couleur aléatoire pour chaque cellule dans une grille 3D (de l'opération de sol mathématique appliquée à l'entrée du nœud). Les résultats sont toujours constants pour une position donnée, ce qui permet d'ajouter un caractère aléatoire à un matériau de manière fiable. Le calcul de cette fonction de bruit vectoriel est très faible ; il n'est donc pas nécessaire de la précalculer dans une texture pour des performances optimales. | |
Bruit de Perlin 3D | Renvoie une couleur aléatoire pour chaque cellule dans une grille 3D (de l'opération de sol mathématique appliquée à l'entrée du nœud). Les résultats sont toujours constants pour une position donnée, ce qui permet d'ajouter un caractère aléatoire à un matériau de manière fiable. Le calcul de cette fonction de bruit vectoriel est très faible ; il n'est donc pas nécessaire de la précalculer dans une texture pour des performances optimales. | |
Gradient de Perlin | Calcule le gradient 3D analytique d'un scalaire Bruit simplexe de Perlin. La sortie est constituée de quatre canaux. Les trois premiers (RVB) sont le gradient et le quatrième (A) est le bruit scalaire. Ce type de bruit est utile pour les bosses sur une surface ou pour les textures de flux. | |
Courbure de Perlin | Calcule la courbure 3D analytique d'un vecteur Bruit simplexe de Perlin (ou bruit de courbe). La sortie est un vecteur de courbe 3D signé, utile pour les flux de fluides ou de particules. | |
Voronoi | Calcule le même bruit de Voronoi que le nœud de matériau Noise. Le bruit de Voronoi scalaire disperse les points de départ dans l'espace 3D et renvoie la distance au point le plus proche. La version Bruit vectoriel renvoie l'emplacement du point de départ le plus proche en RVB et la distance qui le sépare de celui-ci en A. Associée à Cellnoise, elle permet notamment un comportement aléatoire par cellule Voronoi. |
Vous trouverez ci-dessous un matériau de lit de pierre simple utilisant le composant de distance du bruit vectoriel/Voronoi pour moduler certaines bosses de surface et intégrer la mousse dans les fissures. La position du point de départ, associée à Vector Noise > Cellnoise, permet de modifier la couleur et la hauteur des bosses par roche.
Les opérations dérivées Courbure de Perlin et Gradient de Perlin peuvent être additionnées en octaves, comme un bruit de Perlin ordinaire. Pour les dérivées d'expressions plus complexes, il est nécessaire de calculer le gradient du résultat de l'expression. Pour procéder à ce calcul, placez l'expression à calculer dans une fonction de matériau et utilisez-la avec les nœuds d'aide suivants.
| Élément | Description |
|---|---|
Prepare3DDeriv | Utilise le décalages des positions dans un motif tétraédrique pour calculer les dérivées 3D. Évalue la même fonction 3D pour chaque position décalée produite par cette fonction, puis envoie les valeurs obtenues dans Compute3DDeriv. |
Compute3DDeriv | Utilise le décalages des positions dans un motif tétraédrique pour calculer les dérivées 3D. À utiliser avec Prepare3DDeriv. |
GradFrom3DDeriv | Calcule le vecteur de gradient 3D à partir du résultat de Prepare3DDeriv/Compute3DDeriv. |
CurlFrom3DDeriv | Calcule la courbure d'un champ vectoriel 3D à partir du résultat de Prepare3DDeriv/Compute3DDeriv. |
Ces fonctions de matériau d'aide utilisent quatre évaluations de l'expression de base, réparties dans un motif tétraédrique pour approximer ces opérations dérivées.
Vous trouverez ci-dessous la description des différentes fonctions de bruit que vous trouverez dans l'expression de matériau Vector Noise.
| Élément | Description |
|---|---|
| Propriétés | |
Fonction |
|
Qualité | Paramètre d'aspect/de performances. Des valeurs plus faibles sont plus rapides, mais peuvent donner un rendu moins satisfaisant, tandis que des valeurs plus élevées sont plus lentes, mais peuvent offrir un rendu de meilleure qualité. |
Quadrillage | Pour les fonctions de bruit qui le prennent en charge, il permet de réaliser un quadrillage du bruit. Cette méthode est plus onéreuse, mais elle est utile lorsque l'on veut précalculer le bruit dans une texture enveloppante sans transition. |
Taille des carrés | Lors du quadrillage, indique la fréquence de répétition du bruit. Pour les variantes de bruit de Perlin, la taille des carrés doit être un multiple de trois. |
| Entrées | |
Position | Permet d'ajuster la taille de la texture via un vecteur 3D. |
Exemple de matériau de Bruit de cellule :
Exemple de matériau Gradient de Perlin :
Exemple de matériau Voronoi :