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


Différentes applications et workflows sont disponibles pour créer des textures PBR. Vous pouvez les utiliser pendant les 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 des cartes de textures PBR, et décrit les cas d'utilisation courants ainsi que 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 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 remplace 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. De même que pour ajouter une texture de base, chaque 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 dans le 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 4 types de cartes de textures PBR : couleur, normale, rugosité et métallé. Chacune de ces cartes correspond à un aspect important de l'apparence de surface de l'objet. Les cartes de textures n'impactent que l'apparence visuelle et n'affectent pas la géométrie de l'objet MeshPart.
Voyez 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 couleur, ou albédo, détermine la couleur de votre texture et est principalement constituée 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 des objets qui nécessitent des sections partielles ou complètes de transparence, comme l'herbe, les feuilles, 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 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 appliquée comme transparence sur l'actif.
Vous pouvez appliquer de la transparence de deux manières différentes en définissant les valeurs suivantes AlphaMode :
- Overlay — Superpose la ColorMap sur la MeshPart.Color sous-jacente. Les cartes de couleur utilisant le mode superposé 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 lorsque 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 (complètement opaque).
L'exemple suivant démontre comment fonctionne le mode Opaque en utilisant un objet blanc comme référence :


Overlay
Vous pouvez utiliser Enum.AlphaMode.Overlay pour révéler des sections de la couleur d'origine du maillage. Puisque 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 totalement 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 blanche 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'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, comme de la dentelle ou du filet, en supprimant les parties visibles du maillage comme une alternative à la sculpture de la géométrie du maillage. Puisque 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 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 soit réglée 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 majoritairement opaques avec des bords nets tels que le feuillage, le tissu en dentelle et le filet, réglez la MeshPart.Transparency à 0. Lorsque des parties de la surface sont complètement 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 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 des détails à 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 à bords doux, mais cela ne fonctionnera pas avec tous les effets.
TintMask
Vous pouvez utiliser le mode Enum.AlphaMode.TintMask pour appliquer un teint de SurfaceAppearance.Color à des zones sélectives d'une surface. Le teint est plus fort là où le canal alpha est complètement 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 la performance et vous pouvez économiser de la mémoire en réutilisant une seule carte de couleur avec différentes teintes. Utilisez la teinte pour créer des variations supplémentaires à faible coût entre vos textures PBR MeshPart ou pour modifier programmaticalement les couleurs de surface PBR en temps réel.



La teinte SurfaceAppearance.Color s'applique comme un multiplicateur, de sorte que 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 proche du blanc crée l'effet de teinte le plus fort lorsque cette propriété est appliquée.
La teinte s'applique uniquement à la SurfaceAppearance.ColorMap et non à la MeshPart.Color. Vous pouvez continuer à utiliser des canaux alpha lorsque vous appliquez 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 la teinte SurfaceAppearance.Color ne s'applique qu'à la carte de 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 teinte SurfaceAppearance.Color. La teinte est plus forte là où le canal alpha est complètement visible et n'est pas appliquée là où le canal alpha est transparent.

Normale
La carte de normale, ou surface, ajoute de la profondeur de texture à votre surface et se comporte de manière similaire à une carte de hauteur. En conséquence, l'effet peut s'atténuer ou s'intensifier selon l'angle de vision et l'environnement lumineux. Lorsqu'une carte normale n'est pas présente, la valeur est définie à 0.0.
Dans la figure suivante, vous pouvez passer entre la référence du maillage et la référence de la carte pour comparer les valeurs de 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] traduit à 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 marquée la surface visuelle d'un maillage et peuvent accentuer les coutures inconfortables dans votre texture. Chaque fois que c'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.0, la surface ne disperse pas du tout la lumière, ce qui entraîne une réflexion et une brillance beaucoup plus aiguës sur votre matériau. À 1.0, 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 rugosité peut impacter la réflexion d'un objet à différents angles, ce qui est appelé l'effet Fresnel. Voir fresnel pour plus de détails et de meilleures pratiques afin de maintenir un comportement réfléchi cohérent.
La figure suivante montre des comparaisons de diverses valeurs de carte de rugosité :



Fresnel
Fresnel fait référence à la quantité de réflexion d'une surface par rapport à l'angle de vue actuel. Le traitement Fresnel de Studio vise une précision physique réaliste, 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 rendant votre carte de rugosité autour de 0.1 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é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. Voir exemples de vêtements pour des différences dans le rendu entre les applications.
Métallé
Métallé détermine la réflectivité d'une surface. Les valeurs de métallé varient entre 0.0 et 1.0. Roblox définit la valeur par défaut à 0.0 si une carte de métallé n'est pas présente.
Voir la figure suivante pour des comparaisons de diverses valeurs de carte de métallé :



Différents moteurs PBR utilisent divers workflows pour le traitement de la réflectivité. Studio n'utilise que le workflow de métallé qui détermine si un matériau est un non-métal ou un métal, parfois appelé isolant ou conducteur.
Dans la plupart des cas, vous devez régler cette valeur à 0.0 (non métallique) ou à 1.0 (métallique). Vous pouvez utiliser des valeurs de métallé partielles lors de la création de surfaces moins courantes avec des propriétés réfléchissantes modérées, comme le satin ou la soie. Cette pratique peut subtilement imiter les réflexions dans le matériau pour mettre en évidence la couleur de la carte de couleur/albédo par rapport aux couleurs réfléchies dans l'environnement.

