Partager via


Matériaux couleur

Les matériaux de couleur constituent l’un des types de matériaux pris en charge dans Azure Remote Rendering. Ils sont utilisés pour les maillages qui ne doivent recevoir aucun type d’éclairage, mais qui apparaissent plutôt toujours à pleine luminosité. Ce peut être le cas pour les matériaux « lumineux », tels que les tableaux de bord de voiture, les ampoules, ou pour les données qui intègrent déjà l’éclairage statique, telles que les modèles obtenus par photogrammétrie.

Les matériaux de couleur sont plus avantageux à restituer que les matériaux PBR en raison de leur modèle d’ombrage plus simple. Ils prennent également en charge différents modes de transparence.

Propriétés des matériaux de couleur

Les propriétés matérielles suivantes sont exposées dans l’API de runtime, par exemple sur la classe C# ColorMaterial ou la classe C++ ColorMaterial, respectivement.

  • ColorFlags : divers indicateurs de fonctionnalité peuvent être combinés dans ce masque de bits pour activer les fonctionnalités suivantes :

    • UseVertexColor si le maillage comprend des couleurs vertex et que cette option est activée, la couleur vertex du maillage est multipliée par AlbedoColor et AlbedoMap. Par défaut, UseVertexColor est désactivé.
    • DoubleSided : si la bilatéralité est définie sur true, les triangles bénéficiant de ce matériau sont rendus même si la caméra regarde vers les faces arrière. Par défaut, cette option est désactivée. Voir aussi Single-sided rendering.
    • AlphaClipped: active les découpages durs par pixel, si la valeur alpha est inférieure à la valeur de AlphaClipThreshold (voir ci-dessous). Cela fonctionne également pour les matériaux opaques.
    • TransparencyWritesDepth : si l’indicateur TransparencyWritesDepth est défini sur le matériau et que celui-ci est transparent, les objets utilisant ce matériau contribueront également au tampon de profondeur final. Consultez la propriété des matériaux de couleur ColorTransparencyMode dans la section suivante. L’activation de cette fonctionnalité est recommandée si votre cas d’usage a besoin d’une Reprojection en phase tardive plus plausible des scènes entièrement transparentes. Pour les scènes opaques/transparentes mixtes, ce réglage peut introduire un comportement ou des artefacts de reprojection invraisemblables. Pour cette raison, le réglage par défaut et recommandé pour le cas d’usage général est de désactiver cet indicateur. Les valeurs de profondeur écrites sont extraites de la couche de profondeur par pixel de l’objet qui est le plus proche de l’appareil photo.
    • FresnelEffect : Cet indicateur de matériau active l’ajout de l’effet Fresnel sur le matériau respectif. L’apparence de l’effet est régie par les autres paramètres de Fresnel FresnelEffectColor et FresnelEffectExponent expliqués ci-dessous.
  • AlbedoColor : cette couleur est multipliée par d’autres couleurs, telles que les couleurs AlbedoMap ou vertex. Si la propriété transparency est activée sur un matériau, le canal alpha est utilisé pour ajuster l’opacité, avec 1 pour entièrement opaque et 0 pour entièrement transparent. La couleur albedo par défaut est blanc opaque.

    Remarque

    Étant donné que les matériaux de couleur ne reflètent pas l’environnement, un matériau de couleur entièrement transparent devient invisible. Il en va différemment pour les matériaux PBR.

  • AlbedoMap : une texture 2D pour les valeurs albedo par pixel.

  • AlphaClipThreshold : si l’indicateur AlphaClipped est défini sur la propriété ColorFlags, tous les pixels où la valeur albedo alpha est inférieure à la valeur de AlphaClipThreshold ne sont pas dessinés. Le détourage alpha peut être utilisé, même sans activation de la transparence, et s’avère nettement plus rapide à rendre. Les matériaux avec détourage alpha sont cependant plus lents à rendre que les matériaux entièrement opaques. Par défaut, le détourage alpha est désactivé.

  • TexCoordMode: définit le mode utilisé pour produire des coordonnées de texture pour la texture Albedo. Ce mode est ignoré si ce matériau n’utilise pas de texture. Par défaut, les coordonnées de texture sont extraites des flux de vertex entrants du maillage (mode TextureCoordinateGenerationMode.SourceUv0 ou TextureCoordinateGenerationMode.SourceUv1) puis transformées par TexCoordScale et TexCoordOffset. Lors de la configuration d’un matériau avec du code, ce mode peut également être défini sur TextureCoordinateGenerationMode.PlanarObjectSpace ou TextureCoordinateGenerationMode.PlanarWorldSpace pour générer les coordonnées en tant que distance de vertex à deux plans 3D configurables TexCoordPlaneU et TexCoordPlaneV. Il s’agit du « mappage de texture planaire ».

  • TexCoordScale et TexCoordOffset: pour les coordonnées de texture du maillage source, une transformation linéaire supplémentaire peut être appliquée. l’échelle est multipliée par les coordonnées de la texture UV, le décalage y est ajouté. Peut être utilisée pour étirer et décaler les textures. La valeur par défaut de l’échelle est de (1, 1) et le décalage est de (0, 0).

  • TexCoordPlaneU et TexCoordPlaneV: pour les modes de mappage planaire, ils définissent respectivement les plans de texture pour la coordonnée u et la coordonnée v. Les plans sont définis selon la forme normale standard (A,B,C,D). Donc, une coordonnée est calculée comme suit : t = Ax + By + C*z + D. La valeur (x,y,z) est la position de vertex dans l’espace du monde ou de l’objet.

  • FresnelEffectColor : Couleur de Fresnel utilisée pour ce matériau. Important uniquement quand l’indicateur de Fresnel a été défini sur ce matériau (voir ci-dessus). Cette propriété contrôle la couleur de base de la brillance de Fresnel (consultez Effet Fresnel pour obtenir une explication complète). Seules les valeurs du canal RVB sont importantes, la valeur alpha est ignorée.

  • FresnelEffectExponent : Exposant de Fresnel utilisé pour ce matériau. Important uniquement quand l’indicateur de Fresnel a été défini sur ce matériau (voir ci-dessus). Cette propriété contrôle la diffusion de la brillance de Fresnel. La valeur minimale 0.01 entraîne une diffusion sur l’ensemble de l’objet. La valeur maximale 10.0 restreint la brillance uniquement aux bords les plus gracieux visibles.

  • VertexMix : cette valeur comprise entre 0 et 1 précise dans quelles proportions la couleur vertex dans un maillage contribue à la couleur finale. Avec la valeur par défaut de 1, la couleur vertex est multipliée complètement par la couleur albedo. Avec la valeur 0, les couleurs vertex sont entièrement ignorées.

  • ColorTransparencyMode : contrairement aux matériaux PBR, les matériaux de couleur se distinguent par différents modes de transparence :

    • Opaque : le mode par défaut désactive la transparence. Par contre, le détourage alpha est toujours possible et doit être préféré, s’il est suffisant.
    • AlphaBlended : ce mode est similaire au mode de transparence pour les matériaux PBR. Il doit être utilisé pour les matériaux transparents, tels que le verre.
    • Additive : ce mode est le mode de transparence le plus simple et le plus avantageux. La contribution du matériau est ajoutée à l’image rendue. Ce mode peut être utilisé pour simuler des objets lumineux (mais toujours transparents), tels que les marqueurs utilisés pour mettre en évidence des objets importants.

Remarque

Alors que AlbedoColor et FresnelEffectColor ont la même plage de valeurs acceptée que pour les matériaux PBR, leurs canaux sont en vérité limités à [0;1] pour les matériaux de couleur.

Remplacements de matériaux de couleur pendant la conversion

Un sous-ensemble de propriétés de matériau de couleur peut être remplacé lors de la conversion du modèle via le fichier de remplacement de matériau. Le tableau suivant montre le mappage entre les propriétés de runtime documentées ci-dessus et le nom de propriété correspondant dans le fichier de remplacement :

Nom de propriété du matériau Nom de la propriété dans le fichier de remplacement
ColorFlags.AlphaClipped alphaClipEnabled
ColorFlags.UseVertexColor useVertexColor
ColorFlags.DoubleSided isDoubleSided
ColorFlags.TransparencyWritesDepth transparencyWritesDepth
AlbedoColor albedoColor
TexCoordScale textureCoordinateScale
TexCoordOffset textureCoordinateOffset
ColorTransparencyMode transparent
AlphaClipThreshold alphaClipThreshold

Documentation de l'API

Étapes suivantes