Färgmaterial
Färgmaterial är en av de materialtyper som stöds i Azure Remote Rendering. De används för nät som inte ska få någon form av belysning, utan som alltid visas med full ljusstyrka. Detta kan vara fallet för "glödande" material, till exempel bilinstrumentpaneler, glödlampor eller för data som redan innehåller statisk belysning, till exempel modeller som erhålls via fotogrammetri.
Färgmaterial är mer effektiva att återge än PBR-material på grund av deras enklare skuggningsmodell. De stöder också olika transparenslägen.
Egenskaper för färgmaterial
Följande materialegenskaper exponeras i körnings-API:et, till exempel i klassen C# ColorMaterial eller klassen C++ ColorMaterial.
ColorFlags
: Diverse funktionsflaggor kan kombineras i den här bitmasken för att aktivera följande funktioner:UseVertexColor
: Om nätet innehåller vertex färger och det här alternativet är aktiverat multipliceras maskans vertex färg iAlbedoColor
ochAlbedoMap
. Som standardUseVertexColor
är inaktiverat.DoubleSided
: Om dubbelsidighet är inställt på sant återges trianglar med detta material även om kameran tittar på deras baksidor. Som standard är det här alternativet inaktiverat. Se även Single-sided rendering.AlphaClipped
: Aktiverar hårda utskärningar per bildpunkt, baserat på att alfavärdet ligger under värdetAlphaClipThreshold
för (se nedan). Detta fungerar även för ogenomskinliga material.TransparencyWritesDepth
: OmTransparencyWritesDepth
flaggan är inställd på materialet och materialet är transparent, kommer objekt som använder detta material också att bidra till den slutliga djupbufferten. Se egenskapenColorTransparencyMode
färgmaterial i nästa avsnitt. Att aktivera den här funktionen rekommenderas om ditt användningsfall behöver en mer rimlig omprojektion i sent skede av helt transparenta scener. För blandade ogenomskinliga/transparenta scener kan den här inställningen introducera osannolikt reprojectionbeteende eller reprojectionartefakter. Därför är standardinställningen och den rekommenderade inställningen för det allmänna användningsfallet att inaktivera den här flaggan. De skriftliga djupvärdena hämtas från djupskiktet per bildpunkt för det objekt som är närmast kameran.FresnelEffect
: Denna materialflagga möjliggör den additiva fresneleffekten på respektive material. Effektens utseende styrs av de andra fresnelparametrarnaFresnelEffectColor
ochFresnelEffectExponent
förklaras nedan.
AlbedoColor
: Den här färgen multipliceras med andra färger, till exempelAlbedoMap
färgerna eller vertex . Om transparens aktiveras på ett material används alfakanalen för att justera opaciteten, vilket1
innebär att den är helt ogenomskinlig och0
betyder helt transparent. Standardfärgen för albedo är ogenomskinlig vit.Kommentar
Eftersom färgmaterial inte återspeglar miljön blir ett helt transparent färgmaterial osynligt. Detta skiljer sig åt för PBR-material.
AlbedoMap
: En 2D-struktur för albedo-värden per pixel.AlphaClipThreshold
: OmAlphaClipped
flaggan anges förColorFlags
egenskapen ritas inte alla bildpunkter där albedo-alfavärdet är lägre än värdetAlphaClipThreshold
för . Alfaurklipp kan användas även utan att aktivera transparens och är mycket snabbare att rendera. Alfaklippta material är dock fortfarande långsammare att återge än helt ogenomskinliga material. Som standard är alfaurklipp inaktiverat.TexCoordMode
: Definierar det läge som används för att producera strukturkoordinater för albedo-strukturen. Det här läget ignoreras om det här materialet inte använder en struktur. Som standard hämtas strukturkoordinaterna från nätens indatahörnströmmar (lägeTextureCoordinateGenerationMode.SourceUv0
ellerTextureCoordinateGenerationMode.SourceUv1
) och transformeras sedan genomTexCoordScale
ochTexCoordOffset
. När du konfigurerar ett material via kod kan det här läget också ställas in påTextureCoordinateGenerationMode.PlanarObjectSpace
ellerTextureCoordinateGenerationMode.PlanarWorldSpace
generera koordinaterna som hörnavståndet till två konfigurerbara 3D-planTexCoordPlaneU
ochTexCoordPlaneV
. Detta kallas "planar texture mapping".TexCoordScale
ochTexCoordOffset
: För strukturkoordinater från källnätet kan en extra linjär transformering tillämpas. Skalan multipliceras till UV-strukturkoordinaterna, förskjutningen läggs till i den. Kan användas för att sträcka och flytta texturerna. Standardskalan är (1, 1) och förskjutningen är (0, 0).TexCoordPlaneU
ochTexCoordPlaneV
: För planarmappningslägen definierar dessa texturplan för u-koordinat respektive v-koordinat. Plan definieras i normal standardform (A,B,C,D), så en koordinat beräknas som t = Ax + By + C*z + D, där (x,y,z) är hörnpositionen i antingen värld eller objektutrymme.FresnelEffectColor
: Fresnelfärgen som används för detta material. Endast viktigt när fresneleffektflaggan har ställts in på detta material (se ovan). Den här egenskapen styr basfärgen för fresnelglansen (se fresneleffekten för en fullständig förklaring). För närvarande är endast RGB-kanalvärdena viktiga och alfavärdet ignoreras.FresnelEffectExponent
: Fresnel exponenten som används för detta material. Endast viktigt när fresneleffektflaggan har ställts in på detta material (se ovan). Den här egenskapen styr spridningen av fresnelglansen. Minimivärdet 0,01 orsakar en spridning över hela objektet. Det maximala värdet 10,0 begränsar glansen till endast de mest beteskanterna som syns.VertexMix
: Det här värdet mellan0
och1
anger hur starkt vertex färgen i ett nät bidrar till den slutliga färgen. Med standardvärdet 1 vertex multipliceras färgen till albedofärgen helt. Med värdet 0 vertex ignoreras färgerna helt.ColorTransparencyMode
: I motsats till PBR-material skiljer färgmaterial mellan olika transparenslägen:Opaque
: Standardläget inaktiverar transparens. Alfaurklipp är dock fortfarande möjligt och bör föredras om det räcker.AlphaBlended
: Det här läget liknar transparensläget för PBR-material. Det bör användas för genomskinliga material som glas.Additive
: Det här läget är det enklaste och mest effektiva transparensläget. Materialets bidrag läggs till i den renderade bilden. Det här läget kan användas för att simulera glödande (men fortfarande transparenta) objekt, till exempel markörer som används för att markera viktiga objekt.
Kommentar
Medan AlbedoColor
och FresnelEffectColor
har samma godkända värdeintervall som för PBR-material, kommer deras kanaler effektivt att klämmas till [0; 1] för Färgmaterial.
Åsidosättningar av färgmaterial under konvertering
En delmängd av egenskaper för färgmaterial kan åsidosättas under modellkonverteringen via den materiella åsidosättningsfilen. I följande tabell visas mappningen mellan körningsegenskaperna ovan och motsvarande egenskapsnamn i åsidosättningsfilen:
Namn på materialegenskap | Egenskapsnamn i åsidosättningsfil |
---|---|
ColorFlags.AlphaClipped |
alphaClipEnabled |
ColorFlags.UseVertexColor |
useVertexColor |
ColorFlags.DoubleSided |
isDoubleSided |
ColorFlags.TransparencyWritesDepth |
transparencyWritesDepth |
AlbedoColor |
albedoColor |
TexCoordScale |
textureCoordinateScale |
TexCoordOffset |
textureCoordinateOffset |
ColorTransparencyMode |
transparent |
AlphaClipThreshold |
alphaClipThreshold |
API-dokumentation
- Klassen C# ColorMaterial
- C# RenderingConnection.CreateMaterial()
- C++ ColorMaterial-klass
- C++ RenderingConnection::CreateMaterial()