Rendu Physiquement Basé (PBR) les textures vous permettent de représenter un ombrage et un éclairage réalistes en utilisant plusieurs types d'images de textures, 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éflexivité 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 texturisation 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 les cartes de textures PBR et décrit les cas d'utilisation courants et les 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 les valeurs de matériaux courants, les 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 scripts pendant un jeu car le moteur nécessite un prétraitement pour afficher ces graphismes. De même que l'ajout d'une texture basique, chaque carte d'image de texture doit pointer vers l'ID d'actif d'image téléchargée approprié.
Pour activer l'apparence de surface pour un MeshPart :
Dans la fenêtre Explorateur, passez la souris sur 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 modifient 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 consiste principalement en des informations de couleur avec peu ou pas d'informations d'éclairage ou de texture. Pour une personnalisation supplémentaire, vous pouvez également ajouter transparence dans votre texture d'albédo en ajoutant de l'opacité à votre carte d'image.
Modes alpha
Pour les objets nécessitant des sections partielles ou complètes de transparence, comme de l'herbe, des feuilles, de la dentelle ou des décalcomanies comme la saleté ou le grunge, vous pouvez utiliser divers modes alpha pour appliquer de la transparence à votre carte de couleur. Si le format de votre image de 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, lors de l'utilisation d'un format d'image comme un .png, toute opacité sur la carte de couleur s'applique comme transparence sur l'actif.
Vous pouvez appliquer la transparence avec deux comportements différents en définissant les valeurs suivantes pour AlphaMode :
- Superposition — Superpose la ColorMap sur la MeshPart.Color sous-jacente. Les cartes de couleurs utilisant le mode superposition 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 originale 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 le mode Opaque fonctionne en utilisant un objet bleu comme référence :
Superposition
Vous pouvez utiliser Enum.AlphaMode.Overlay pour révéler des sections de la couleur originale du maillage. Comme 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 de maillage pour des teintes de peau personnalisées ou d'autres situations avec des couleurs uniques.
L'exemple suivant démontre comment le mode Overlay fonctionne 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 ton de peau original du personnage :


Voir teinte de peau personnalisée pour des détails supplémentaires sur l'optimisation d'une superposition 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 en alternative à la sculpture de la géométrie du maillage. Comme cela n'affecte pas la géométrie de l'objet maillé, cela peut vous permettre de créer des objets détaillés sans l'impact sur la performance d'un modèle de maillage complexe.
L'exemple suivant démontre comment une transparence partielle et totale dans ce mode supprime visuellement des sections du maillage :



Il y a deux résultats du mode Transparency, selon que la MeshPart.Transparency est réglée sur 0 ou au moins 0.02, bien que la précision numérique puisse entraîner des petites valeurs comme 0.01 déclenchant une transparence opaque.
- Lorsque l'alpha est utilisé pour découper la forme d'objets principalement opaques avec des bords nets comme le feuillage, le tissu en dentelle, et le filet, réglez la MeshPart.Transparency sur 0. Lorsque des parties de la surface sont complètement opaques, le moteur Roblox peut les rendre avec une occlusion appropriée basée sur la profondeur. Les surfaces opaques fonctionnent également généralement mieux avec des effets basés sur la profondeur tels que DepthOfFieldEffect, la réfraction du verre et de l'eau, et la réflexion de l'eau.
- Lorsque l'alpha est utilisé pour ajouter du détail à des objets semi-transparents ou des objets avec des dégradés de transparence lisses, réglez la 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 aux 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 éclairage SurfaceAppearance.Color à des zones sélectives d'une surface. Le teintage est plus fort là où le canal alpha est complètement visible et n'est pas appliqué là où le canal alpha est transparent.

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



Le teintage SurfaceAppearance.Color s'applique comme un multiplicateur, donc l'apparence finale est une fonction de Color3 (couleur de texel) multipliée par SurfaceAppearance.Color. Cela signifie que créer votre original SurfaceAppearance.ColorMap dans des couleurs grises proches du blanc crée l'effet de teinture le plus fort lorsque cette propriété est appliquée.
Le teintage s'applique uniquement à 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 réglé sur Overlay et qu'un canal alpha est présent, la MeshPart.Color sous-jacente est révélée et le teintage SurfaceAppearance.Color ne s'applique qu'à la carte couleur SurfaceAppearance visible.
Lorsque SurfaceAppearance.AlphaMode est réglé sur TintMask et qu'un canal alpha est présent, le canal alpha contrôle la quantité de teinture SurfaceAppearance.Color. La teinte est plus forte là où le canal alpha est entièrement visible et n'est pas appliqué là où le canal alpha est transparent.

Normale
La carte de normale, ou surface, ajoute de la profondeur à la texture de votre surface et se comporte de manière similaire à une carte de hauteur. Par conséquent, l'effet peut s'estomper ou s'intensifier en fonction de l'angle de vision 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 - Tangent Space.
Les cartes normales affectent de manière significative la surface visuelle d'un maillage et peuvent accentuer des coutures inesthétiques dans votre texture. Chaque fois que cela est possible, gardez les 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 diffusé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 donne une réflexion et une brillance de votre matériau beaucoup plus nettes et lumineuses. À 100%, la lumière et les réflexions se dispersent uniformément sur le modèle, donnant une surface mate et 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 qu'un objet a à différents angles, appelé l'effet Fresnel. Le traitement fresnel de Studio vise une précision physique d'un 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é de 0.1 de plus rugueuse 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éflexivité d'une surface peuvent ne pas répondre de manière cohérente entre votre logiciel de contenu texture, tel que Substance Painter, et Studio. Consultez les exemples de vêtements pour des différences de rendu entre des applications.
Métallisme
Le métallisme détermine la réflexivité d'une surface. Dans la plupart des cas, vous devriez régler cette valeur sur soit 0% (non métallique) ou 100% (métallique), bien que vous puissiez utiliser des valeurs de métallisme partielles lorsque vous créez des surfaces avec des propriétés réfléchissantes modérées comme le satin ou la soie. Cette pratique peut subtilement tromper 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.
Voir la figure suivante pour des comparaisons de diverses valeurs de cartes de métallisme :



Différents moteurs de rendu PBR utilisent divers flux de travail pour traiter la réflexivité. Studio n'utilise que le flux de travail de métallisme qui détermine si un matériau est non-métallique ou métallique, 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 tels que 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.







