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 parAlbedoColor
etAlbedoMap
. 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 deAlphaClipThreshold
(voir ci-dessous). Cela fonctionne également pour les matériaux opaques.TransparencyWritesDepth
: si l’indicateurTransparencyWritesDepth
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 couleurColorTransparencyMode
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 FresnelFresnelEffectColor
etFresnelEffectExponent
expliqués ci-dessous.
AlbedoColor
: cette couleur est multipliée par d’autres couleurs, telles que les couleursAlbedoMap
ou vertex. Si la propriété transparency est activée sur un matériau, le canal alpha est utilisé pour ajuster l’opacité, avec1
pour entièrement opaque et0
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’indicateurAlphaClipped
est défini sur la propriétéColorFlags
, tous les pixels où la valeur albedo alpha est inférieure à la valeur deAlphaClipThreshold
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 (modeTextureCoordinateGenerationMode.SourceUv0
ouTextureCoordinateGenerationMode.SourceUv1
) puis transformées parTexCoordScale
etTexCoordOffset
. Lors de la configuration d’un matériau avec du code, ce mode peut également être défini surTextureCoordinateGenerationMode.PlanarObjectSpace
ouTextureCoordinateGenerationMode.PlanarWorldSpace
pour générer les coordonnées en tant que distance de vertex à deux plans 3D configurablesTexCoordPlaneU
etTexCoordPlaneV
. Il s’agit du « mappage de texture planaire ».TexCoordScale
etTexCoordOffset
: 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
etTexCoordPlaneV
: 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 entre0
et1
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
- ColorMaterial, classe C#
- C# RenderingConnection.CreateMaterial()
- ColorMaterial, classe C++
- C++ RenderingConnection::CreateMaterial()