Les matériaux PBR

Physically Based Rendering
Category:glTF
== Qu'est-ce que c'est et pourquoi est-ce utilisé ? ==
Le terme "Physically Based Rendering" ou "PBR" est un terme technique qui peut nécessiter une définition pour la plupart des gens, car son utilisation est propre à la composition d'images dans les logiciels informatiques. Le terme lui-même est une abréviation pour un ensemble d'algorithmes mathématiques complexes qui tentent de représenter avec précision la façon dont la lumière se reflète et interagit avec les objets dans le monde réel. Dans le monde réel, c'est le comportement de la lumière sur un morceau de métal qui nous permet, en tant qu'observateur, de reconnaître que "cet objet est en métal" sans avoir à le toucher. La façon dont un métal réfléchit la lumière diffère de celle d'un plastique poli ou d'un autre matériau, et ces différences ont été quantifiées par la science. En imitant les principes de la physique du monde réel dans le monde virtuel, il est possible de créer des espaces réalistes reconnaissables et plus immersifs, mais cela nous aide également à mieux appréhender les mondes fantastiques. Même si nous ne savons pas ce qu'est une création nouvellement imaginée, l'aspect métallique inhérent au métal et l'aspect bois vieilli inhérent au bois restent constants, ce qui facilite la compréhension intuitive de ce avec quoi nous interagissons dans un environnement virtuel.
Parce que le fait de lier les mathématiques pour simuler des matériaux dans des espaces virtuels à la façon dont ils se comportent dans le monde réel rend les choses plus immédiatement reconnaissables, le PBR est devenue la base de la création de mondes imaginaires au cours de la dernière décennie. La brillance métallique des armures exosquelettiques dans les films de super-héros est produite par un flux de travail PBR, tout comme la brillance du plastique des jouets ou le scintillement de la glace dans les classiques de l'animation. Aujourd'hui, nous nous apprêtons à apporter cette qualité normalisée au sein même de Second Life.
L'introduction du PBR dans Second Life implique la mise à jour des calculs de base sur la façon dont la lumière est représentée et interagit avec le monde de Second Life. L'objectif est d'intégrer ces changements tout en modifiant le moins possible la façon dont tout ce qui existe actuellement dans Second Life (conçu avant l'introduction du PBR) s'affiche. Bien que la préservation de l'intention créative et de l'attrait esthétique des objets que les utilisateurs apprécient depuis plus de deux décennies dans Second Life soit toujours une priorité, Second Life est une plateforme en constante évolution et, pour continuer dans cette voie, certains changements sont inévitables.
Enfin, bien que nous essayions de reproduire les réflexions et les propriétés des matériaux du monde réel, Second Life doit fonctionner sur une grande variété d'appareils, ce qui oblige à prendre des raccourcis. Les reflets ne sont pas parfaits, comme l'ont souvent espéré et demandé depuis longtemps les résidents. Si l'ajout d'un système de réflexion nous rapproche des rêves de miroirs sans distorsion pour nos avatars dans Second Life, les miroirs ne sont malheureusement pas encore, pour l'instant, réalisables en raison des calculs nécessaires à la réalisation de réflexions parfaites. Veuillez consulter la note dans la section ci-dessous pour plus d'informations.
== Qu'est-ce que cela signifie pour les résidents ? ==
 thumb | right | La lampe sur cette capture d'écran utilise Blinn-Phong (matériaux SL classiques), et a été créée avant l'intégration de PBR dans SL ; elle montre certaines des différences visuelles par rapport au contenu existant. L'environnement utilisé pour la capture d'écran est le préréglage par défaut de la visionneuse pour Midi (notez que la visionneuse PBR dispose d'un nouveau préréglage pour Midi).
=== Changement concernant le contenu existant ===
Le changement le plus important est de loin l'ajout d'un système de réflexion environnemental à Second Life. Pour la plupart des objets existants, ce changement ne devrait pas avoir d'impact drastique et immédiatement observable. Certains objets déjà présents dans votre inventaire peuvent apparaître plus réfléchissants avec la nouvelle configuration graphique, et ces reflets devraient être plus réalistes et immersifs dans votre environnement actuel. En règle générale, plus un objet était "brillant" auparavant, plus il captera les reflets de l'environnement et plus la différence visuelle sera importante.
Un autre changement notable est l'ajout de Mappage ton local à la visionneuse. Le mappage des tons est un moyen de représenter une image avec une gamme dynamique native plus élevée que celle que l'écran peut supporter. Le mappage des tons est une exigence de facto des pipelines PBR. Cela signifie que les couleurs dans Second Life apparaîtront généralement plus saturées avec moins de détails perdus dans les ombres et les hautes lumières.
Cliquez ici pour obtenir des informations complémentaires sur le sujet. 
Le procédé de mappage des tons utilisé s'appelle Academy Color Encoding System (aka "ACES"), et peut être étudié ici et là.
Le contenu de Blinn-Phong utilisant les paramètres Spéculaire peut sembler différent si les objets n'ont jamais été vus sous un éclairage local, car la visionneuse PBR permet à l'environnement (soleil et ciel) de contribuer aux reflets spéculaires. Ainsi, si l'objet reçoit des réflexions spéculaires bleues du ciel, ces réflexions sont teintées et peuvent sembler bizarres. Cet effet est le même que dans les visionneuses précédentes, comme si l'objet était éclairé par une lumière locale bleue.
=== Suppression de l'option graphique du mode d'éclairage avancé (ALM) ===
Les options Graphiques > Paramètres avancés ont également été modifiées. Le changement le plus notable est la suppression des options "Shaders atmosphériques", "Éclairage local" et "Éclairage avancé".
Pour les utilisateurs de machines bas de gamme qui dépendent fortement de ces options pour naviguer dans Second Life avec un taux de rafraîchissement acceptable, nous recommandons les paramètres suivants :
*
*
*
*
*
*
Le paramètre a été remplacé par des mises à jour des options du curseur Monde > Improve graphics speed... > Graphics settings "Quality & Speed". Ainsi, les utilisateurs de matériel bas de gamme doivent s'assurer que le curseur graphique " Qualité et vitesse " est réglé à un niveau approprié pour leur matériel.
== Qu'est-ce que cela signifie pour les créateurs ? ==
=== Changements de nomenclature ===
Le projet PBR représente un grand pas vers l'intégration des techniques de rendu standard utilisées dans l'industrie des jeux. De ce fait, la nomenclature de certains éléments a changé, par exemple, ce qui était appelé Matériaux est maintenant appelé Blinn-Phong . Cela ne représente aucune modification des techniques de rendu sous-jacentes (en dehors de celles mentionnées ci-dessus) ; et en tant que tel, Blinn-Phong "n'est pas" identique aux flux de travail PBR Spec/Gloss, vus dans certains moteurs de jeu tels que Unity.
=== Importation de matériaux PBR à partir d'un logiciel externe : ===
Les créateurs qui travaillent avec des outils externes tels que Blender, Adobe Substance Painter, Cinema4D, 3D-Coat, ou qui ont utilisé les moteurs de jeu Unreal ou Godot, devraient déjà connaître l'utilisation des jeux de textures PBR. En fait, certains créateurs ont utilisé des outils qui utilisent des flux de travail PBR pour créer du contenu pour Second Life et ont donc ensuite été contraints de sacrifier la qualité visuelle pour convertir ces informations dans le système de matériaux Blinn-Phong existant de Second Life.
Second Life adopte le modèle PBR "Metallic / Roughness" et, dans le cadre de son engagement permanent à utiliser des normes Open Source chaque fois que cela est possible, le format de fichier glTF 2.0 a été choisi comme format de téléchargement pour les matériaux PBR. L'un des principaux objectifs de la mise en œuvre des matériaux PBR est d'assurer une plus grande continuité entre les applications de création de contenu et Second Life, et d'obtenir un comportement plus cohérent du contenu une fois qu'il est placé dans le monde.
=== Utiliser des matériaux importés dans Second Life ===
Pour les personnes qui construisent exclusivement dans Second Life, l'ajout de PBR signifie également qu'il y aura un nouveau Inventory Type appelé "Matériau". Ces nouveaux "matériaux" peuvent être achetés sur la place du marché et échangés comme n'importe quelle autre objet autorisé dans Second Life.
Les matériaux PBR se présentent sous la forme d'un paquet de textures. Ils se présentent comme une seule entité et sont appliqués en une seule fois. Pour modifier la teinte, la transparence ou d'autres paramètres similaires du matériau, vous devez modifier Matériau dans la fenêtre "Editing Material". 
L'application de matériaux existants fonctionne de la même manière que les textures existantes. Vous disposez de deux moyens pour ce faire :
==== Glisser-déposer ====
Il suffit de glisser-déposer sur la face d'une prim ou d'un mesh. Par exemple, si vous avez un matériau de sol carrelé et que vous le placez sur un cube, la face de ce cube ressemblera désormais à un sol carrelé et réfléchira la lumière comme le ferait un sol carrelé avec toutes les qualités matérielles contenues dans le matériau.
 thumb | none | Fonctionnalité de Glisser/Déposer.
==== Passer à PBR et sélectionner à partir de l'inventaire ====
Vous pouvez également sélectionner une face du prim ou du mesh auquel vous souhaitez appliquer votre matériau puis choisir le menu déroulant "Blinn-Phong" et le changer en "PBR Metallic Roughness", puis sélectionner " Choisir un élément de votre inventaire " et l'appliquer.
left | thumb | none | Démonstration du menu déroulant.
==== Transformations de textures ====
Avec les matériaux PBR, les transformations de texture fonctionnent d'une manière légèrement différente des transformations de Blinn-Phong. Blinn-Phong (et OpenGL) a l'origine de la texture dans le coin inférieur gauche de la texture, alors que les matériaux glTF (et Vulkan) ont l'origine de la texture dans le coin supérieur gauche.
Cela signifie que les matériaux PBR réagissent différemment (ils sont inversés sur l'axe Y (glTF v)) que les matériaux Blinn-Phong.
Pour une solution simple permettant de convertir une transformation de texture Blinn-Phong en une transformation de texture PBR, veuillez vous reporter à ce fil de discussion.
Pour plus d'informations, voir ici et ici.
=== Media-on-a-Prim ===
Les médias sur les primitives continueront à largement fonctionner de la même façon qu'avant le lancement du PBR. Lors de l'utilisation d'un MOAP sur la face d'une primitive avec une texture PBR, il fonctionnera comme si la texture du média avait la priorité sur les couches Couleur de base et Émissive. Notez que la couche Émissive est ignorée, mais que la couleur de celle-ci ne l'est pas (donc, pour désactiver la couche émissive, vous pouvez mettre la couleur émissive en noir <0,0,0>).
== Outils & Tutoriels ==
Comme le système PBR est nouveau, on s'attend à ce que les utilisateurs existants ne sachent pas très bien comment tout cela fonctionne. C'est pourquoi Linden Lab et des tiers proposent des tutoriels et des vidéos d'information :
*Second Life University - PBR Materials
*Second Life University - How to create PBR Materials
*Allegorithmic (Adobe) PBR Guide
Les tutoriels ci-dessus requièrent une connaissance et un accès à Substance Painter d'Adobe (logiciel sur abonnement chez Adobe ou à l'achat sur Steam). Voici quelques liens pour des outils open source et des tutoriels vidéo trouvés sur Google en tapant "Blender", "glTF" ( nécessite Blender 3.3)
*Material Maker software
*glTF Packer
*Armorpaint
*Armorlab
*glTF Blender Tutorial
*Exporting glTF Alpha Textures
== Textures PBR et visionneuses obsolètes ==
Il convient de mentionner que pendant la période d'adoption d'un nouveau système, une grande partie des résidents de Second Life voient le monde par l'intermédiaire de visionneuses tierces et de solutions de visionnage mobiles qui n'auront pas été mises à jour pour être en mesure de voir le nouveau contenu. Toute personne visualisant un matériau PBR sur une visionneuse qui ne peut pas l'afficher verra la texture non PBR "sous-jacente". Par défaut, il s'agit d'une boîte en pin ou d'une texture complètement vierge. Ceux qui souhaitent que leur contenu soit visible par le plus grand nombre de personnes possible pourraient envisager de créer une texture Diffuse (avec un éclairage créé, le genre qui est facilement généré avec des outils comme le "Baked Lighting Filter" de Substance Painter) et de l'appliquer comme une simple texture à l'objet sur lequel ils placent le matériau PBR, avant d'appliquer le matériau PBR. Bien qu'il s'agisse d'une étape supplémentaire dans la création de contenu et que cela complique quelque peu les choses, si vous souhaitez que votre contenu soit apprécié de tous, cela vaut la peine d'envisager d'ajouter cette étape supplémentaire à votre flux de travail. Les personnes qui conçoivent des matériaux PBR destinés à la distribution et à la vente pourraient également envisager de proposer une texture "Diffuse de secours" pour accompagner le matériau PBR, spécifiquement pour les personnes qui ne peuvent pas voir le contenu PBR.
== Comprendre et aider le nouveau système de réflexion ==
Les créateurs qui travaillent à l'échelle d'une maison ou qui produisent des objets que l'on peut traverser peuvent mieux contrôler l'éclairage dans leurs créations en prenant le temps de bien comprendre le nouvel ensemble d'outils qui influencent les réflections de l'environnement. Il existe un nouveau type de volume qui peut être créé et ajouté aux ensembles d'objets liés spécifiquement pour les scènes comportant ce type d'espaces. Ces volumes définissent une zone personnalisée dans laquelle les réflexions sont calculées, en remplacement de la configuration par défaut. Les " sphères de réflexion " doivent être placées de manière à ce que " le plus petit nombre de sphères remplisse le plus grand espace possible avec un minimum de chevauchement ". Une sphère par pièce est un bon point de référence pour un espace de vie général tel qu'une maison. Si plusieurs sphères sont présentes dans une zone donnée, elles peuvent provoquer des artefacts visuels et avoir un impact négatif sur les performances (également connu sous le nom de "viewer lag" ou "retard de visualisation"). Ne fixez pas les sphères de réflexion à de petites créations telles que des meubles ou des objets décoratifs. Les petits objets tels que les tables, les chaises, les instruments de musique, les bâtons de bougie, etc. doivent utiliser la réflexion du volume de la pièce dans laquelle ils sont placés. Ils ne devraient pas en avoir un ajouté. Il est "vivement" recommandé de laisser " modifiable " tout objet contenant une sphère de réflexion, de manière à ce que le propriétaire de l'objet puisse ajuster le positionnement de la sphère ou même l'enlever s'il le souhaite.
== Quand est-il recommandé de créer une sonde de réflexion ? ==
Les sondes placées manuellement permettent d'éliminer les parasites et les éclairages indésirables des sphères placées automatiquement, qui peuvent perturber ou troubler l'image. Si vous regardez l'image de la pièce d'une maison, sur le côté gauche, vous pouvez voir une teinte bleue sur le sol, qui correspond à la lumière bleue réfléchie par le ciel. La sonde remplissant la moitié de la pièce bloque ce phénomène, et lorsqu'elle est étendue pour remplir complètement la pièce en dépassant légèrement l'épaisseur des murs, (copie de l'image ci-dessous) le problème est résolu. La sonde ne doit pas nécessairement faire partie de l'ensemble d’objets liés du reste de la pièce pour fonctionner ; cependant, une fois qu'elle est placée, il est possible de l'ajouter à l'ensemble d’objets liés comme n'importe quelle autre primitive.
=== Construction d'un volume de réflexion ( aka Sphère de réflexion ) ===
Commencer par la fenêtre Construire (Ctrl+3) en rezzant une primitive de base. Sous l'onglet Attributs, en bas, cochez la case intitulée Reflection Probe.
 thumb | none | Manual Probe Creation UI.
* Reflection Probe : L'activation de cette option crée un volume d'échantillonnage par réflexion dans la boîte de délimitation de la prim.
* Liste déroulante boîte / sphère : Choisissez si vous souhaitez que cet échantillonneur projette des reflets dans un volume en forme de boîte ou dans un volume sphérique.
* Dynamique : Permet de capturer dans le reflet des objets skinnés (par exemple des avatars, des animesh, etc.).
* Ambiance : Affecte le niveau d'éclairage des objets situés dans le volume, comme s'ils étaient frappés par une lumière réfléchie provenant d'une illumination indirecte simulée. Voir "Fine-Tuning Reflection Sample Volumes" pour plus d'informations.
* Near Clip : Parfois, il y a un obstacle important au centre du volume que vous souhaitez utiliser comme source de reflets. Supposons, par exemple, qu'il y ait une grande structure architecturale au milieu de la pièce, telle qu'une colonne. Si la source est placée à l'intérieur de la colonne, elle reflétera la surface interne de la colonne au lieu de la pièce dans laquelle elle est placée. En augmentant Near Clip, le volume d'échantillonnage exclut les objets situés à n mètres du centre afin qu'ils ne soient pas inclus dans les reflets. Voir "Fine-Tuning Reflection Sample Volumes" pour plus d'informations.
Sélectionnez une forme de probe appropriée à votre scène. Par exemple, si vous voulez créer une source de reflets qui couvre une pièce, sélectionnez une forme Box, ou pour d'autres objets une forme Sphere est recommandée.
Déplacez la source de réflexion et redimensionnez-la si nécessaire pour qu'elle corresponde à l'usage que vous souhaitez en faire. Pour l'exemple de la pièce, redimensionnez la boîte de manière à ce qu'elle touche juste les murs, le plafond et le sol de la pièce.
Il est également recommandé de donner un nom à vos probes, afin que les autres personnes (ou vous-même plus tard) se souviennent de la raison pour laquelle il y a une grande primitive transparente au milieu de votre construction.
Si vous souhaitez revenir et modifier le volume de réflexion ultérieurement, activez les deux options suivantes Show Reflection Probe Volumes et Select Reflection Probes dans Construire > Options.
=== Ajustement des volumes d'échantillons de réflexion ===
Cela dit, il peut cependant être utile de visualiser le near clip comme le creusement du volume de l'échantillon de réflexion, mais le creux et le near clip ne sont en aucun cas liés et il s'agit là d'une simple commodité. Les volumes du reflection probe ne réagissent qu'aux changements d'échelle et de position ; cependant, les différents volumes du reflection probe se comportent différemment lorsqu'ils sont redimensionnés.
* Sondes Boîtes : Elles sont affectées par la position et l'échelle non uniforme.
Exemple : Si je crée un reflection probe dans une boîte et que je la mets à l'échelle (10 m, 30 m, 10 m), le volume entier sera affecté par le probe.
* Sondes Sphère : Elles ne sont affectées que par la position et l'échelle uniforme, sinon la plus petite dimension est utilisée.
Exemple : Si je crée un probe sphérique et que je le dimensionne à 10m, 30m et 10m, le probe échantillonnera un volume sphérique de 10 mètres de diamètre au centre de la sonde. En revanche, une sphère de 30 m, 30 m et 30 m créera un volume d'échantillonnage d'une sphère de 30 mètres de diamètre.
 thumb | none | Schéma du fonctionnement (ou du fonctionnement que vous n'avez pas prévu) des sondes sphériques lorsque leur échelle n'est pas uniforme.
Ambiance de la sonde de réflexion contrôle la façon dont la lumière ambiante (trouvée dans votre environment preset) affecte, ou n'affecte pas, le contenu de la sonde de réflexion, et l'intensité de l'éclairage indirect (aka Irradiance).
Cette valeur est influencée par la valeur Ambiance de la Sonde de Réflexion trouvée dans le environment preset de l'utilisateur, où si la valeur d'Ambiance donnée dans le environment preset est plus élevée que la valeur définie par la sonde elle-même, elle hérite de la valeur d'ambiance de la environment preset, ou bien si la valeur d'ambiance définie par la sonde est supérieure, c'est la valeur de la sonde qui est utilisée.
Il existe trois modes de fonctionnement qui sont définis par la valeur Ambiance de la sonde de réflexion, en tandem avec ce qui précède :
* 0 permet d'appliquer la couleur ambiante de l'environnement à pleine intensité.
* Une valeur supérieure à 0 et inférieure à 1 mélange la couleur de l'environnement ambiant et l'irradiance de la sonde (éclairage indirect) dans un rapport correspondant à la valeur définie (par exemple, 0,5 correspond à une répartition 50/50).
* 1 ou plus bloque l'application de la couleur ambiante de l'environnement dans le volume de la sonde et l'irradiance est appliquée à pleine intensité (ou avec un multiplicateur pour les valeurs supérieures à 1).
** 4 ou plus fonctionne de la même manière que ci-dessus, mais seuls les éclairages indirects reçus du ciel seront multipliés à une valeur supérieure à 4. Les lumières locales sont bloquées à 4,0.
=== Placement de sondes de réflexion complexes ===
Il peut arriver que vous souhaitiez placer une sonde de réflexion dans une zone où les types de sonde de réflexion (sphère ou boîte) ne sont pas adaptés à la forme de la zone. Par exemple, une sonde Box placée dans un grenier a une forme triangulaire, ce qui entraîne un "débordement de la sonde" : le volume d'influence affecte une zone plus grande que nécessaire et déborde donc sur le toit extérieur, ce qui n'est pas souhaitable.
Dans ce cas, il peut être nécessaire de placer plusieurs sondes afin de mélanger les volumes d'échantillons pour obtenir le résultat souhaité. Dans l'exemple de la chambre du loft, il est préférable de commencer par trois sondes en boîte, qui couvrent le sol et chaque côté du toit. Ensuite, utilisez une sonde supplémentaire comme "remplissage" pour couvrir l'espace entre les 3 sondes. Il peut être nécessaire de faire pivoter la sonde de remplissage principale afin d'obtenir la couverture la plus large possible. S'il n'est pas possible de combler l'espace entre les 3 sondes avec cette sonde de remplissage, vous pouvez ajouter d'autres sondes en caisson pour servir de "remplissage secondaire".
[TODO: Put photo examples of the above here!]
Il est également possible d'utiliser des sondes sphériques pour obtenir le même résultat. Les sondes sphériques ont un mélange beaucoup plus doux que les sondes en forme de boîte, ce qui permet d'obtenir les meilleurs résultats dans des conditions de débordement important.
=== Cas d'utilisation non pris en charge ===
Vous pouvez être tenté d'utiliser les sondes de réflexion de la manière suivante, mais ces cas d'utilisation sont soit intentionnellement désactivés, soit entraînent un comportement non garanti, et peuvent fonctionner aujourd'hui, mais pas dans le futur. Vous avez été prévenu.
En aucune circonstance, vous ne devez :
* Porter une sonde de réflexion. Cela ne fonctionne pas à dessein. (Les sondes de réflexion sont une propriété de la scène, pas un objet ou un avatar individuel).
* Attachez une sonde de réflexion à un objet physique, par exemple un véhicule. Cela ne fonctionne pas à dessein. (Comme ci-dessus, les sondes de réflexion font partie de la scène et non d'un objet individuel. De par leur conception, les sondes de réflexion ne sont pas mises à jour en temps réel, si bien que l'objet aurait toujours des réflexions incorrectes).
== PBR Material Composition ==
Les valeurs définies par le PBR sont mesurées par des capteurs optiques et d'autres outils de capture et enregistrées dans des bases de données. Ces paramètres sont ensuite intégrés dans un logiciel commercial à l'usage des créateurs de contenu. Il est toujours recommandé d'utiliser un logiciel conçu pour créer du contenu PBR ; cependant, comprendre comment les documents PBR sont assemblés peut aider à les éditer et à les compiler. Une compréhension directe de la contribution de chaque canal de couleur est essentielle pour éditer les textures PBR sans avoir recours à certains des outils les plus avancés disponibles.
Toutes les valeurs PBR sont comprises entre 0 et 1,0, bien que dans une image réelle, les valeurs soient comprises entre 0 et 255.
Les matériaux PBR sont composés d'un ensemble de quatre textures spécifiques, qui sont les suivantes :
===Base Color [ RGB ] + Transparence [ A ]===
[RGB]: Il s'agit de la couleur non éclairée de la surface. Elle diffère de la texture "Diffuse" utilisée dans Second Life. Les textures diffuses comprennent souvent des informations de réflexion et de spécularité simulées, ainsi que des ombres d'occlusion ambiante ajoutées. Les textures de couleur de base ne bénéficient d'aucune de ces informations supplémentaires. Pour les métaux (définis par la valeur de métallicité ("metalness")), la couleur de base détermine également la couleur de réflexion spéculaire, alors que, dans les systèmes non-PBR, cette couleur est définie par la texture et la teinte spéculaires. Dans certaines applications de texturation PBR, la couleur de base est parfois également appelée " Albedo ".
[ A ]: Le canal Alpha détermine la transparence de l'ensemble du matériau.
La texture de la couleur de base doit être dépourvue d'informations sur l'éclairage.
===Occlusion [R] / Roughness [G] / Metalness [B]===
Cette texture est composée de 3 images en niveaux de gris sans rapport entre elles, stockées dans 3 canaux de couleur différents d'une texture RVB.
[R]: (Ambient) Occlusion est une donnée d'éclairage, supprimant la nécessité d'incorporer les ombres à la couche de couleur de base. Notez que "blanc" (<1,1,1>) signifie qu'aucune occlusion n'est appliquée, et que "noir" (<0,0,0>) applique une occlusion totale.
[G]: Les données relatives à la rugosité (Roughness) vont de 0 à 1,0, mais la plage réelle des surfaces physiques va d'environ 0,05 à 0,985. Aucune surface n'est parfaitement lisse ou complètement rugueuse. Plus une surface est rugueuse, moins elle se comporte comme un miroir. 
[B]: Les valeurs de métallicité (Metalness) sont essentiellement noires ou blanches. Soit le matériau est un métal conducteur comme le cuivre, soit il s'agit d'un non-métal comme le tissu. 0,0 correspond à un matériau non métallique, 1,0 à un matériau métallique. Il n'y a pratiquement pas de matériaux avec des valeurs de métallicité grises.
Le canal alpha est ignoré, conformément aux glTF 2.0 spécifications.
===Emissive [ RGB ]===
Cela détermine la quantité et la couleur des zones non éclairées (ignorant les conditions de lumière ambiante) de votre matériau. Si vous donnez à un objet une couche émissive blanche, l'objet se comportera comme si l'option "Lumineux" de Blinn-Phong était cochée. Cette couche est utile pour les objets qui sont censés émettre de la lumière, par exemple une lampe de table, dont l'abat-jour semble briller lorsque la lampe est allumée. Si vous souhaitez allumer et éteindre la lampe, il est recommandé de changer la valeur de la teinte émissive en noir (ce qui désactive la couche émissive et éteint donc la lampe), puis de changer la teinte pour la couleur souhaitée afin de rallumer la lampe. Il est recommandé de laisser l'emplacement Emissive vide lorsqu'il n'est pas utilisé.
Notez que l'éclat (l'effet de post-traitement) est contrôlé par un paramètre séparé dans le flotteur de construction et ne fait intentionnellement pas partie de la fenêtre de matériau PBR. L'éclat est modulé par la couche d'émissivité, de sorte que les zones noires de la couche d'émissivité d'un objet ne brillent pas de la même manière que les couches d'émissivité de Blinn-Phong ou que le rayonnement.
Conformément aux glTF 2.0 spécifications, le canal alpha est ignoré.
===Normal [ RGB ]===
Les couches normales générées par votre application de création d'images et votre boîte à outils de génération de couches normales devraient être compatibles avec Second Life dans la plupart des cas. L'écueil le plus courant est l'utilisation de couches normales générées avec des canaux verts "inversés", tels que ceux utilisés pour Direct3D et Unreal Engine. Les données de texture normales redirigent la lumière dans une direction différente en fonction des vecteurs indiqués par la couleur, de sorte que si le canal vert est inversé, il semblera "pointer dans la mauvaise direction". Pour formuler le problème autrement, toutes les choses qui devraient être des bosses ressemblent à des creux, et vice versa. Si c'est le cas, vérifiez que vos paramètres ne sont pas ceux de Direct3D et essayez de le re-générer. De même, l'utilisation d'un logiciel de retouche d'images et l'inversion du canal vert, uniquement dans certains cas, constituent une solution suffisante.
Les espaces tangents des couches normales sont un sujet extrêmement technique dont la plupart des utilisateurs n'ont pas besoin de se préoccuper, car la plupart des applications modernes utilisent par défaut les paramètres corrects. Cependant, si vos couches normales semblent radicalement différentes dans Second Life, par rapport à votre application source, et que vous avez déjà confirmé qu'il ne s'agit pas d'un canal vert inversé, l'étape suivante consiste à vérifier quels sont les paramètres de l'espace tangent utilisés. Les normales PBR utilisent l'espace tangent de Mikkelsen (Souvent abrégé MikkT). Si vous n'êtes pas sûr de ce que cela signifie, utilisez pour le PBR de Second Life des flux de travail et des paramètres similaires à ceux qui sont généralement recommandés pour le moteur de jeu Godot 4.
Conformément aux glTF 2.0 spécifications, le canal bleu d'une couche normale ne peut contenir que des valeurs supérieures à 0,5 jusqu'à un maximum de 1 (255).
Conformément aux glTF 2.0 spécifications, le canal alpha est ignoré.
== Bibliothèques de référence des matériaux ==
Comme PBR est Basé sur la physique, vous voudrez peut-être savoir comment recréer un matériau réel sous forme de PBR. Quelle couleur utiliser ? Quelle valeur de métallisation doit-il avoir ?
Heureusement, il existe des bibliothèques de référence qui peuvent vous indiquer comment recréer un matériau donné dans un flux de travail PBR.
=== Liste des palettes de couleurs de référence et des bibliothèques ===
*Physically Based
** Sélectionnez le moteur Godot, avec l'espace couleur sRGB (Linear)) et la représentation des couleurs 0-1 (selon ce que vous faites, vous devrez peut-être convertir la valeur en espace sRGB corrigé en fonction du gamma, ce qui peut être fait ici. Saisissez la valeur sur la 3ème ligne).
*Grzegorz Baran Library
**Disponible sur YouTube (format vidéo, plus ancien), ou PDF (plus à jour).
*Dontnod Entertainment Library
** Une très petite bibliothèque, mais néanmoins utile.
*Studio 397
** Une petite collection de matériaux divers.
*Polycount Wiki
** Il ne s'agit pas vraiment d'une bibliothèque en soi, mais de liens vers d'autres bibliothèques. Voir la section Nuanciers.
		
=== Liste de bibliothèques de ressources PBR ===
*ambientCG
** Propose des HDRi sous licence CC0, des matériaux Metal-Rough et des fichiers .sbar (matériaux Substance Painter).
*Poly Haven
** Propose des HDRi sous licence CC0, des matériaux Metal-Rough et des modèles.
== Téléchargement de matériaux ==
Il existe deux méthodes différentes pour créer des ressources matérielles PBR :
=== Méthode 1 : Chargement direct d'un fichier glTF ===
La méthode la plus pratique pour créer un matériau entièrement nouveau consiste à télécharger directement un fichier glTF depuis votre ordinateur.
Il est accessible via Construire > Charger > Material... 
 thumb | none | Chargement PBR dans le menu principal de construction. 
Sélectionnez un fichier .GLB ou .GLTF sur votre ordinateur et ouvrez-le :
La fenêtre suivante s'affichera :
 thumb | none | Présentation de l'interface de création et de modification des matériaux PBR.
Toutes les propriétés modifiables des matériaux que la plupart des créateurs connaissent sont intégrées dans la fenêtre verticalement dimensionnable du matériau lors du chargement. 
En cliquant sur "Save", vous payez les frais de chargement et créez les ressources matérielles en utilisant le nom de fichier local. L'utilisation de "Enregistrer sous..." offre une fenêtre pour nommer tous les matériaux avec des noms uniques dans Second Life. Il y a une limite de 63 caractères pour les noms des objets de l'inventaire, mais le flotteur de nommage pour le chargement des matériaux n'a pas de restriction de longueur
Les textures seront chargées dans le dossier Textures par défaut de l'inventaire (NoMod, NoCopy, Transfer) avec un "type" ajouté au nom donné. (p. ex. nom du bien (Base color), nom du bien (Normal), nom du bien (Roughness metallic)). En nommant l'objet, gardez à l'esprit que la partie entre parenthèses est incluse dans la limite des 63 caractères du nom. L'objet PBR est chargé (Mod, NoCopy, Transfer) dans le dossier Material de l'inventaire avec le texte ajouté (Material). Actuellement, le fait de nommer l'objet glTF à partir de Save as... n'ajoute PAS (Material) au nom de l'inventaire. L'enregistrement à partir du fichier nommé localement le fera.
L'objectif d'un matériau étant d'être une unité facilement échangeable, toutes les propriétés des primitives avec lesquelles la plupart des utilisateurs sont familiers sont désormais intégrées dans l'interface utilisateur du matériau lui-même. Il s'agit de la teinte, de la transparence et du comportement émissif. Une fois que vous avez ajusté ces paramètres aux valeurs souhaitées, cliquez sur "Enregistrer" pour payer les frais de téléchargement et créer votre ressource matérielle.
=== Méthode 2 : Modifier un fichier vierge. Créer des matériaux PBR sans fichier glTF ===
Si vous disposez des textures nécessaires pour composer un matériau PBR mais que vous n'avez pas de fichier glTF, vous devrez créer un matériau à partir de l'inventaire. Assurez-vous que vos textures sont au bon format, avec les bonnes données dans les bons canaux. Cela nécessite une certaine compréhension du PBR materials fonctionnement des matériaux. Une fois que vous l'avez fait, chargez vos textures comme vous le feriez normalement.
 thumb | none | L'interface utilisateur des matériaux PBR dans le flotteur de construction.
* Trouvez le dossier "Materials" dans votre inventaire, faites un clic droit et sélectionnez "New Material" dans le menu contextuel.
* Donnez à votre nouveau matériau un nom approprié (par exemple, " Briques rouges " pour un mur de briques rouges, etc.)
* Cliquez avec le bouton droit de la souris sur votre nouveau matériau et sélectionnez "Ouvrir" dans le menu contextuel.
* Téléchargez vos textures PBR à l'aide du flux de travail standard (en général, sous Construction > Charger > Image).
* Dans la fenêtre du matériel, sélectionnez les couches appropriées que vous venez de charger dans leurs emplacements respectifs.
* Une fois cela fait, vérifiez que les paramètres du matériau sont corrects (par exemple, la teinte de la couleur de base, le facteur M/R, la teinte émissive, etc.)
* Enregistrez votre nouveau matériel.
* SOIT : Glisser-déposer le matériau sur une primitive rezzée, OU modifiez la prim, cliquez sur le menu déroulant "Blinn-Phong", sélectionnez "PBR Metallic-Roughness", puis cliquez sur "Choose from Inventory" et sélectionnez votre nouveau matériau.
=== Création de variantes de couleurs ===
Après avoir chargé le premier matériau de votre projet, si vous êtes propriétaire d'un magasin et que vous souhaitez proposer plusieurs palettes de couleurs pour votre création, comme le font de nombreux créateurs de vêtements et de meubles, il est important de ne pas charger un nouveau fichier glTF pour chaque variante de votre matériau. Pour la plupart des variantes de matériaux, seule la couleur de base change. Les textures d'occlusion, de rugosité, de métallicité, d'émissivité et de normale restent inchangés. Comme ces données ont déjà été chargées une fois, si nous chargeons un deuxième fichier glTF, elles seront dupliquées. Le fait d'avoir plusieurs copies de la même texture, avec des UUID différents, signifie qu'elles encombreront la bande passante de téléchargement et la mémoire de la carte vidéo (sans parler de votre inventaire). C'est très mauvais pour Second Life. C'est pourquoi il est recommandé, lorsque vous créez des variantes de texture, de charger séparément les copies supplémentaires de la texture de la couleur de base. Ouvrez ensuite votre nouveau matériau en mode modification, choisissez la texture de couleur de base et remplacez-la par l'une des textures de couleur de base que vous venez de charger, puis cliquez sur "Enregistrer sous". Cela créera une deuxième copie de votre matériau qui utilisera toutes les couches de texture correctes sans les dupliquer inutilement et sans causer de latence supplémentaire.
== Paramètre double face : Utilisations et dangers ==
"Double face" est une nouvelle propriété propre aux matériaux. Lorsque la case "Double face" est cochée, la surface sur laquelle ce matériau est placé est dessinée deux fois : une fois pour la partie de la surface orientée vers l'extérieur et une seconde fois pour la partie de la surface orientée vers l'intérieur, qui est normalement invisible sans matériau double face. Cette option ne doit être utilisée que pour des maillages très spécifiques qui ont été conçus pour être utilisés avec des matériaux à double face, car placer des matériaux avec ce paramètre sur des objets normaux fera simplement en sorte que la visionneuse les dessinera deux fois (et créera ainsi un temps de latence supplémentaire pour la visionneuse) sans aucun changement observable. Il est très fortement recommandé que cette option ne soit pas cochée pour tout matériau destiné à être distribué pour un usage général. C'est encore plus vrai si la permission "Modifier" est refusée. Si vous souhaitez distribuer une version d'un matériel dont la case "Double face" est cochée, veuillez inclure une deuxième copie du matériel dont la case "Double face" n'est pas cochée, avec une explication à l'intention de l'utilisateur concerné.
Example:: 
*LeafTextures_DoubleSided
*LeafTextures_SingleSided
Lors de la conception d'un contenu de maillage destiné à être utilisé avec le paramètre de matériau double face, il est également "fortement recommandé de séparer les triangles sur lesquels vous avez l'intention d'utiliser le matériau double face dans une "face" de maillage distincte", afin de ne pas rendre involontairement les parties du maillage qui ont déjà des triangles conçus pour représenter la partie interne de l'objet une deuxième fois.
== Scripts LSL ==
La documentation relative à l'interface LSL avec les matériaux glTF se trouve dans les pages suivantes :
*GLTF Overrides
*Category:LSL Material
== Paramètres recommandés pour l'application ==
Le format de fichier glTF est largement adopté et de nombreuses applications disposent d'une fonctionnalité d'exportation pour ce type de fichier.
Ci-dessous se trouve une liste non exhaustive des applications les plus populaires qui exportent des fichiers glTF.
----
===Blender===
Au démarrage de votre projet :
Sous : Scene > Render Properties > Color Management:
*
*
Créez vos matériaux dans Blender en utilisant les nœuds de shaders BSDF et le nœud glTF Settings. Exportez-les conformément à la Blender documentation officielle..
Pour la création de matériaux, 2 fichiers .blend d'exemple sont fournis, l'un utilisant des textures d'occlusion, de rugosité et métalliques séparées ("Long Form"), et l'autre utilisant une couche ORM pré-packagée ("Short Form").
Les fichiers ci-dessous sont destinés à être utilisés avec les versions 3.3 et supérieures de Blender.
* glTF Node Tree - Long Form.blend
* glTF Node Tree - Short Form.blend
----
=== Adobe Substance 3D Painter === 
Lorsque vous démarrez votre projet :
*
OU
*
Vérifiez les paramètres suivants :
*
*
*
Sous "Gestion des couleurs" :
*
*
*
*
*
*
Lors de l'exportation :
*
*
*
----
=== Adobe Substance 3D Designer === 
Dans les préférences, vérifiez les paramètres Projet suivants :
*
*
*
*
*
*
Lors de l'exportation (Export Outputs):
*
*
*
*
*
Si vous utilisez un nœud personnalisé pour produire un pre-compiled ORM map, il doit également être réglé sur Raw.
----
=== Cinema 4D === 
Veuillez suivre la documentation fournie dans ce blog post.
----
===3DCoat===
L'export glTF a été implémenté depuis la version 2020 de 3DCoat et se trouve dans File >Export > Export to glTF > glTF Separate (gltf + .bin + textures)
----
=== Quixel Mixer === 
Quixel Mixer n'a pas de sortie glTF, mais il génère des textures fonctionnelles, bien qu'elles doivent être modifiées et combinées dans un logiciel de retouche photo.
Exportez-les en allant dans Export Target > Custom
Préréglage des textures : Metalness Maps
Sélectionnez: 
Albedo , Roughness, Normal, AO , Metalness et ( si besoin ) Emissive.
Cliquez “Export to Disk” et ouvrez le dossier dans lequel les fichiers ont été placés.
Dans ce cas, Albedo est la texture de la couleur de base (Base color).
AO , Roughness , Metalness sont combinés dans la couche ORM, conformément à cette explication.
Normal Map : Quixel génère Direct3D Normal Maps. Le canal vert doit être inversé comme suit.
Transférez vos données dans Second Life à l'aide de Method 2.
----
=== Autodesk 3DS Max 2023 === 
Autodesk vient d'ajouter la possibilité de créer des fichiers glTF en utilisant les nouvelles fonctionnalités glTF Material et glTF Export, comme indiqué dans le document suivant Autodesk's official documentation. Toutes les versions antérieures du logiciel Autodesk ne disposent pas de cette fonctionnalité.
----
=== Material Maker ===
Bien que Material Maker n'exporte pas directement en glTF (Cela pourrait être ajouté à l'avenir), les matériaux créés avec ce programme sont compatibles avec Second Life.
Exportez vos matériaux en utilisant le préréglage d'exportation Godot 4 ORM.
Chargez dans Second Life à l'aide de Method 2.
----
=== Adobe Photoshop ===
Bien que Photoshop ne soit pas officiellement un outil de création PBR, les modifications apportées à l'Alpha Blending (passage de l'espace sRGB à l'espace linéaire) peuvent vous obliger à modifier vos paramètres PS pour obtenir des résultats cohérents. Lisez cet article pour de plus amples informations. (Lisez la section intitulée "A Partial Solution"). Alternativement, ce post Reddit donne également quelques options sur la façon de réaliser un mélange de manière correcte.
----
=== GIMP ===
Bien que GIMP ne soit pas officiellement un outil de création PBR, les changements apportés à l'Alpha Blending (passage de l'espace sRGB à l'espace linéaire) dans Second Life permettront aux textures créées dans GIMP d'afficher correctement leurs alphas (GIMP utilise par défaut le calcul linéaire des alphas).
== Résolution des problèmes ==
Si vous chargez un contenu PBR qui ne correspond pas à votre éditeur, le conseil de Linden Lab est d’arrêter : Remplissez un JIRA. N'essayez pas de "réparer" le contenu.
Cela dit, il existe des mesures de correction que vous pouvez prendre vous-même :
* Vérifiez que vous utilisez le préréglage PBR Linden Midday (appelé "Midday") et "non "Midday (Legacy)"". D'autres environnements peuvent ne pas correspondre au HDRi de référence, ce qui entraîne des différences visuelles. (Il s'agit d'un comportement intentionnel, et le contenu devrait pouvoir être visualisé correctement sous n'importe quel éclairage, mais à des fins de résolution de problèmes, cela peut s'avérer nécessaire).
** Actuellement, il y a un bug avec le préréglage PBR Linden Midday qui résulte en une brillance bleue excessive, due à l'utilisation d'une couleur de ciel sursaturée (irréaliste), parmi d'autres problèmes. Ce problème a été corrigé dans la prochaine version de la visionneuse de maintenance glTF.
* Utilisez-vous une sonde de réflexion ? Si ce n'est pas le cas, le problème se reproduit-il si une sonde de réflexion manuelle est placée sur l'objet ?
** Cela est dû au fait que l'utilisation d'une sonde automatique, combinée au fait d'être en intérieur, est une source fréquente de "reflets bleus". Les sondes automatiques échantillonnent leur environnement et, combiné à un placement approximatif (et souvent incorrect), cela entraîne l'échantillonage du ciel de tous les côtés. Du coup, la lumière réfléchie par l'environnement (qui contrebalance la lumière bleue du ciel) est absente, entraînant un niveau plus élevé que prévu de contribution du ciel sur l'objet. Le placement des sondes automatiques peut être pire dans les skybox ou les plates-formes dans le ciel.
* Vérifiez que les paramètres utilisés pour votre éditeur correspondent à ceux indiqués ici, y compris le HDRi de référence. Tout écart par rapport à ces paramètres peut entraîner des différences visuelles entre votre éditeur et le monde virtuel.
* Vérifier votre contenu par rapport à une visionneuse de référence glTF, par exemple :
** Modelviewer.dev
** Khronos Sample Viewer
Si les étapes ci-dessus échouent, veuillez déposer un JIRA.
Un bon JIRA comprendra :
* Un repère vers un lieu où le problème peut être vérifié dans le monde.
* Une copie du contenu glTF, jointe au JIRA.
* Des captures d'écran de la simulation dans le monde, dans une visionneuse de référence et dans l'éditeur.
** Vous devez inclure des captures d'écran de l'objet à l'intérieur d'une sonde de réflexion placée manuellement, et à l'extérieur.