Dernières actualités
Guide pour importer et mettre à jour du contenu Datasmith dans Unreal EngineGround of Descent : un centre artistique souterrain à BurgasCréer un effet Fresnel réutilisable avec une Material Function dans Unreal EngineConversion de mesh et de volume dans Blender : voxels et résolutionPréparer un dessin architectural avec Make2D dans Rhino 8 et l’exporter en PDFSubstance 3D Painter 12.2 est disponible : peinture du cage et outils de sélection repensésCréer des courbes de coupe avec Contour et Section dans Rhino 8Extension du Bass Museum : Johnston Marklee conçoit des galeries surélevéesGuide du modèle de terrain Vectorworks 2025 : courbes, textures et végétationMistral et NVIDIA relient l’IA physique aux simulations d’ingénierie
TutorielsUnreal Engine

Créer un effet Fresnel réutilisable avec une Material Function dans Unreal Engine

Dans ce guide, nous créons un effet Fresnel réglable à l’aide des Material Functions d’Unreal Engine, puis apprenons à le réutiliser dans plusieurs matériaux et à le publier dans la bibliothèque.

De doux accents lumineux soulignent les arêtes des surfaces dans un intérieur contemporainImage IA
Image d’illustration générée par IA.Image : 3dsınıfı / FCA AI

En bref

  1. Une Material Function transforme un réseau de nœuds de matériau en ressource distincte et réutilisable.
  2. L’exemple de fonction Fresnel contrôle l’effet dépendant de l’angle au moyen de paramètres d’exposant et d’intensité.
  3. Les nœuds Function Input et Function Output permettent respectivement à la fonction de recevoir des données et de renvoyer un résultat.
  4. Les modifications apportées à une Material Function existante peuvent affecter les matériaux qui l’utilisent.

Ce que vous apprendrez dans ce guide

Dans Unreal Engine, au lieu de reconstruire le même réseau de nœuds dans différents matériaux, vous pouvez le regrouper dans une Material Function. Une section complexe devient ainsi un simple appel de fonction que l’on peut ajouter à d’autres matériaux. En suivant l’exemple Fresnel d’Epic Games, nous allons créer un effet qui accentue les bords et dont l’intensité et la courbe de décroissance sont réglables.

Les effets de type Fresnel peuvent servir à mettre en valeur les bords d’une surface en fonction de l’angle de vue et à rendre une silhouette plus visible dans l’obscurité. Cette méthode ne simule pas physiquement l’éclairage : elle ajoute une information visuelle au matériau. L’objectif principal est d’intégrer le calcul dans la fonction afin que l’utilisateur n’ait accès qu’aux paramètres nécessaires.

Prérequis

Le tutoriel Fresnel étape par étape des sources a été conçu pour Unreal Engine 4 et figure sur une page de documentation correspondant à la version 4.27. Les noms des menus et l’interface de l’exemple sont donc présentés selon ce guide. Les sources ne précisent aucune exigence de création de compte, configuration matérielle ou tarif du produit.

Pour suivre ce flux de travail, il faut utiliser le Content Browser et le Material Editor, et créer une Material Function ainsi qu’un Material. Les nœuds utilisés dans l’exemple sont : Constant 3 Vector, Transform, Camera Vector WS, Dot Product, Clamp, OneMinus, Power et Multiply. Nous utiliserons deux nœuds Function Input pour rendre la fonction réglable, ainsi qu’un Function Output pour renvoyer le résultat.

Créer une Material Function Fresnel étape par étape

  1. Créez la ressource de fonction. Dans le Content Browser, faites un clic droit et choisissez New > Materials & Textures > Material Function. Donnez à la fonction un nom qui décrit son rôle. Custom_Fresnel, utilisé dans l’exemple, indique clairement ce que fait la fonction.

  2. Construisez la première partie du calcul de l’angle. Ouvrez la Material Function et ajoutez au graphe les nœuds Constant 3 Vector, Transform, Camera Vector WS et Dot Product. Réglez le canal bleu du nœud Constant 3 Vector sur 1,0. Reliez sa sortie à l’entrée du nœud Transform et configurez celui-ci pour convertir Tangent Space en World Space. Reliez la sortie de Transform à l’entrée A de Dot Product, et la sortie de Camera Vector WS à l’entrée B. Ce calcul exploite la relation entre l’orientation de la surface et celle de la caméra.

  3. Limitez le résultat et extrayez l’effet de bord. Reliez la sortie de Dot Product au nœud Clamp et limitez la valeur à l’intervalle 0–1. Reliez ensuite la sortie de Clamp à OneMinus. Cette opération inverse la valeur transmise à l’étape suivante et aide, dans cet exemple, à accentuer l’effet sur les bords.

  4. Définissez les paramètres d’entrée de la fonction. Ajoutez deux nœuds Function Input. Nommez-les Fresnel Exponent et Fresnel Intensity ; leurs champs de description peuvent préciser à l’utilisateur le rôle de chaque entrée. Réglez le type des deux entrées sur Scalar. Les nœuds Function Input permettent à la fonction de recevoir des valeurs de l’extérieur, qui pourront ensuite être reliées dans le matériau utilisant la fonction.

  5. Reliez le contrôle de l’exposant et l’intensité. Ajoutez un nœud Power et un nœud Multiply. Reliez la sortie de OneMinus à l’entrée Base de Power et l’entrée Fresnel Exponent à son entrée Exp. Reliez la sortie de Power à l’entrée A de Multiply et l’entrée Fresnel Intensity à son entrée B. L’exposant contrôle ainsi la répartition de l’effet de bord, tandis que la valeur d’intensité en règle le niveau.

  6. Définissez la sortie et compilez. Reliez la sortie du nœud Multiply au nœud Function Output. Cliquez ensuite sur Apply dans la barre d’outils pour compiler la Material Function. Selon le guide source, le bouton Apply devient inactif lorsque la compilation réussit. En cas d’erreur, vérifiez d’abord les connexions et les types d’entrée.

  7. Testez la fonction dans un matériau. Créez un nouveau Material dans le Content Browser, ouvrez-le et ajoutez la fonction Custom_Fresnel au graphe. Comme dans l’exemple, vous pouvez relier un nœud Constant 3 Vector à Base Color et utiliser le rouge : R 1,0 ; G 0 ; B 0. Utilisez quatre nœuds Scalar Parameter pour les autres réglages, en plus de la couleur de base de l’exemple. Réglez Metallic sur 1,0, Roughness sur 0,5, Fresnel Intensity sur 1,0 et Fresnel Exponent sur 5,0. Reliez la sortie de la fonction à l’entrée Emissive Color du matériau, puis compilez-le. Ces valeurs sont les réglages initiaux de l’exemple ; vous pouvez les modifier pour obtenir différents résultats visuels.

  8. Publiez éventuellement la fonction dans la bibliothèque. Cliquez dans une zone vide du graphe Material Function pour désélectionner les nœuds ; les propriétés de base de la fonction s’affichent alors dans le panneau Details. Activez l’option Expose to Library, ajoutez une description et choisissez les catégories appropriées. La fonction pourra ainsi apparaître dans la Material Function Library du Material Editor. Il peut être nécessaire de redémarrer l’éditeur pour qu’une nouvelle fonction s’affiche.

Erreurs fréquentes

Commencez par vérifier les connexions d’entrée et de sortie : les valeurs doivent être reçues par les nœuds Function Input, et le résultat du calcul doit être transmis à l’extérieur par Function Output. Les données reliées à l’appel de fonction doivent être compatibles avec le type attendu ; par exemple, connecter un type inadapté à une entrée Scalar peut entraîner une erreur de compilation. Pour examiner un résultat intermédiaire, faites un clic droit sur un nœud et choisissez Start Previewing Node afin de prévisualiser le graphe jusqu’à ce point.

Un autre risque consiste à modifier sans précaution une fonction déjà utilisée dans le projet. Supprimer un nœud Function Input peut faire disparaître l’entrée correspondante dans les matériaux qui utilisent cette fonction. Une erreur dans la fonction ou la suppression de son comportement existant peut également affecter la compilation ou le fonctionnement correct des matériaux associés. Avant de modifier une fonction publiée, il est donc préférable de vérifier quels matériaux l’utilisent et de tester le changement sur un matériau d’exemple.

Quels avantages pour les flux de travail en architecture et en visualisation ?

En visualisation architecturale, si des effets de surface similaires sont réutilisés dans différents matériaux, regrouper le réseau de nœuds commun dans une Material Function peut simplifier l’organisation et la maintenance. Modifier le calcul partagé dans la fonction réduit le besoin de mettre à jour individuellement de nombreux graphes copiés. L’accentuation des bords peut servir aux essais visuels, notamment pour rendre la silhouette d’un modèle plus lisible. Les sources ne fournissent toutefois aucune information sur les performances en rendu architectural, les exigences matérielles ou la compatibilité avec différentes versions d’Unreal Engine. Les agences doivent d’abord effectuer des tests avec la version et la structure de matériaux qu’elles utilisent, puis intégrer progressivement les fonctions partagées.

Étapes suivantes

Pour commencer, modifiez les valeurs Intensity et Exponent afin d’observer leurs effets sur la surface ; ajoutez ensuite la même fonction à plusieurs matériaux pour voir comment son utilisation commune facilite la maintenance. Donner aux fonctions partagées par l’équipe un nom explicite, des descriptions pour les entrées et une courte description dans la bibliothèque aidera à retrouver la bonne fonction. Lorsque vous convertissez d’autres graphes de matériaux en fonctions, veillez également à rendre les entrées et les sorties explicites : le réseau de nœuds intégré à la fonction doit s’utiliser à l’aide d’une interface compréhensible de l’extérieur.

Sources et licence

Ce tutoriel est une adaptation en turc fondée sur les informations de la documentation d’Epic Games : Material Functions Overview, Making Material Functions et Creating Material Functions. Les pages sources sont proposées sous une licence libre ; le flux de travail Fresnel présenté s’appuie sur la documentation d’Unreal Engine 4.27.

Sources

3 sources
D
dev.epicgames.comdev.epicgames.com/documentation/unreal-engine/unreal-engine-material-functions-overview
Résumé
D
dev.epicgames.comdev.epicgames.com/documentation/unreal-engine/making-material-functions
Résumé
D
dev.epicgames.comdev.epicgames.com/documentation/unreal-engine/creating-material-functions
Résumé

Les textes sources ne sont pas republiés ; les courtes citations sont signalées, le reste est notre propre résumé et commentaire.

L’avis de 3dsınıfı
3dL’analyse de la rédaction

Pour les agences d’architecture et les équipes de visualisation, le principal avantage de cette méthode est de regrouper les nœuds de matériau récurrents au même endroit et de rendre les modifications plus faciles à gérer. L’accentuation des bords peut également être testée rapidement pour rendre une silhouette plus visible ; elle ne doit toutefois pas être considérée comme un substitut à l’éclairage physique.

Avant de passer à la mise en œuvre, il est important de tester l’exemple dans la version d’Unreal Engine utilisée et de vérifier ses effets sur les matériaux existants. Les sources ne précisent ni les tarifs, ni les conditions de licence, ni les exigences matérielles ; il ne faut donc pas présumer d’un avantage en matière de coût ou de performances. Pour les étudiants, commencer par un petit matériau de test est un moyen pratique de comprendre le fonctionnement des fonctions.

Questions fréquentes

À quoi sert une Material Function dans Unreal Engine ?

Elle permet d’enregistrer un réseau de nœuds de matériau dans une ressource distincte, puis de le réutiliser dans d’autres matériaux. Un réseau complexe peut être utilisé sous la forme d’un seul appel de fonction dans le graphe de matériau.

Quelles valeurs peut-on régler dans une Material Function Fresnel ?

Dans cet exemple, Fresnel Exponent contrôle la répartition de l’effet et Fresnel Intensity en règle l’intensité. Les valeurs initiales de l’exemple dans le matériau sont respectivement 5,0 et 1,0.

Comment faire apparaître une Material Function dans la bibliothèque ?

Il faut activer l’option Expose to Library dans les propriétés de base de la fonction et définir ses catégories. Il peut être nécessaire de redémarrer l’éditeur pour que la nouvelle fonction apparaisse dans la liste.

Les commentaires et le forum sont en turc.Rejoindre la discussion
+

À lire aussi