Substrate est l'approche utilisée dans l'Unreal Engine pour créer des matériaux. Elle remplace la suite de modèles d'ombrage et de modes de fusion, tels que Default Lit et Clear Coat, par un framework plus expressif et plus modulaire.
Certaines abstractions du système de matériaux non Substrate (ou d'anciens systèmes) sont supprimées par Substrate, qui les remplace par des propriétés mesurées de la matière. Cela crée un espace de paramètres plus vaste à partir duquel travailler et permet de mélanger plus précisément des types de surfaces distinctes telles que le métal, le verre et le plastique. Substrate rationalise également le processus de création de couches de matériaux, en facilitant la représentation des surfaces comme les liquides sur du métal ou un revêtement transparent sur une dispersion de sous-surface.
Dans Substrate, les matériaux sont conçus comme des "blocs de matière". Ces blocs constituent une représentation BSDF (fonction de distribution de dispersion bidirectionnelle) fondée sur des principes, paramétrée par des quantités physiques avec des unités bien définies. Les matériaux sont exprimés en tant que graphique de blocs sur lesquels des opérations sont effectuées (comme le mélange et la création de couches). En raison de leur représentation basée sur des principes, les matériaux Substrate peuvent être simplifiés en fonction de la capacité d'une plateforme afin de privilégier les performances au détriment de la qualité visuelle.
Nouveaux projets
Substrate est activé par défaut pour tout projet nouvellement créé. Les projets existants mis à niveau vers la version 5.7 de l'UE et les versions ultérieures continueront à utiliser le chemin non Substrate par défaut, à moins que les paramètres de leur projet n'autorisent explicitement la prise en charge de Substrate.
Pour ces projets existants, vous pouvez choisir d'utiliser Substrate dans Paramètres du projet > Rendu et activer les matériaux Substrate. Vous devez ensuite redémarrer votre projet pour que la modification prenne effet.
Pour les nouveaux projets dans lesquels Substrate est activé par défaut, le format de tampon graphique fusionnable est utilisé pour privilégier la vitesse plutôt que la fidélité visuelle. Vous pouvez modifier ce format dans les paramètres de rendu du projet.
Certains modèles de projet, comme les projets d'automobile ou d'architecture, utilisent le format de tampon graphique adaptatif par défaut afin de privilégier la fidélité visuelle plutôt que les performances.
Pour en savoir plus sur la configuration du format de tampon graphique de votre projet, consultez la section Format de tampon graphique de cette page.
Conversion de l'éditeur de matériau
Les matériaux existants non Substrate seront prêts à l'emploi, mais ne seront pas automatiquement convertis en nœuds Substrate. Les matériaux existants non Substrate ou nouvellement créés continueront à utiliser le paramétrage du nœud racine non Substrate et seront convertis en Substrate lors de la compilation. Cela simplifie la migration du projet, évite d'avoir à modifier ou réenregistrer les ressources et réduit les coûts de préparation.
Pour convertir un matériau en Substrate, faites un clic droit sur le nœud racine et choisissez Convertir en Substrate. Un bloc est automatiquement créé et relié au matériau avant du nœud racine, et les entrées du nœud racine non Substrate sont reliées au bloc.
Procédez comme suit lorsque vous activez Substrate dans un projet existant ou migrez vers l'Unreal Engine 5.7 ou une version ultérieure :
L'ouverture d'un matériau existant non Substrate dans un projet compatible avec Substrate n'a plus d'incidence sur le matériau. Il reste compatible avec les projets non Substrate.
Les matériaux convertis de manière explicite ne sont pas compatibles avec les projets non Substrate. La conversion est définitive, et donc irréversible.
Les matériaux Substrate sont rendus en noir si Substrate est désactivé pour le projet. Cela inclut tous les anciens matériaux Substrate créés à partir de matériaux convertis. Bien que vous puissiez reconnecter manuellement n'importe quel matériau Substrate à un ancien matériau, cela de supprime pas les nœuds Substrate qui se trouvent désormais dans le graphique de matériau.
Format de tampon graphique pour la fidélité visuelle
Substrate prend en charge deux formats de tampon graphique pour le stockage des données de matériau : le tampon graphique fusionnable et le tampon graphique adaptatif. Ces formats présentent différents compromis en termes de vitesse, de mémoire et de fidélité visuelle.
Tampon graphique fusionnable
Ce format vise en priorité une empreinte mémoire fixe et une vitesse prévisible. Il est principalement utilisé pour les projets de 60 Hz. Similaire au chemin non Substrate, il dispose de fonctionnalité limitées.
Il offre des performances identiques à celles du chemin non Substrate.
Il s'adresse aux projets orientés performances (60 Hz).
Il assure une cohérence visuelle sur toutes les plateformes.
Il n'implique aucun frais de préparation.
Il ne force pas l'activation de la technique de décalque de tampon graphique.
Tampon graphique adaptatif
Ce format vise la fidélité visuelle et exploite tout le potentiel de Substrate, permettant ainsi une complexité enrichie des matériaux.
Le coût de performance est plus élevé et dépend de la complexité du matériau visible à l'écran.
Il privilégie la fidélité visuelle, permettant des comportements d'ombrage plus complexes.
La fidélité visuelle dépend de la plateforme.
Le temps de préparation augmente d'environ 15 % par rapport au format fusionnable. Les matériaux dotés d'un comportement d'ombrage complexe augmentent également le temps de préparation.
Ce format force l'activation de la technique de décalque de tampon graphique.
Des contrôles supplémentaires tels que Compte de fermetures et Octets par pixel sont disponibles dans les paramètres du projet et dans la variable de console.
Ce format n'est pris en charge que sur les consoles de génération actuelle Xbox Series X/S, PlayStation 5 et PlayStation 5 Pro, PC Windows (SM6), macOS (SM6) et Linux (SM6). Sur d'autres plateformes (y compris les plateformes SM5), les matériaux sont simplifiés et les plateformes exécutées avec le format de tampon graphique fusionnable.
Pour connaître les problèmes liés à l'utilisation du tampon graphique adaptatif, consultez la section Limitations et problèmes connus de cette page.
Tampon graphique
Le format de tampon graphique fusionnable continuera à prendre en charge les décalques fusionnables et les décalques de tampon graphique. Le décalque de tampon graphique est activé par défaut, mais vous pouvez le désactiver dans les paramètres du projet.
Le format de tampon graphique adaptatif ne prend en charge que les décalques de tampon graphique. Si le projet n'utilise pas de décalque de tampon graphique, le système de rendu l'active automatiquement pour les plateformes qui prennent en charge le format de tampon graphique adaptatif.
Lors de l'utilisation de décalques de tampon graphique, Substrate prend en charge la lecture des normales du matériau pendant l'évaluation du tampon graphique en tant que chemin expérimental, que vous pouvez activer avec r.Substrate.DBufferPass. Le matériau de tampon graphique peut ainsi utiliser les normales du matériau sans reprojection temporelle ou reconstruction des normales basée sur la profondeur.
Paramètres du projet et variables de console facultatifs
Substrate inclut les paramètres de projet et variables de console facultatifs suivants :
| Paramètres du projet | Description |
|---|---|
Format de tampon graphique Substrate (projet) | Sélectionnez le format de tampon graphique utilisé pour le projet :
|
Fermetures Substrate par pixel (projet) | Ce paramètre définit le nombre maximal de fermetures qui peuvent être évaluées par pixel. Si un matériau contient plus de fermetures que la valeur spécifiée dans ce paramètre, le matériau est simplifié de manière itérative jusqu'à ce qu'il corresponde au budget du projet. En outre, chaque plateforme dispose de sa propre limite de nombre de fermetures, que vous pouvez modifier à l'aide des paramètres suivants :
|
Remplacement de la fermeture Substrate par pixel | Sélectionnez la manière dont le nombre maximal de fermetures évaluées par pixel est défini pour chaque plateforme :
|
Matériau opaque Substrate de réflexion approximative (expérimental) | Lorsque cette option est activée, les surfaces rugueuses qui recouvrent d'autres matériaux peuvent flouter les couches inférieures d'une manière physiquement plausible. Cette fonctionnalité est expérimentale. |
Réfraction rugueuse du matériau translucide Substrate | Lorsque cette option est activée, les surfaces translucides peuvent générer des réfractions rugueuses en fonction de leur rugosité. Lorsque cette option est activée, la passe de distorsion est plus coûteuse. |
Shaders de visualisation avancés de Substrate (Éditeur/Win64/DX12 uniquement) | Active les shaders avancés de visualisation de débogage de matériau Substrate. Les shaders de passe de base peuvent produire ces données avancées. Uniquement disponible pour les éditeurs conçus pour Win64 et exécutant l'API graphique DX12 pour le moment. |
Support de couche de matériau pour l'activation de Substrate (expérimental) | Active la création de couches de matériaux Substrate et l'interface utilisateur. Remarque : cette prise en charge est unidirectionnelle, les anciens matériaux de couche sont mis à niveau automatiquement et ne peuvent être restaurés manuellement qu'après le réenregistrement des ressources. |
| Variables de console | |
| Permet de spécifier le volume de stockage octets-par-pixel d'un matériau Substrate avant qu'il ne soit automatiquement simplifié. Cette variable est définie sur 80 octets par pixel par défaut. Vous pouvez l'augmenter pour les matériaux complexes avec des besoins de stockage plus importants. Des valeurs plus élevées utilisent plus de mémoire et peuvent avoir une incidence sur la bande passante mémoire et sur d'autres caractéristiques de performance. La relation entre cette variable et les performances dépend en grande partie du contenu et de la plateforme. Le cas échéant, vous pouvez spécifier cette valeur pour chaque plateforme dans le fichier de configuration platform.ini. |
| Permet de déterminer le nombre de fermetures évaluées par pixel. Si le nombre de fermetures d'un matériau est supérieur à cette valeur, le matériau est automatiquement simplifié pour respecter le nombre de fermetures. |
| L'activation de cette option force Substrate à convertir tous les matériaux vers l'ancien tampon graphique en utilisant un seul modèle d'ombrage par pixel. Il est également possible d'utiliser cette fonctionnalité sur des plateformes moins performantes, afin d'améliorer les performances dans certains projets qui en ont besoin. |
Relation entre Substrate et les couches de matériau
Le mode traditionnel de création de couches de matériaux dans l'Unreal Engine (à la fois dans les graphiques et dans l'interface utilisateur de couches personnalisées) repose sur le concept de fusion de paramètres. Chaque couche définit un graphique de paramètres qui sont fusionnés et intégrés dans le modèle d'ombrage final.
Rien n'empêche les paramètres appliqués aux couches de matériaux d'intégrer un modèle ombrage défini par Substrate. Vous devez néanmoins configurer cette logique manuellement en utilisant la sortie d'un nœud Material Attribute dans le matériau parent. Cette approche présente une limite : bien que le système Attributs du matériau dispose d'une liste fixe de paramètres, il est possible que le nombre d'emplacements soit insuffisant pour intégrer une configuration à plusieurs blocs avec Substrate. Cela peut nécessiter l'utilisation arbitraire de broches sans rapport avec leur signification réelle.
Substrate peut utiliser de façon native la fusion de paramètres, conformément aux instructions fournies ultérieurement dans cette page, bien qu'il soit impossible d'accéder à cette fonctionnalité depuis l'interface des couches de matériau. L'unification de Substrate et des couches de matériau offre un réel intérêt pour le développement à venir.
Il est important de noter que les attributs et les couches de matériau ne fonctionnent pas comme de véritables couches de matière : il est possible de simuler un revêtement transparent, mais il n'est pas possible d'avoir une couche supérieure avec une transmittance colorée au-dessus d'une autre. Ils permettent plutôt la fusion, ou le mélange horizontal, de deux matériaux sur une surface, et non la superposition d'une couche de matière sur une autre.
Utiliser les matériaux Substrate
Les matériaux Substrate sont créés de la même manière que les anciens matériaux. Dans cette section, nous vous décrivons les principaux éléments qui composent les matériaux Substrate, notamment leurs nœuds, leurs modes de fusion et les détails concernant les types de matériaux que vous pouvez créer.
Nœud racine du matériau Substrate
Comme les anciens matériaux, le nœud racine du matériau est l'emplacement où les blocs Substrate et les autres nœuds Substrate, tels que les opérateurs et les blocs de construction, sont alimentés via le matériau avant.
Tous les graphiques de matériau Substrate doivent être reliés à l'entrée Matériau avant du nœud racine. Cette entrée est le point d'extrémité de chaque graphique Substrate.
De plus, comme pour les anciens matériaux, vous utilisez le panneau Détails lorsque le nœud racine du matériau est sélectionné pour définir le mode de fusion et les autres propriétés qui déterminent l'aspect du matériau. Le domaine de matériau et le modèle d'ombrage sont automatiquement déduits du graphique.
Modes de fusion Substrate
Substrate utilise son propre ensemble de modes de fusion pour définir la façon dont la couleur du matériau fusionne avec l'arrière-plan. La capacité des modes de fusion des anciens matériaux à se mélanger et à fusionner est restreinte, ce qui limite le type de matériau qu'ils peuvent créer. Substrate offre une multitude de modes de fusion qui permettent de fusionner toutes sortes de matériaux. Cela est particulièrement important pour obtenir un ombrage de surface translucide réaliste.
Substrate inclut les modes de fusion suivants :
| Mode de fusion | Description |
|---|---|
Opaque | Définit une surface à travers laquelle la lumière ne passe pas et ne pénètre pas. Surface opaque avec une couverture de 1. Ce mode est identique à l'ancien mode de fusion Opaque. |
Masqué | Ce mode est utilisé pour les matériaux qui doivent contrôler sélectivement la visibilité de manière binaire (activé/désactivé). Surface opaque avec une couverture de 1 ou 0. Ce mode est identique à l'ancien mode de fusion Masqué. |
Translucide - Transmittance grise | Matériau translucide avec une surface et une couverture colorées, mais dont la transmittance est réduite aux niveaux de gris. Cette méthode est plus rapide, car elle évite le rendu supplémentaire de la translucidité post-profondeur de champ dans une passe de modulation. Il s'agit du mode de fusion de repli pour les plateformes qui ne prennent pas en charge la translucidité matérielle (appelée fusion de couleurs à double source). Ce mode est similaire à l'ancien mode de fusion Translucide. |
Additif | Ajoute la couleur du matériau à la couleur de l'arrière-plan, ce qui donne Couleur finale = Couleur source + Couleur cible. |
Transmittance colorée uniquement | Seule la transmittance du matériau est utilisée. Les interactions de surface sont réduites à 0. Ce mode est identique à l'ancien mode de fusion Multiplier. |
AlphaComposite (Alpha prémultiplié) | Ce mode de fusion permet un contrôle plus précis de la contribution de couleur d'un matériau fusionné de manière additive sur la scène et sur la quantité de couverture, réduisant ainsi la visibilité de la scène qui se trouve derrière (la couverture du matériau peut être remplacée à l'aide de l'entrée Opacité du nœud racine). Ce mode est identique à l'ancien mode de fusion Composite alpha (alpha prémultiplié). |
AlphaHoldout | Ce mode de fusion conserve l'alpha, ce qui permet de pratiquer un trou dans les objets pour révéler ceux qui se trouvent derrière. Ce mode est identique à l'ancien mode de fusion AlphaHoldout. |
Translucide - Transmittance colorée | Matériau translucide complet avec une surface colorée, une couverture et une transmittance colorée. Ce mode est plus onéreux lorsque vous utilisez une translucidité distincte lors de la post-profondeur de champ, car il nécessite le rendu du composant de transmittance dans un tampon distinct, comme dans l'ancien modèle d'ombrage ThinTranslucent. |
Substrate facilite l'utilisation de la translucidité par rapport aux matériaux traditionnels : les modes de fusion translucides sont mieux définis par leur intention. Un aspect reste néanmoins inchangé entre les deux : tout mode de fusion translucide doit également définir un mode d'éclairage afin de déterminer la façon dont l'éclairage est calculé en fonction de sa surface. Ceci est important pour obtenir l'aspect correct des matériaux translucides.
La grande majorité des matériaux translucides que vous créez utilisent le volume de translucidité de surface ou le forward shading de surface.
Les modes d'éclairage suivants sont disponibles :
| Modes d'éclairage | Description |
|---|---|
Volumétrique non directionnel | L'éclairage est calculé pour un volume sans directionnalité. Utilisez ce paramètre pour les effets de particules comme la fumée et la poussière. Cette méthode d'éclairage par pixel est la moins coûteuse. Cependant, la normale de matériau n'est pas prise en compte. |
Volumétrique directionnelle | L'éclairage est calculé pour un volume avec une directionnalité qui permet de prendre en compte la normale de matériau. Notez que l'espace tangent par défaut des particules fait face à la caméra ; par conséquent, activez Générer les particules par défaut pour obtenir un espace tangent plus utile. |
Volumétrique par vertex non directionnel | Identique au mode Volumétrique non directionnel, hormis le fait que l'éclairage n'est évalué qu'aux vertex, ce qui réduit considérablement le coût du shader de pixels. Notez que, dans la mesure où l'éclairage provient toujours d'une texture de volume, sa portée est limitée. Les éclairages directionnels perdent leur ombre au loin. |
Volumétrique par vertex directionnel | Identique au mode Directionnel volumétrique, hormis le fait que l'éclairage n'est évalué qu'au niveau des vertex, ce qui réduit considérablement le coût du shader de pixels. Notez que, dans la mesure où l'éclairage provient toujours d'une texture de volume, sa portée est limitée. Les éclairages directionnels perdent leur ombre au loin. |
Volume de translucidité de surface | L'éclairage est calculé pour une surface. Étant donné que la lumière est accumulée dans un volume, le résultat est flou et la distance limitée, mais le coût par pixel est très faible. Utilisez ce paramètre sur les surfaces translucides comme le verre et l'eau. Seul l'éclairage diffus est pris en charge. |
Forward shading de surface | L'éclairage est calculé pour une surface. Utilisez ce paramètre sur les surfaces translucides comme le verre et l'eau. Ce paramètre est mis en œuvre avec le forward shading, de sorte que les reflets spéculaires des lumières locales sont pris en charge, mais de nombreuses fonctionnalités différées seules ne le sont pas. Il s'agit de la méthode d'éclairage par translucidité la plus coûteuse, car la contribution de chaque lumière est calculée par pixel. |
Pour consulter des exemples de paramètre et d'utilisation de la translucidité dans un matériau Substrate, consultez la section Translucidité de cette page.
Bloc Substrate
Le bloc Substrate est le bloc de construction élémentaire à partir duquel il est possible d'assembler un matériau Substrate. Il constitue l'ensemble minimal de paramètres nécessaires pour obtenir la grande majorité des apparences des matériaux. En tant que tel, il représente donc la base d'un type de création d'apparence beaucoup plus expressif.
Un bloc est une représentation théorique d'un bloc de matière composé d'une interface et d'un milieu.
Un bloc Substrate se compose d'une interface (1) et d'un milieu (2).
L'interface est la limite où la lumière interagit avec la surface du matériau. Les propriétés de l'interface sont principalement définies par les valeurs Rugosité, Normale, Albédo diffus, F0 et F90.
Le milieu est le volume de matière situé sous l'interface où la lumière est dispersée, transmise et absorbée. Les propriétés du milieu sont principalement définies par le chemin libre moyen (ou MFP) ainsi que par les commandes d'albédo diffus.
Le bloc Substrate est un remplacement modulaire du nœud racine du matériau monolithique dans les matériaux non Substrate. Il est composé de divers attributs de surface, tels que Diffus, Spéculaire, Rugosité, Émissif, Tissu, Anisotropie, et bien d'autres encore. Tous les nœuds BSDF Substrate contiennent des propriétés relatives à leur sortie pour le type de matériau qu'ils produisent, par exemple un œil, des poils, un revêtement transparent simple, etc.
Les matériaux traditionnels dépendaient de leur mode de fusion pour présenter les entrées utilisables. Substrate utilise ses différents blocs BSDF pour définir le type de matériau. Or, comme ils ne sont plus directement liés aux modes de fusion, ils peuvent être superposés et mélangés pour produire divers types de matériaux.
Le nœud principal Substrate Slab BSDF utilisé comprend les entrées suivantes :
| Entrées de bloc Substrate | Définition |
|---|---|
Albédo diffus | Définit le pourcentage de lumière réfléchie de façon diffuse sur une surface. Ce paramètre est similaire à la couleur de base locale du milieu. La valeur par défaut est 0,18. L'albédo diffus représente également le pourcentage de lumière qui est dispersé par le milieu participant lorsque la représentation simple de la sous-surface du volume est utilisée. |
F0 | Définit la couleur et la luminosité des hautes lumières spéculaires lorsque la surface est perpendiculaire à la caméra. Pour les matériaux diélectriques (matériaux plastiques et non métalliques), cette valeur est généralement comprise entre 0 et 0,08. Pour les matériaux métalliques, elle peut aller jusqu'à 1. Les pierres précieuses ont une valeur maximale de 0,16. |
F90 | Définit la couleur des hautes lumières spéculaires lorsque la normale de surface est à 90 degrés de la caméra, c'est-à-dire à des angles d'incidence par rapport à la vue de la caméra. Seules la teinte et la saturation sont perçues, car la luminosité est fixée à 1,0. Ce paramètre s'estompe jusqu'au noir lorsque F0 descend en dessous de 0,02. |
Rugosité | Contrôle la rugosité du matériau. La rugosité de la surface est comprise entre 0 et 1. À 0 (lisse), la rugosité est un reflet de miroir. À 1 (entièrement rugueux), la rugosité est totalement mate ou diffuse. Lors de l'utilisation du paramètre Anisotropie, la valeur de rugosité est utilisée le long de l'axe tangent. |
Anisotropie | Contrôle la direction anisotrope du matériau (-1 : les hautes lumières sont alignées sur la bitangente, 1 : les hautes lumières sont alignées sur la tangente). |
Normale | Prend comme entrée une normale de surface. La normale est considérée comme tangente ou comme espace du monde en fonction des propriétés spatiales du nœud racine du matériau. Cette entrée définit la normale d'ombrage pour chaque pixel. |
Tangente | Prend comme entrée une tangente de surface. La normale est considérée comme tangente ou comme espace du monde en fonction des propriétés spatiales du nœud racine du matériau. Cette entrée définit la tangente d'ombrage pour chaque pixel. |
MFP SSS | Chemin libre moyen (MFP) pour la dispersion de sous-surface. Ce paramètre détermine la densité perçue du matériau, et influence l'absorption et la dispersion de lumière par le matériau. Plus précisément, il définit la distance moyenne, en centimètres, à laquelle un photon interagit avec une particule de matière. Cette distance est contrôlée pour chaque canal de couleur. Le MFP interagit directement avec la transmission et la quantité de lumière dispersée à l'intérieur d'un bloc :
Cette entrée n'est utilisée que lorsqu'aucune ressource de profil de sous-surface n'est assignée au nœud racine du matériau. |
Échelle MFP SSS | Cette entrée met à l'échelle le rayon du chemin libre moyen de la dispersion de sous-surface du profil de sous-surface à une valeur comprise entre 0 et 1. |
Anisotropie de phase SSS | Les valeurs positives allongent la fonction de phase le long de la direction de la lumière, ce qui provoque une dispersion avant. Les valeurs négatives allongent la fonction vers l'arrière le long de la direction de la lumière, ce qui provoque une dispersion arrière. |
Couleur émissive | Contrôle la couleur émissive sur les surfaces du matériau. |
Rugosité secondaire | Contrôle la rugosité d'un lobe spéculaire secondaire. À 0 (lisse), la rugosité est un reflet de miroir. À 1 (entièrement rugueux), la rugosité est totalement mate ou diffuse. Cette entrée n'a pas d'incidence sur la rugosité diffuse. |
Seconde pondération de rugosité | Facteur de mélange entre le lobe spéculaire principal et le lobe secondaire. Le premier spéculaire utilisant la rugosité a une pondération de (1 - SecondRoughnessWeight). Les valeurs égales à 0 rendent le lobe principal uniquement. La valeur 0,5 rend un mélange à 50 % des deux rugosités, et la valeur 1,0 rend uniquement le lobe secondaire. |
Rugosité floue | Contrôle la rugosité de la couche de duvet. Le duvet avec une rugosité de 0 est lisse (plus brillant) et le duvet avec une rugosité de 1 est entièrement rugueux (mat). |
Quantité de duvet | Si la valeur est supérieure à 0, ajoute une couche de duvet à l'interface, ce qui provoque une rétroréflectivité des couleurs. Contrôle la quantité de duvet appliquée sur une couche de surface. Ce paramètre est généralement utilisé pour créer des matériaux textiles. |
Couleur du duvet | Définit la couleur de la couche de duvet. |
Densité de brillance | Représentation logarithmique de la densité des micro-facettes à la surface d'un matériau. Le paramètre |
UV de brillance | Contrôle la position et la dimension des brillances sur la surface d'un matériau. Le paramètre |
Le comportement de sous-surface du bloc est défini par la propriété Type de sous-surface du bloc. Il définit le modèle de dispersion utilisé pour le bloc donné. Il offre un contrôle explicite pour récupérer le comportement existant ou obtenir des apparences différentes.
Les types de sous-surface disponibles sont les suivants :
Enveloppe : utilise un modèle d'éclairage enveloppant pour émuler la dispersion de la lumière. Ce type est l'équivalent de l'ancien modèle d'ombrage Sous-surface.
Enveloppe recto verso : utilise un modèle d'éclairage enveloppant des deux côtés de la surface pour émuler la dispersion de la lumière. Ce type est équivalent à l'ancien modèle d'ombrage Végétation recto verso.
Diffusion : utilise un modèle de diffusion (espace écran ou ray tracing) pour mettre à jour la dispersion de la lumière. Lorsqu'un profil SSS est fourni, ce type est l'équivalent à l'ancien modèle d'ombrage Profil de sous-surface. Sinon, le MFP peut être contrôlé directement sur le bloc.
Volume simple : utilise une combinaison de modèle Beer-Lambert pour la partie de transmittance et de modèle ajusté pour la partie de dispersion.
Pour les blocs verticaux, seul le type de sous-surface Volume simple est valide. Liste des types de sous-surface pris en charge par type de couche :
| Couche inférieure | Couches supérieures |
|---|---|
Aucun Volume simple Enveloppe Enveloppe recto verso Diffusion | Aucun Volume simple |
En fonction de la plateforme et du chemin d'ombrage, le type de sous-surface de diffusion peut ne pas être disponible. Dans ce cas, le système repose sur un modèle diffus simple sans dispersion. La diffusion est uniquement prise en charge dans les chemins différés et le Path Tracing, et sur les plateformes suivantes : Xbox One, Xbox Series S, Xbox Series X, PlayStation 4 et 5, PC DX11, PC DX12, Linux Vulkan et macOS. Les plateformes moins performantes, notamment les plateformes mobiles, ne prennent pas en charge les modèles de diffusion. En bas de chaque nœud Slab, une balise indique quel modèle de dispersion sera utilisé en fonction de la topologie. Si ce type de dispersion n'est pas compatible avec la topologie, cette balise peut être différente de celle spécifiée par la propriété Type de sous-surface.
Paramétrage du matériau Substrate
Substrate utilise un paramétrage F0/Albédo diffus par rapport au chemin non Substrate, qui utilisait Couleur de base/Spéculaire/Métallicité. Ce paramétrage offre une plus grande flexibilité tout en continuant à garantir la conservation de l'énergie. Notez toutefois que le choix de la valeur F0 appropriée peut ne pas être intuitif au premier abord.
À titre indicatif, vous pouvez classer les matériaux en deux catégories :
Matériaux diélectriques : ces matériaux sont dotés d'une valeur de métallicité de 0 et d'une valeur F0 généralement comprise entre 0,02 et 0,06, dans l'espace linéaire. Les pierres précieuses peuvent avoir une valeur de F0 maximale de 0,18 dans l'espace linéaire.
Matériaux conducteurs : ces matériaux ont une valeur de métallicité de 1 et ont généralement une valeur F0 supérieure à 0,5 et pouvant atteindre 1, dans l'espace linéaire.
Entre ces deux plages se trouvent les matériaux semi-conducteurs, que l'on rencontre rarement dans le monde réel.
Source des diagrammes : Adobe Substances.
Voici une liste de valeurs F0 pour les matériaux courants :
Cette liste est tirée de l'ouvrage Real-Time Rendering, Third Edition, de Tomas Akenine-Möller, Eric Haines et Naty Hoffman.
| Matériau | F0 linéaire | F0 sRVB | Couleur |
|---|---|---|---|
Eau | 0,02 | 0,15 | |
Plastique/verre (faible) | 0,03 | 0,21 | |
Plastique (élevé) | 0,05 | 0,24 | |
Verre (élevé)/Rubis | 0,08 | 0,31 | |
Diamant | 0,17 | 0,45 | |
Fer | 0,56, 0,57, 0,58 | 0,77, 0,78, 0,78 | |
Cuivre | 0,95, 0,64, 0,54 | 0,98, 0,82, 0,76 | |
Or | 1,00, 0,71, 0,29 | 1,00, 0,86, 0,57 | |
Aluminium | 0,91, 0,92, 0,92 | 0,96, 0,96, 0,97 | |
Argent | 0,95, 0,93, 0,88 | 0,98, 0,97, 0,95 |
Simplification de matériau
La simplification de matériau survient lorsqu'un matériau ne respecte pas l'une des limites suivantes :
Pour le format de tampon graphique fusionnable, si un matériau a plus d'une fermeture.
Pour le format de tampon graphique adaptatif, si un matériau a plus de fermetures par pixel que la valeur spécifiée dans les paramètres du projet/de la plateforme, ou si le nombre d'octets par pixel est supérieur à celui des paramètres du projet.
En tenant compte de ces paramètres, le matériau est simplifié en fusionnant les blocs avec la fusion de paramètres jusqu'à ce que les exigences soient satisfaites. Les raisons de la simplification et les détails sont visibles dans le panneau Substrate (Fenêtre > Substrate).
Pour les projets/plateformes qui utilisent le format de tampon graphique fusionnable, le matériau final doit utiliser une seule fonctionnalité par pixel, ce qui correspond à un ancien modèle d'ombrage. Ces fonctionnalités sont les suivantes (par ordre de priorité) :
Fuzz
Diffusion de sous-surface (avec ou sans profil)
Flou
Si plusieurs fonctionnalités sont activées simultanément pour un pixel donné, seule la fonctionnalité ayant la priorité la plus élevée est utilisée. Notez que l'anisotropie peut être activée indépendamment des autres fonctionnalités.
Dans l'exemple de matériau ci-dessous, le matériau Substrate était hors budget et a été simplifié en conséquence dans le panneau de statistiques Substrate de l'éditeur de matériau.
Substrate prend en charge plusieurs fonctionnalités visuelles qui peuvent être activées pour chaque bloc (ou automatiquement lors de l'utilisation du nœud d'expression SubstrateShadingModel). Ces modèles d'ombrage comprennent :
F90
Fuzz
Effets SSS (Profil SSS, Enveloppé, Volume simple)
Flou
Anisotropie
Profil spéculaire
Brillances
Lorsque le format de tampon graphique fusionnable est utilisé, certaines fonctionnalités ne sont pas prises en charge. Il s'agit des fonctionnalités suivantes :
F90
Diffusion SSS avec MFP par pixel
Flou
Brillances
Dans ce cas, la fonctionnalité est visuellement absente du matériau. Notez que l'option LUT spéculaire est prise en charge, mais qu'elle est approximée comme un effet dépendant de la vue uniquement.
Voici une comparaison visuelle de ces fonctionnalités entre les deux formats de tampon graphique :
Pour des raisons de performance, lors de l'évaluation de l'éclairage, ces fonctionnalités sont mappées sur des ensembles de complexité, correspondant à un coût d'évaluation de plus en plus élevé :
Simple : matériau éclairé par défaut (diffus coloré et spéculaire, rugosité)
Unique : Couleur F90, Fuzz, Effets SSS (Profil, Enveloppé et Volume simple via MFP), Revêtement transparent.
Complexe : Anisotropie, Profil spéculaire, Yeux et Poils.
Complexe spécial : Brillances
Nœuds de matériau Substrate
Vous pouvez utiliser les types de nœuds suivants pour créer un matériau Substrate :
| Type de nœud | Description |
|---|---|
Ces nœuds représentent la plupart des types de surfaces, de matériaux simples aux plus complexes comme les poils, les yeux et l'eau. | |
Ces nœuds mélangent et superposent plusieurs BSDF de bloc Substrate afin de créer des surfaces complexes et variées. | |
Ces nœuds translatent les types de matériaux courants pour une utilisation avec Substrate, comme la création d'une couche avec revêtement ou le modèle d'ombrage de matériau hérité par défaut d'Unreal Engine. | |
Ces nœuds définissent un domaine de matériau pour un matériau Substrate et sont directement analogues à leurs noms de domaine de matériau hérités. | |
Ces nœuds permettent d'effectuer certaines conversions au sein du matériau, telles que le mappage de la transmittance sur le chemin libre moyen pour un bloc Substrate. |
Nœuds BSDF Substrate
Les nœuds BSDF (fonction de distribution de dispersion bidirectionnelle) Substrate servent à représenter la plupart des types de surfaces. Ils contrôlent l'aspect visuel des matériaux que vous créez, et définissent automatiquement leur domaine et leur modèle d'ombrage en conséquence. L'objectif est de supprimer ces aspects qui doivent être définis manuellement sur le nœud racine du matériau via le panneau Détails.
Substrate inclut les BSDF suivantes :
Le bloc BSDF est le nœud principal pour la création dans Substrate et peut être superposé à d'autres blocs. Les autres BSDF sont destinées à des cas d'utilisation spécialisés et doivent être utilisées seules, sans être combinées à d'autres BSDF.
| Nœud BSDF Substrate | Description |
|---|---|
Substrate Slab BSDF | Représentation théorique d'un bloc de matière qui agrège plusieurs composants : diffus, spéculaire, flou, duvet textile et anisotropie. Il peut rendre des effets tels que la dispersion translucide ou de sous-surface opaque et la dispersion de sous-surface avec transmittance translucide. |
Substrate Eye BSDF | BDFS dédiée au rendu des matériaux d'yeux avec Substrate. Cela comprend des entrées spécifiques pour la cornée et l'iris. |
Substrate Hair BSDF | BDFS dédiée au rendu des matériaux de poils avec Substrate. |
Substrate Simple Clear Coat | Propose un moyen simple et rapide de rendre un matériau avec un revêtement supérieur transparent. Ce nœud utilise la BSDF de bloc Substrate en arrière-plan, mais simplifie le flux de travail pour le rendu du revêtement transparent. Il est optimisé pour rendre les anciens matériaux comme le revêtement transparent. |
Substrate SingleLayerWater BSDF | BSDF dédiée au rendu d'un matériau d'eau à couche unique principalement utilisé dans le système Eau. |
Substrate Unlit BSDF | BSDF utilisée pour rendre les éléments non éclairés avec une luminance émissive colorée. Ce nœud Substrate remplace l'ancienne opacité en niveaux de gris par une transmittance colorée. Si vous devez fusionner un bloc non éclairé, faites appel à un bloc Substrate standard dans lequel seule l'entrée émissive est utilisée. L'opérateur Pondération de couverture peut être utilisé. |
Substrate Volumetric-Fog-Cloud BSDF | BSDF utilisée pour représenter un milieu participant. Ce nœud permet de rendre les nuages volumétriques et les volumes homogènes. |
Nœuds d'opérateurs Substrate
Les nœuds d'opérateurs Substrate combinent ou superposent plusieurs blocs Substrate pour créer des surfaces complexes et variées. Si le bloc Substrate représente un morceau de matière, les opérateurs proposent diverses méthodes pour combiner ces morceaux.
Les opérateurs Substrate suivants sont disponibles :
Les opérateurs Substrate ne fonctionnent pas avec tous les BSDF Substrate. Seuls les BSDF de bloc Substrate et Revêtement transparent simple Substrate peuvent utiliser ces nœuds d'opérateurs.
| Nœud d'opérateur Substrate | Description |
|---|---|
Substrate Coverage Weight | Cet opérateur prend en entrée un bloc et contrôle la quantité de couverture dont il dispose, où Weight (Pondération) correspond à la quantité de couverture. La réduction de la pondération diminue la couverture de la matière du bloc ; autrement dit, vous voyez à travers la matière en dessous. La pondération est similaire à l'entrée Opacité du nœud racine dans l'ancien matériau. Par exemple, vous pouvez l'utiliser pour rendre les surfaces translucides lors de l'utilisation d'un mode de fusion translucide ou pour réduire la visibilité d'un revêtement supérieur transparent. |
Substrate Horizontal Blend | Cet opérateur prend en entrée deux blocs : un arrière-plan et un premier plan. L'entrée Mélange contrôle le degré de mélange de ces deux blocs à l'aide d'une interpolation linéaire. Cette propriété permet de créer une transition douce entre les blocs sur une surface. |
Substrate Vertical Layer | Cet opérateur prend en entrée deux blocs : une couche supérieure et une couche inférieure. Le bloc supérieur est superposé au bloc inférieur, l'apparence de la couche inférieure étant influencée par les propriétés de la couche supérieure. Utilisez l'entrée Épaisseur supérieure pour contrôler l'épaisseur de la couche supérieure par rapport à la couche inférieure. Cet opérateur est idéal pour créer des peintures automobiles, des vernis pour bois et un effet mouillé sur une surface. |
Substrate Add | Cet opérateur prend en entrée deux blocs et les additionne. Le matériau créé n'est pas physiquement plausible, car il génère plus d'énergie sortante à partir de la surface que d'énergie entrante. Évitez d'utiliser ce nœud dans la mesure du possible. |
Sélection Substrate | Cet opérateur prend en entrée deux chemins de matériaux Substrate et en sélectionne un seul. La fusion de paramètres est activée sur ces deux chemins, de sorte que, au final, un seul et unique matériau de bloc subsiste. Vous pouvez l'utiliser pour sélectionner de manière aléatoire des blocs avec ou sans profils de sous-surface, par exemple en utilisant le bruit bleu. Il est intéressant au regard des performances, car il impose un seul bloc comme sortie, de sorte qu'une seule fermeture par pixel sera évaluée pendant les passes d'éclairage. |
Les nœuds d'opérateur incluent une option qui permet de fusionner leurs blocs d'entrée en un seul bloc lors de l'activation de l'option Utiliser la fusion de paramètres. Étant donné que les opérateurs Substrate peuvent créer des apparences de matériaux complexes en mélangeant et en superposant des blocs, leur coût à l'exécution (principalement dû à l'évaluation de l'éclairage) peut être élevé en termes de performances. La fusion des paramètres est une optimisation qui sacrifie la précision visuelle et l'évaluation coûteuse de l'éclairage au profit des performances d'exécution et d'une évaluation moins onéreuse de l'éclairage.
Pour en savoir plus sur l'optimisation de la fusion des paramètres, consultez la section Paramètres de fusion de cette page.
Opérateur Substrate Coverage Weight
L'opérateur Substrate Coverage Weight contrôle le rapport entre deux blocs dans une opération de superposition verticale. L'entrée Pondération détermine la couverture de ce matériau lors de la superposition avec un opérateur Substrate Vertical Layer (comme dans l'exemple ci-dessous). Vous pouvez également utiliser cet opérateur pour obtenir des surfaces translucides lorsque vous utilisez Alpha comme couverture ou Alpha comme opacité, de la même manière que le mode de fusion Translucide utilise l'opacité.
Le graphique ci-dessus utilise l'opérateur Substrate Coverage Weight, où Weight détermine la quantité de couverture appliquée sur le bloc inférieur. Une pondération de 1 est totalement opaque et bloque le motif texturé vert. 0,5 correspond à une transparence de 50 %, mélangeant les couleurs des deux matériaux et laissant apparaître le motif de la texture. 0 correspond à une transparence totale et n'affiche que le motif texturé vert.
Opérateur Substrate Horizontal Layer
L'opérateur Substrate Horizontal Layer combine deux blocs, l'un représentant l'arrière-plan et l'autre le premier plan. L'entrée Mélange détermine leur rapport de mélange à l'aide d'une interpolation linéaire.
L'entrée Arrière-plan est entièrement visible lorsque sa valeur est 0, et l'entrée Premier plan est entièrement visible lorsqu'elle est égale à 1. Lorsque le rapport de mélange est 0,5, les blocs sont mélangés et le mélange est évalué par pixel. L'entrée Mélange peut utiliser des textures pour contrôler les rapports de mélange, comme dans l'exemple ci-dessous.
Opérateur Substrate Vertical Layer
L'opérateur Substrate Vertical Layer superpose le bloc supérieur et le bloc inférieur. Ce nœud prend en compte l'épaisseur de la couche supérieure afin d'appliquer une transmittance et une dispersion physiquement correctes, similaire à une opération de revêtement, car la couche supérieure recouvre la couche inférieure. L'apparence du bloc inférieur dépend des propriétés du bloc supérieur. Si la BSDF transmise à l'entrée supérieure est totalement opaque, le bloc inférieur n'est pas visible à all.undefined.
La superposition verticale est particulièrement utile dans les situations qui nécessitent un revêtement supérieur transparent ou semi-transparent sur une couche inférieure opaque. Par exemple, la peinture automobile, les surfaces en bois vernies ou l'humidité sur une surface, comme des flaques d'eau.
Opérateur Substrate Add
L'opérateur Add Substrate combine deux blocs et donne leur résultat. Cet opérateur n'est pas considéré comme physiquement plausible, car il peut produire un matériau dans lequel l'énergie sortante de la surface est supérieure à l'énergie entrante. Il est utile lorsque la direction artistique prime sur la plausibilité physique. Cependant, pour conserver des surfaces physiquement précises, évitez d'utiliser cet opérateur.
Nœuds de bloc de construction Substrate
Les nœuds de bloc de construction Substrate sont un ensemble de fonctions de matériau qui fournissent des translations pour des cas d'utilisation courants. Comme il s'agit de fonctions de matériau, vous pouvez les ouvrir directement.
Les nœuds de bloc de construction Substrate suivants disponibles :
| Nœud de bloc de construction Substrate | Description |
|---|---|
Substrate Coated Layer | Fonction de matériau qui crée un matériau avec revêtement composé de deux blocs superposés. Il expose des paramètres conviviaux pour contrôler l'interface et l'absorption du revêtement. |
Substrate Standard Surface Opaque | Fonction de matériau qui crée un matériau Substrate de type uber-shader avec un paramétrage convivial pour les surfaces opaques. La paramétrage utilise des termes et des notions conformes aux normes de l'industrie. |
Substrate Standard Surface Translucent | Fonction de matériau qui crée un matériau Substrate de type uber-shader avec un paramétrage convivial pour les surfaces translucides. La paramétrage utilise des termes et des notions conformes aux normes de l'industrie. |
Substrate UE4 Default Shading | Fonction de matériau qui réplique le modèle d'ombrage par défaut avec Substrate pour le paramétrage diffus, métallique et spéculaire, utilisé dans les matériaux non Substrate. |
Substrate UE5 Unlit Shading | Fonction de matériau qui recrée le modèle d'ombrage Éclairé de l'UE4 avec Substrate. |
Nœuds Extras Substrate
Les nœuds Extras Substrate spécifient le type de matériau et sa fonction. Par exemple, ils paramètrent le matériau Substrate comme décalque ou fonction d'éclairage. Ces nœuds sont directement analogues aux matériaux non Substrate qui leur ont été assignés dans le cadre de leur domaine de matériau.
Les nœuds Extras Substrate suivants sont disponibles :
Ces nœuds sont monolithiques et doivent être utilisés seuls. Ils ne sont pas compatibles avec les opérateurs Substrate.
Par mesure de précaution, nous vous recommandons de placer ces nœuds à la fin du graphique de matériau, juste avant de les relier à l'entrée Matériau avant.
| Nœud Extras Substrate | Description |
|---|---|
Substrate Convert To Decal | Tout graphique de matériau peut servir de décalque. Ce nœud indique que le matériau sera converti et utilisé uniquement comme matériau Décalque. |
Substrate Light Function | Ce nœud indique que le matériau sera utilisé en tant que fonction d'éclairage uniquement. Il doit être utilisé seul. |
Substrate Post Process | Ce nœud indique que le matériau sera utilisé en tant que matériau de post-traitement uniquement. Il doit être utilisé seul. |
Substrate UI | Ce nœud indique que le matériau sera utilisé en tant qu'élément d'interface utilisateur uniquement, tel que ceux conçus pour être utilisés avec le Concepteur d'IU UMG. Il doit être utilisé seul. |
Par exemple, lorsque vous utilisez le nœud Substrate Convert To Decal, tout matériau Substrate peut être utilisé comme matériau de décalque appliqué aux décalques de maillage et aux acteurs de décalque dans la scène.
Les nœuds Extras configurent automatiquement le domaine de matériau lorsqu'ils sont reliés à l'entrée Matériau avant du nœud racine du matériau. Certains nœuds Extras nécessitent la modification du mode de fusion pour prendre en charge la sortie.
Lorsque vous utilisez le nœud Substrate Convert To Decal, vous devez régler le mode de fusion sur TranslucentGrey Transmittance, Colored Transmittance, TranslucentColorTransmittance ou AlphaComposite (alpha pré-multiplié). Dans le cas contraire, une erreur s'affiche dans le panneau Statistiques de l'éditeur de matériau.
Nœuds d'assistance Substrate
Les nœuds d'assistance Substrate sont un ensemble de nœuds et de fonctions de matériau permettant d'effectuer certaines conversions ou d'obtenir des résultats similaires à ceux obtenus avec les anciens matériaux.
| Nœud d'assistance Substrate | Description |
|---|---|
Substrate Flip Flop | Contrôle la réflectivité de la surface selon l'angle d'incidence de la vue. Il permet d'interpoler une couleur de normale (F0) vers une couleur d'incidence (F90) en fonction de l'angle de vue, et contrôle la vitesse d'interpolation à l'aide du paramètre d'atténuation. |
Substrate Haziness-To-Secondary-Roughness | Calcule la rugosité du lobe spéculaire secondaire à partir d'une rugosité de surface de base et d'un voile. Ce paramétrage garantit que le flou est physiquement cohérent et plus facile à percevoir pour l'auteur. |
Substrate IOR-To-F0 | Convertit un indice de réfraction (IOR) diélectrique en valeur F0. |
Substrate Metalness-To-DiffuseColorF0 | Convertit un paramétrage de métallicité (Couleur de base / Spéculaire / Métallique) en paramétrage Albédo diffus / F0. |
Substrate Rotation-To-Tangent | Convertit un angle de rotation en vecteur de tangente. |
Substrate Thin-Film | Calcule les paramètres spéculaires de matériau résultants F0 et F90 conformément aux paramètres de fine pellicule. |
Substrate Transmittance-To-MeanFreePath | Convertit une couleur de transmittance correspondant à un bloc de milieu participant observé perpendiculairement à sa surface en un chemin libre moyen. Ce nœud est directement mappé sur l'entrée MPF SSS BSDF du bloc. |
Substrate View-Dependent-Coverage | Adapte la couverture en fonction de l'angle d'incidence. Ce nœud est utile pour mélanger une couche dont l'épaisseur est suffisamment importante pour impliquer un effet dépendant de la vue. Par exemple, les gros grains de poussière ont une occlusion plus importante à un angle d'incidence qu'à un angle incident. |
Remarques supplémentaires sur les nœuds Substrate
Matériaux de décalque Substrate
Les décalques Substrate utilisent les mêmes fonctionnalités que le chemin d'accès au mode de fusion des anciens décalques.
Les prochaines versions des décalques Substrate doivent offrir un ensemble de fonctionnalités plus robustes, similaires à celles déjà disponibles avec Substrate, comme les blocs translucides en couches pour représenter l'eau, le sang, la boue, etc. Par exemple, des couches qui peuvent s'éroder en fonction de leur épaisseur, comme les rayures sur la peinture d'une voiture, les traces de pas et les traces de pneus.
Modèles d'ombrage Substrate
L'ouverture d'un matériau créé précédemment une fois que Substrate est activé pour votre projet convertit automatiquement le matériau afin qu'il utilise ses blocs. Toutes les entrées existantes sont transmises à un nœud Substrate Shading Model.
Évitez d'ajouter ou d'utiliser manuellement ce nœud lors de la création de nouveaux matériaux Substrate.
Panneau de statistiques Substrate
Le panneau de statistiques Substrate est disponible dans l'éditeur de matériau, sous le graphique de matériau.
Le panneau Substrate affiche des statistiques sur le matériau, la topologie, ses fonctionnalités et la simplification.
Fusion de paramètres avec des opérateurs
L'utilisation de plusieurs BSDF (fonctions de distribution de dispersion bidirectionnelle) par pixel ralentit le processus de rendu proportionnellement à leur nombre dans le graphique de matériau. L'évaluation de l'éclairage pour deux BSDF est deux fois plus lente que pour une seule. Cela vaut aussi bien pour les surfaces opaques que translucides.
Les nœuds d'opérateurs comportent une case à cocher Utiliser la fusion de paramètres, qui tente d'optimiser les performances et l'empreinte mémoire du matériau tout en préservant l'apparence de l'ensemble des opérations de mélange et de couche dans le graphique. Vous devez activer ce paramètre uniquement sur le nœud d'opérateurs situé le plus à droite, avant le nœud racine du matériau. Tous les autres nœuds du graphique appliquent automatiquement la fusion de paramètres.
La fusion de paramètres sert d'option de repli lorsque les performances de plusieurs blocs dans un matériau sont problématiques. Lorsque cette option est activée, deux blocs sont fusionnés en un seul bloc qui ne nécessite qu'une seule évaluation de l'éclairage. Cette fusion utilise beaucoup moins de mémoire que deux blocs individuels.
Les exemples de matériaux ci-dessous sont extraits des exemples de contenu du niveau Substrate sans et avec l'option Utiliser la fusion de paramètres activée.
Ce matériau (M_Substrate_ShaderBall_IceRocks) utilise deux BSDF. Celui de gauche ne fait pas appel à la fusion des paramètres, contrairement à celui de droite.
Il s'agit d'un matériau plus complexe (M_Substrate_ShaderBall_AnisoOverSSS) qui fusionne quatre blocs à l'aide de deux opérateurs de couche verticale et d'un seul opérateur de pondération de couverture. Le matériau a un coût mémoire de 108 octets par pixel. Lorsque l'option Utiliser la fusion de paramètres est activée, la fusion sur tous les opérateurs est réduite à 28 octets par pixel. Le matériau de gauche de fait pas appel à la fusion de paramètres, contrairement à celui de droite.
Outre la fusion des paramètres sur les nœuds d'opérateurs, vous pouvez utiliser l'un des flux de travail suivants pour obtenir des résultats similaires :
Fusionnez manuellement les attributs Albédo diffus, F0, F90, Rugosité et d'autres attributs dans le graphique. Transmettez tous les attributs en un seul bloc relié à l'entrée Matériau avant. Cette approche peut fonctionner dans des cas isolés, mais elle peut devenir difficile à gérer dans le cas d'une vaste bibliothèque de matériaux complexes.
Utilisez le flux de travail de matériaux en couches basé sur un graphique. Étant donné qu'elle utilise les fonctions de matériau pour réutiliser le travail, cette option est plus évolutive que la première.
Sur les plateformes bas de gamme, notamment les plateformes mobiles, la compilation active automatiquement la fusion de paramètres par souci de performances. Sur les plateformes milieu de gamme, la fusion de paramètres est progressivement introduite dans les couches inférieures d'un matériau afin de rester dans les limites de performances et de mémoire cibles.
Métallicité et réponse spéculaire
Le paramétrage utilisé par Substrate diffère de celui du modèle d'ombrage DefaultLit dans les matériaux non Substrate (ou les anciens matériaux). L'entrée Métallique n'est plus disponible. Ce paramétrage tente de supprimer les valeurs abstraites (telles que Métallique et Spéculaire) et s'oriente vers des propriétés physiques exprimées en unités du monde réel.
Les propriétés de réflectivité et la réponse spéculaire des matériaux Substrate sont définies à l'aide de trois attributs : Albédo diffus, F0 et F90. Substrate applique automatiquement la conservation de l'énergie, garantissant que l'interface spéculaire et le milieu n'ajoutent aucune énergie. Ainsi, plus l'attribut F0 est élevé, moins la contribution diffuse est visible.
La métallicité est émulée à l'aide du nœud d'assistance Substrate Metalness-To-DiffuseAlbedo-F0. Il prend en entrée les valeurs Couleur de base, Spéculaire et Métallique et les convertit en valeurs mappées sur Albédo diffus et F0 sur le bloc Substrate.
Il est possible d'obtenir une grande variété de réponses diffuses et spéculaires complexes à la lumière à l'aide des entrées Couleur des bords ou F90. Par exemple, une sphère rouge avec des reflets spéculaires allant du cyan au jaune, perpendiculaire à la tangente.
Les nœuds d'assistance Substrate FlipFlop sont utiles pour obtenir une colorisation spéculaire basée sur des normales. Ils contrôlent la couleur spéculaire de F0 et F90 en tant que fonction de NoV avec une transition d'atténuation réglable.
Réfraction rugueuse
Substrate prend en charge la réfraction rugueuse des objets translucides et des matériaux opaques en couche avec une couche supérieure translucide. Le flou de l'arrière-plan de la scène, ainsi que la distance par rapport à l'objet réfracté, sont calculés à partir de la rugosité du matériau principal lorsque vous utilisez la distorsion/réfraction, ainsi que la distance par rapport à l'objet réfracté.
Réfraction rugueuse translucide
Pour créer un matériau translucide avec une réfraction rugueuse, configurez les propriétés suivantes dans le panneau Détails.
Mode de fusion : TranslucentColoredTransmittance, TranslucentGreyTransmittance ou ColoredTransmittanceOnly.
Méthode de réfraction : Indice de réfraction (IOR), Décalage de la normale par pixel ou Décalage 2D.
Transmettez les valeurs dans Réfraction, Rugosité et MFP SSS. Le graphique ci-dessous produit un résultat simplifié de verre dépoli lorsque la rugosité est supérieure à 0. Une valeur élevée de l'attribut MFP SSS permet de créer un matériau entièrement transparent, et l'indice de réfraction des particules de 1,514 est proche de celui du verre.
Dans les exemples ci-dessous, à mesure que la valeur de rugosité augmente (0, 0,2 et 0,6 de gauche à droite), les objets derrière le verre deviennent plus flous.
Le flou dû à une réfraction rugueuse utilise une approximation pour tenir compte de la profondeur derrière les éléments translucides de la scène.
Réfraction rugueuse opaque
Les couches de revêtement Substrate peuvent estomper les couches situées en dessous en fonction de la rugosité et de l'épaisseur de la couche de revêtement supérieure. Ce type de réfraction est plus coûteux à réaliser et doit être activé pour le projet dans les paramètres du projet, sous la catégorie Moteur > Rendu. Cochez la case Réfraction rugueuse de matériau opaque de Substrate pour activer cette fonctionnalité.
Le graphique ci-dessous illustre un exemple utilisant la réfraction rugueuse d'un matériau opaque à l'aide d'un matériau à couches verticales avec une couche transparente sur un motif en damier opaque.
Les paramètres Rugosité et Épaisseur déterminent l'intensité du flou appliqué à la couche de matériau inférieure. Augmentez l'une de ces valeurs pour augmenter le flou de la réfraction.
Consultez les exemples ci-dessous, où la couche supérieure transparente à gauche présente une rugosité et une épaisseur de 0,1. L'exemple de droite présente une rugosité de 0,8 et une épaisseur de 6, ce qui rend la couche inférieure floue.
Épaisseur de couche Substrate
L'épaisseur de la couche de base est implicitement fixée à 0,01 cm.
Pour les surfaces opaques (surfaces qui ne sont pas transparentes), cette épaisseur n'est pas prise en compte.
Pour les surfaces translucides (surfaces à travers lesquelles on peut voir), il est possible d'utiliser le nœud Transmittance to MFP, dans lequel la transmission souhaitée est exprimée pour une épaisseur donnée.
Pour les surfaces minces (surfaces dont l'épaisseur est insuffisante pour être modélisées avec la géométrie), l'option Est une surface mince du matériau peut être activée. L'épaisseur de la couche de base est alors spécifiée sur le nœud racine.
Remplacement d'instance de matériau Substrate
Il est possible de remplacer certaines propriétés de matériau sur une instance de matériau (modèle d'ombrage, profil spéculaire, etc.). Ces remplacements présentent certaines limites :
Le remplacement Modèle d'ombrage n'est disponible que si le matériau contient uniquement des nœuds SubstrateShadingModel. Si le matériau contient des blocs, l'option de remplacement n'est pas disponible.
Le remplacement Profil spéculaire n'est disponible que si le bloc contient un profil spéculaire. Si un remplacement est fourni, tous les profils spéculaires des blocs (s'ils sont présents) sont remplacés.
Dispersion de sous-surface et milieux participants
Un bloc Substrate contient des milieux participants et peut être utilisé pour simuler diverses apparences volumétriques.
Par exemple, si vous rendez uniquement un matériau opaque, lorsqu'un bloc se trouve au bas de la topologie du matériau, il est pris en compte pour la dispersion de sous-surface. Vous devez tenir compte de deux facteurs :
Si un profil de sous-surface est attribué à un bloc dans le panneau Détails du matériau, le profil est utilisé par pixel. N'oubliez pas que les profils de sous-surface ne sont pas fusionnables.
Si aucun profil de sous-surface n'est attribué, la dispersion est déterminée par les propriétés Albédo diffus et MPF SSS du bloc. Ces propriétés sont fusionnables.
Le MFP (ou chemin libre moyen) de dispersion de sous-surface correspond à la distance (en centimètres) que différentes longueurs d'onde de la lumière parcourent à travers un milieu avant d'entrer en collision. Dans l'exemple ci-dessous, un albédo diffus (coloré en blanc) et un MFP SSS (coloré en rouge) sont définis sur des échelles de 0 à 1, de gauche à droite.
Tout bloc qui ne se trouve pas au bas d'un matériau opaque ou utilisé dans un matériau translucide est pris en compte pour une représentation volumétrique, qui repose également sur les attributs Albédo diffus et MFP SSS. L'attribut Albédo diffus représente la couleur de base du milieu, en tenant compte des dispersions uniques et des dispersions multiples.
L'attribut MFP SSS permet de contrôler la transmittance du milieu pour une vue perpendiculaire à une surface. Il représente la visibilité de la surface située en dessous. L'attribut Couleur diffuse représente la quantité de dispersion de lumière, qui respecte également la distance MFP.
Exemples d'un matériau dont la couleur de transmittance varie du noir au bleu de gauche à droite, et dont l'albédo diffus varie du noir au blanc de bas en haut.
La superposition verticale de blocs les uns sur les autres s'apparente à une opération de revêtement. La visibilité du bloc inférieur dépend de la transmittance du bloc supérieur. Il est possible de réduire la couverture du bloc supérieur (comme au bord d'une flaque d'eau sur une surface) pour le faire disparaître progressivement. Pour ce faire, vous pouvez utiliser un nœud d'opérateur Coverage Weight, comparable à la fusion alpha.
Exemples d'un matériau dont la transmittance varie du noir au bleu de gauche à droite, et dont la couverture varie de 0 à 1 de bas en haut.
Pour obtenir une transmittance ou une couleur de dispersion spécifique, vous devez utiliser le nœud d'assistance Substrate Transmittance-To-MeanFreePath. Le MFP est dérivé pour que la couleur de transmittance corresponde à une incidence normale, lorsque la surface est vue perpendiculairement, le long de la normale.
L'exemple ci-dessous montre une dispersion de sous-surface bleue sur un matériau opaque rose, où le MFP SSS est dérivé de la couleur de transmittance.
Recommandation de création :
Le chemin libre moyen (MFP) représente le même comportement de lumière pour les matériaux translucides ou opaques avec dispersion de sous-surface : le chemin moyen à l'intérieur d'un milieu avant que la lumière n'interagisse avec la matière, soit en étant absorbée, soit en étant dispersée. Il peut toutefois être intéressant de le créer différemment selon les cas d'utilisation.
Pour les surfaces translucides (optiquement fines et transparentes), il n'est pas recommandé de contrôler directement le MFP lorsque vous essayez d'obtenir une couleur de transmittance particulière, car le MFP n'est pas une couleur, mais une mesure du transport de la lumière. Il est plutôt recommandé d'utiliser le nœud Transmittance-To-MeanfreePath.
Pour les surfaces présentant une dispersion de sous-surface (optiquement épaisses, opaques), le MFP peut être créé directement. Dans ce cas, il représente approximativement la distance, en centimètres, sur laquelle la lumière se disperse pour chacun de ses composants.
Couverture et transmittance
La couverture définit la présence d'un matériau et peut être considérée comme un "masque" qui détermine où le matériau est présent et en quelle quantité.
0 indique qu'il n'y a pas de couverture (la couche n'est pas visible).
1 indique une couverture complète (la couche recouvre complètement la surface).
Il est possible de fusionner les matériaux en ajustant leur couverture. Dans Substrate, la couverture est contrôlée avec le nœud Coverage Weight.
La transmittance définit la manière dont la lumière interagit avec le matériau, à savoir la quantité de lumière qui passe à travers ce dernier.
0 indique qu'aucune lumière n'est transmise (le matériau est totalement opaque).
1 indique que la lumière est entièrement transmise (le matériau n'absorbe pas de lumière et vous pouvez voir à travers).
Dans Substrate, la transmittance est contrôlée par l'entrée MeanFreePath du bloc. Le chemin libre moyen (MFP) définit la distance moyenne à laquelle un rayon lumineux interagit avec la matière.
Un MFP de 0 signifie qu'un rayon lumineux touche toujours la matière et ne traverse pas le matériau. Cela équivaut à une transmittance de 0.
Un MFP infini indique qu'un rayon lumineux ne touche jamais la matière et que, par conséquent, il la traverse. Cela équivaut à une transmittance de 1.
Pour faire simple, un nœud Transmittance-To-MFP convertit une couleur de transmittance particulière obtenue à une profondeur donnée en un chemin libre moyen.
La couverture n'a qu'un impact en "niveaux de gris"·sur l'aspect du matériau (une partie plus ou moins importante du matériau sera visible). La transmittance, quant à elle, peut modifier la couleur de la lumière transmise en fonction de sa valeur MFP. Certaines couleurs sont absorbées tandis que d'autres sont transmises, créant ainsi une transmission colorée. Pour cela, le mode de fusion doit être défini sur TranslucentColoredTransmittance. Pour améliorer les performances, vous pouvez revenir à la transmission en gris avec TranslucentGreyTransmittance.
Translucidité et modes de fusion
Substrate offre des options plus robustes pour l'ombrage des surfaces translucides que les matériaux traditionnels non Substrate. La liste des modes de fusion Substrate est désormais plus claire lorsque l'on considère qu'une surface est constituée d'une matière (un bloc Substrate).
Pour créer un matériau translucide :
Choisissez un mode de fusion qui prend en charge la translucidité.
TranslucentColoredTransmittance
TranslucentGreyTransmittance
ColoredTransmittanceOnly
Après avoir sélectionné le nœud racine du matériau, utilisez le panneau Détails pour sélectionner un mode d'éclairage. Choisissez entre :
Forward shading de surface
Volume de translucidité de surface : cette option prend en charge les reflets sur la surface.
Volumétrique non directionnel : mode moins coûteux, mais qui ne réfléchit pas la lumière.
L'exemple ci-dessous illustre la configuration d'un matériau Substrate translucide. Son mode de fusion est défini sur TranslucentColoredTransmittance et il utilise le mode d'éclairage Forward shading de surface. Il utilise un seul bloc transmis à la broche Matériau avant du nœud racine du matériau pour produire un matériau translucide qui semble opaque.
L'utilisation de l'opérateur Pondération de la couverture de Substrate entre le bloc et l'entrée Matériau avant permet de contrôler la transmittance du matériau. Utilisez l'entrée Pondération du nœud Substrate Coverage Weight pour contrôler la transparence du matériau.
Vous pouvez utiliser une valeur constante comprise entre 0 et 1 pour contrôler l'opacité de l'ensemble du matériau (comme ci-dessus) ou utiliser une texture (comme ci-dessous) pour contrôler certaines parties du matériau.
Vous pouvez aller plus loin et créer un bloc de matière qui s'apparente à du verre coloré en spécifiant le MFP du milieu participant. Vous devez pour cela utiliser le nœud d'assistance Transmittance-To-MeanfreePath, comme dans l'exemple ci-dessous, qui utilise une couleur de transmittance orange reliée au MFP SSS pour que le matériau soit teinté en orange uniquement dans les zones où il transmet la lumière. La couleur de transmittance spécifiée correspond à la couleur "cible", qui est obtenue avec l'épaisseur indiquée (la valeur par défaut est 0,01 centimètre).
Remarques supplémentaires concernant la translucidité Substrate
Les matériaux translucides ne prennent pas en charge la dispersion de sous-surface dans l'espace écran, même si le bloc est considéré comme un volume de milieu participant.
Performances de Substrate
Vue d'ensemble des coûts en termes de performances :
Lorsque vous utilisez un seul nœud SubstrateShadingModel ou que vous utilisez les anciennes entrées, le coût global doit être similaire à celui de l'ancien modèle. Les passes de base, l'éclairage, les passes, etc., doivent avoir à peu près le même coût.
Lorsque vous utilisez un seul bloc avec plusieurs fonctionnalités, par exemple lorsque vous faites appel à plusieurs fonctionnalités en même temps, ou à des fonctionnalités avancées telles que les brillances, ou bien lorsque vous utilisez plusieurs blocs dans un même matériau, le coût d'image commence à augmenter.
Lorsque vous utilisez plusieurs blocs sans fusion des paramètres, le deuxième bloc est plus coûteux, et les blocs suivants augmentent le coût de manière quasi linéaire.
Substrate utilise une passe de classification de matériau après la passe de base pour permettre une exécution de la passe d'éclairage plus efficace. Ce processus entraîne un léger surcoût après la passe de base, mais contribue à réduire le coût global de l'éclairage. Vous pouvez utiliser le mode d'affichage de débogage pour comprendre le coût :
Le nombre de matériaux affiche le nombre de fermetures exécutées par pixel et détermine les éléments potentiellement coûteux.
La classification des matériaux révèle la complexité de l'éclairage au niveau des pixels/carrés.
Modes d'affichage de débogage de Substrate
Lorsque vous utilisez Substrate, il est utile de comprendre la façon dont ses matériaux se comportent et lesquels mériteraient davantage d'attention. Les modes d'affichage de débogage de Substrate se trouvent dans la liste déroulante Modes d'affichage sous la catégorie Substrate.
Substrate inclut les modes d'affichage de débogage suivants :
Cliquez sur les images dans le tableau pour les agrandir.
| Visualisation de débogage | Nom de la visualisation de débogage | Description |
|---|---|---|
Propriétés des matériaux | Visualisez les propriétés Substrate à l'aide du curseur de la souris. Placez le pointeur de la souris sur le pixel que vous souhaitez inspecter pour afficher les informations finales utilisées pour l'éclairage, telles que les propriétés, la pondération des couleurs, les fonctionnalités activées du matériau, les octets utilisés, etc. | |
Nombre de matériaux | Visualisez le nombre de matériaux Substrate par pixel et colorisez-les en fonction du nombre de nœuds BSDF Slab qu'ils utilisent. | |
Nombre d'octets de matériau | Visualisez l'empreinte des matériaux Substrate par pixel. Les matériaux sont codés par couleur selon le nombre d'octets qu'ils utilisent. Vous pouvez également placer le pointeur de la souris sur un matériau pour afficher les octets par pixel de ce matériau. | |
Infos de Substrate | Ce mode résume les informations relatives à l'utilisation de Substrate dans le projet, notamment des informations sur l'utilisation maximale de la mémoire, le nombre maximal d'octets par pixel (utile pour paramétrer des seuils de simplification) et les fonctionnalités de Substrate activées. | |
| Modes d'affichage avancés de Substrate | ||
Propriétés des matériaux avancés | Affiche des informations sur les différents blocs Substrate qui composent le matériau sur lequel vous avez placé le pointeur de la souris. Chaque bloc est représenté séparément à l'écran. Ce mode de visualisation doit être activé dans les paramètres du projet, sous la catégorie Moteur > Rendu, en cochant la case Shaders de visualisation avancés de Substrate. | |
Classification des matériaux | Ce mode affiche la complexité du matériau par carré et renvoie un résultat codé par couleur :
| |
Classification de réfraction rugueuse | Ce mode affiche les matériaux qui utilisent la propriété Réfraction rugueuse opaque. Ce mode distingue également les matériaux Substrate pour lesquels la dispersion est activée ou désactivée. Les carrés affichés dans certains de ces modes de visualisation sont utilisés pour exécuter ultérieurement des passes de post-éclairage optimisées. Celles-ci peuvent s'avérer utiles pour optimiser vos matériaux Substrate en réduisant le nombre de blocs utilisés et de fonctionnalités activées, et pour utiliser la fusion de paramètres sur les opérateurs. Si un matériau est composé de plusieurs matériaux mélangés et superposés en couches, mais qu'un seul bloc est visible (en raison d'un masquage dynamique ou d'une faible valeur de transmittance) pour un pixel donné, les blocs non visibles ne sont pas affichés (ou optimisés) dans la visualisation. |
Limitations et problèmes connus
Dans la mesure où Substrate est une fonctionnalité bêta, nous vous déconseillons de l'utiliser en mode de production.
Les tests sur les plateformes et la prise en charge de ces dernières sont incomplets. Davantage d'essais seront effectués à mesure que Substrate sera testé en mode de production.
Les fonctionnalités et l'expérience utilisateur sont susceptibles d'être modifiées, ce qui peut entraîner un comportement différent des ressources existantes ou leur invalidation totale.
Prise en charge bêta pour Path Tracer.
Certaines plateformes et certains chemins de rendu, tels que DirectX 11 (DX11) et Mac, présentent des problèmes et peuvent ne pas fonctionner correctement.
Lors de l'utilisation du tampon graphique adaptatif :
Le temps de préparation (durée de compilation des shaders) est supérieur à celui du format de tampon graphique fusionnable, même pour les matériaux simples. En effet, le tampon graphique adaptatif nécessite davantage de traitement et comporte des étapes de codage/décodage plus complexes.
Pour un même projet, les performances à l'exécution diminuent par rapport à la régression du tampon graphique fusionnable. Cela est principalement dû aux étapes de codage/décodage et à une évaluation plus complexe à l'exécution.
Ressources supplémentaires
The State of Unreal Livestream — Timestamp: 02:29:42
Le projet type Exemples de contenu comprend un niveau nommé "SubstrateMaterials" qui vous permet de découvrir des exemples et démonstrations sur le fonctionnement des matériaux Substrate.
Pour utiliser Substrate avec le projet Exemples de contenu, vous devez activer Substrate pour le projet. Seule cette carte a été validée pour une utilisation avec la fonctionnalité Substrate activée. Si vous utilisez une seule instance du projet Exemples de contenu, nous vous recommandons d'activer Substrate uniquement pour ce niveau et de le désactiver chaque fois que vous utilisez le reste du projet.