Les textures de rendu basé sur la physique (PBR) vous permettent de représenter un ombrage et un éclairage réalistes en utilisant plusieurs types d'images de texture, ou cartes, sur un seul objet. La combinaison de plusieurs cartes de textures peut simuler plus précisément la couleur, la rugosité et la réflectivité dans n'importe quel environnement d'éclairage et peut améliorer les éléments visuels de vos actifs et de votre environnement.


Diverses applications et flux de travail sont disponibles pour créer des textures PBR. Vous pouvez les utiliser lors des phases de modélisation et de texturation de la création d'objets 3D personnalisés, à condition que Roblox Studio prenne en charge les cartes de textures spécifiques que vous utilisez.
Ce guide fournit des instructions sur la configuration de vos objets maillés pour utiliser des cartes de textures PBR et décrit des cas d'utilisation courants et des meilleures pratiques pour les cartes de textures PBR prises en charge par Roblox. Lorsque vous créez vos propres surfaces, consultez les références de matériaux pour des valeurs de matériaux courantes, des comparaisons d'images et des exemples de vêtements.
Activer l'apparence de surface
Vous pouvez ajouter des textures PBR à n'importe quel MeshPart en ajoutant un objet SurfaceAppearance qui écrase la texture assignée d'origine. En général, vous ne pouvez pas modifier les propriétés de SurfaceAppearance par des scripts pendant un jeu car le moteur nécessite un prétraitement pour afficher ces graphiques. Comme pour l'ajout d'une texture de base, chaque carte d'image de texture doit pointer vers l'ID d'actif d'image téléchargé approprié.
Pour activer l'apparence de surface pour un MeshPart :
Dans la fenêtre Explorer, survolez le MeshPart et cliquez sur le bouton ⊕.
Insérez un SurfaceAppearance à partir du menu contextuel.

Lorsque vous êtes prêt à ajouter des cartes de textures à l'objet SurfaceAppearance, vous pouvez cliquer sur chaque propriété de carte dans la fenêtre Propriétés et entrer un ID d'actif.
Cartes de textures
Studio prend actuellement en charge 5 types de cartes de textures PBR : couleur, normale, rugosité, métallique et émissif. Chacune de ces cartes correspond à un aspect important de l'apparence de surface de l'objet. Les cartes de textures ne changent que l'apparence visuelle et n'affectent pas la géométrie de l'objet MeshPart.
Consultez les exemples suivants pour un aperçu des cartes de textures prises en charge par Roblox et des ressources supplémentaires :
La propriété ColorMap définit les données de couleur de la surface, y compris toute transparence présente dans la carte. Voir couleur (albédo) pour des informations supplémentaires.



Couleur (albédo)
La carte de couleur, ou albédo, détermine la couleur de votre texture et se compose principalement d'informations de couleur avec peu ou pas d'informations d'éclairage ou de texture. Pour une personnalisation supplémentaire, vous pouvez également ajouter de la transparence dans votre texture albédo en ajoutant de l'opacité à votre carte d'image.
Modes alpha
Pour les objets qui nécessitent des sections partielles ou complètes de transparence, comme l'herbe, les feuilles, la dentelle ou les décalcomanies comme la saleté ou le grunge, vous pouvez utiliser divers modes alpha pour appliquer la transparence à votre carte de couleur. Si le format d'image de votre carte de couleur prend en charge les canaux alpha, vous pouvez appliquer une carte alpha en niveaux de gris où 0.0 est transparent et 1.0 est opaque. De même, lorsque vous utilisez un format d'image tel qu'un .png, toute opacité sur la carte de couleur s'applique comme transparence sur l'actif.
Vous pouvez appliquer la transparence de deux manières différentes en définissant les valeurs suivantes de AlphaMode :
- Overlay — Superpose la ColorMap sur la couleur de MeshPart.Color sous-jacente. Les cartes de couleur utilisant le mode overlay révèlent la couleur de base du maillage partout où la transparence est présente. C'est le paramètre par défaut.
- Transparence — Supprime le maillage visible en fonction de la transparence dans le ColorMap. Cela rend le maillage transparent et ne révèle pas la couleur d'origine du maillage chaque fois que la transparence est présente.
Opaque
Vous pouvez utiliser le mode Enum.AlphaMode.Opaque pour ignorer complètement le canal alpha de la ColorMap. Dans ce cas, la valeur alpha est supposée être 1 (entièrement opaque).
L'exemple suivant démontre comment fonctionne le mode Opaque en utilisant un objet bleu comme référence :
Overlay
Vous pouvez utiliser Enum.AlphaMode.Overlay pour révéler des sections de la couleur d'origine du maillage. Étant donné que les zones transparentes de la carte de couleur exposent la couleur sous-jacente, vous pouvez concevoir une carte de texture unique qui révèle partiellement ou complètement la propriété Color du maillage pour des teintes de peau personnalisées ou d'autres situations avec des couleurs uniques.
L'exemple suivant démontre comment fonctionne le mode Overlay en utilisant une sphère bleu clair comme référence :
L'exemple suivant utilise le mode Overlay pour des personnages personnalisés, révélant le teint d'origine du personnage :


Voir teinte de peau personnalisée pour des détails supplémentaires sur l'optimisation d'un overlay pour la peau et des applications similaires.
Transparence
Vous pouvez utiliser le mode Enum.AlphaMode.Transparency pour créer des objets complexes ou extrêmement fins, tels que de la dentelle ou du filet, en supprimant des parties visibles du maillage comme alternative à la sculpture de la géométrie du maillage. Comme cela n'affecte pas la géométrie de l'objet maillé, cela vous permet de créer des objets détaillés sans l'impact sur les performances d'un modèle de maillage complexe.
L'exemple suivant démontre comment une transparence partielle et complète dans ce mode supprime visuellement des sections du maillage :



Il y a deux résultats du mode Transparency, selon que le MeshPart.Transparency est défini sur 0 ou au moins 0.02, bien que la précision numérique puisse entraîner de petites valeurs telles que 0.01 déclenchant la transparence opaque.
- Lorsque l'alpha est utilisé pour découper la forme d'objets principalement opaques avec des bords nets tels que le feuillage, le tissu en dentelle et le filet, définissez le MeshPart.Transparency sur 0. Lorsque des parties de la surface sont entièrement opaques, le moteur Roblox peut les rendre avec une occlusion basée sur la profondeur appropriée. Les surfaces opaques fonctionnent également généralement mieux avec des effets basés sur la profondeur comme DepthOfFieldEffect, la réfraction du verre et de l'eau, et la réflexion de l'eau.
- Lorsque l'alpha est utilisé pour ajouter des détails à des objets semi-transparents ou à des objets avec des dégradés de transparence lisses, définissez le MeshPart.Transparency sur au moins 0.02. Cela améliore la qualité du mélange pour des objets tels que des fenêtres sales et des plumes à bords doux, mais cela ne fonctionnera pas avec tous les effets.
Masque de teinte
Vous pouvez utiliser le mode Enum.AlphaMode.TintMask pour appliquer un teint SurfaceAppearance.Color à des zones sélectives d'une surface. Le teint est le plus fort là où le canal alpha est entièrement visible et n'est pas appliqué là où le canal alpha est transparent.

Teinte de couleur
Vous pouvez appliquer une teinte à votre carte de couleur en modifiant la propriété SurfaceAppearance.Color. La teinte n'affecte pas les performances et vous pouvez économiser de la mémoire en réutilisant une seule carte de couleur avec différentes teintes. Utilisez la teinte de couleur pour créer des variations supplémentaires à faible coût entre vos textures PBR MeshPart ou pour modifier de manière programmatique les couleurs de surface PBR en temps réel.



Le teint SurfaceAppearance.Color s'applique comme un multiplicateur, donc l'apparence finale est une fonction de Color3 (couleur texel) multipliée par SurfaceAppearance.Color. Cela signifie que la création de votre SurfaceAppearance.ColorMap d'origine dans des couleurs en niveaux de gris proches du blanc crée l'effet de teinte le plus fort lorsque cette propriété est appliquée.
La teinte ne s'applique qu'à la SurfaceAppearance.ColorMap et non à la MeshPart.Color. Vous pouvez continuer à utiliser des canaux alpha lors de l'application de transparence.
Lorsque SurfaceAppearance.AlphaMode est défini sur Overlay et qu'un canal alpha est présent, la couleur sous-jacente MeshPart.Color est révélée et la teinte SurfaceAppearance.Color ne s'applique qu'à la carte de couleur SurfaceAppearance visible.
Lorsque SurfaceAppearance.AlphaMode est défini sur TintMask et qu'un canal alpha est présent, le canal alpha contrôle la quantité de teinte SurfaceAppearance.Color. La teinte est la plus forte là où le canal alpha est entièrement visible et n'est pas appliquée là où le canal alpha est transparent.

Normale
La carte normale, ou surface, ajoute de la profondeur à votre surface et se comporte de manière similaire à une carte de hauteur. En conséquence, l'effet peut s'estomper ou s'intensifier en fonction de l'angle de vue et de l'environnement d'éclairage.
Dans la figure suivante, vous pouvez basculer entre la référence de maillage et la référence de carte pour comparer les valeurs de la carte normale :



Les canaux R, G et B de l'image correspondent respectivement aux composants X, Y et Z du vecteur de surface local. Une image uniforme de couleur [127, 127, 255] se traduit par une carte normale complètement plate. Roblox ne prend en charge que les cartes normales au format OpenGL - Espace Tangent.
Les cartes normales affectent de manière significative la surface visuelle d'un maillage et peuvent accentuer des coutures gênantes dans votre texture. Chaque fois que cela est possible, gardez vos coutures de texture cachées pour éviter des problèmes visuels avec votre maillage.
Rugosité
Les cartes de rugosité, ou microsurface, déterminent comment la lumière est dispersée sur la surface de votre modèle. Lorsque la rugosité est à 0 %, la surface ne disperse pas du tout la lumière, ce qui entraîne un reflet et une brillance beaucoup plus nets et lumineux sur votre matériau. À 100 %, la lumière et les réflexions se dispersent uniformément sur le modèle, ce qui donne une surface mate moins réfléchissante.
La figure suivante montre des comparaisons de diverses valeurs de cartes de rugosité :



La rugosité peut avoir un impact sur la réflexion d'un objet à différents angles, appelé effet Fresnel. Le traitement fresnel de Studio vise une précision physique du monde réel, bien que vous puissiez obtenir une contribution spéculaire inattendue à certains angles même avec des surfaces rugueuses. Dans certains cas, vous pouvez compenser en augmentant la valeur de votre carte de rugosité d'environ 0.1 de plus rugueux pour obtenir une réponse d'éclairage cohérente avec vos matériaux.
Bien que Roblox rende cet effet d'éclairage avec précision, la luminosité et la réflectivité d'une surface peuvent ne pas répondre de manière cohérente entre votre logiciel de création de contenu de texture, tel que Substance Painter, et Studio. Consultez exemples de vêtements pour les différences de rendu entre les applications.
Métallique
La métallisation détermine la réflectivité d'une surface. Dans la plupart des cas, vous devez définir cette valeur à 0 % (non métallique) ou 100 % (métallique), bien que vous puissiez utiliser des valeurs de métallisation partielles lors de la création de surfaces avec des propriétés réfléchissantes modérées comme le satin ou la soie. Cette pratique peut subtilement simuler les réflexions dans le matériau pour mettre en valeur la couleur de la carte de couleur/albédo par rapport aux couleurs réfléchies dans l'environnement.
Consultez la figure suivante pour des comparaisons de diverses valeurs de cartes de métallisation :



Différents moteurs de rendu PBR utilisent divers flux de travail pour traiter la réflectivité. Studio utilise uniquement le flux de travail de métallisation qui détermine si un matériau est un non-métal ou un métal, parfois appelé isolant ou conducteur.
Masque émissif
Une texture de contenu en niveaux de gris EmissiveMaskContent applique un masque émissif sur la surface. Cela vous permet d'utiliser une texture pour contrôler l'émissivité pour un contrôle artistique plus précis que le matériau Neon tout ou rien et vous permet de créer des effets lumineux détaillés comme du texte illuminé, une armure futuriste ou des créatures bioluminescentes.
La propriété associée EmissiveTint détermine la couleur de teinte pour la contribution émissive, et EmissiveStrength détermine la force de la contribution émissive.







