Barevné materiály
Barevné materiály jsou jedním z podporovaných typů materiálů ve službě Azure Remote Rendering. Používají se pro sítě , které by neměly přijímat žádný druh osvětlení, ale spíše se vždy objevují v plném jasu. To může být případ "záře" materiálů, jako jsou řídicí panely aut, žárovky nebo data, která již obsahují statické osvětlení, jako jsou modely získané prostřednictvím fotogrammetrie.
Barevné materiály jsou efektivnější k vykreslení než materiály PBR z důvodu jejich jednoduššího stínovacího modelu. Podporují také různé režimy průhlednosti.
Vlastnosti barevného materiálu
Následující vlastnosti materiálu jsou zpřístupněny v rozhraní API modulu runtime, například ve třídě C# ColorMaterial nebo C++ ColorMaterial třídy, v uvedeném pořadí.
ColorFlags
: Různé příznaky funkcí lze v této bitové masce kombinovat, aby bylo možné povolit následující funkce:UseVertexColor
: Pokud síť obsahuje vertex barvy a tato možnost je povolená, barva sítě vertex se vynásobí doAlbedoColor
aAlbedoMap
. Ve výchozím nastaveníUseVertexColor
je zakázáno.DoubleSided
: Pokud je oboustrannost nastavena na true, trojúhelníky s tímto materiálem jsou vykresleny i v případě, že fotoaparát dívá na jejich zadní tváře. Ve výchozím nastavení je tato možnost zakázaná. Viz také Single-sided rendering.AlphaClipped
: Umožňuje pevné výřezy na pixelech na základě alfa hodnoty pod hodnotouAlphaClipThreshold
(viz níže). To funguje i pro neprůhlené materiály.TransparencyWritesDepth
: PokudTransparencyWritesDepth
je příznak nastaven na materiál a materiál je průhledný, objekty používající tento materiál také přispívají do konečné hloubkové vyrovnávací paměti. Podívejte se na vlastnostColorTransparencyMode
barevného materiálu v další části. Povolení této funkce se doporučuje, pokud váš případ použití vyžaduje srozumitelnější pozdní reprojektování plně transparentních scén. U smíšených neprůhledných nebo průhledných scén může toto nastavení zavádět neschválné chování při přeprojektování nebo artefakty opětovného projektu. Z tohoto důvodu je výchozím a doporučeným nastavením pro obecný případ použití tento příznak zakázat. Zapsané hodnoty hloubky jsou převzaty z hloubkové vrstvy jednotlivých pixelů objektu, který je nejblíže fotoaparátu.FresnelEffect
: Tento příznak materiálu umožňuje doplňkové fresnelové účinky na příslušný materiál. Vzhled efektu se řídí jinými fresnelovými parametryFresnelEffectColor
aFresnelEffectExponent
vysvětlujeme níže.
AlbedoColor
: Tato barva se vynásobí jinými barvami, napříkladAlbedoMap
barvami nebo vertex barvami. Pokud je u materiálu povolena průhlednost , alfa kanál slouží k úpravě neprůhlednosti, s1
významem zcela neprůhledné a0
zcela průhledné. Výchozí barva albedo je neprůhledná bílá.Poznámka:
Vzhledem k tomu, že barevné materiály neodráží prostředí, je zcela průhledný barevný materiál neviditelný. To se liší pro materiály PBR.
AlbedoMap
: 2D textura pro hodnoty albedo na pixel.AlphaClipThreshold
: PokudAlphaClipped
je příznak nastaven naColorFlags
vlastnost, všechny pixely, kde je albedo alfa hodnota nižší než hodnotaAlphaClipThreshold
nebude nakreslena. Alfa výřez lze použít i bez povolení průhlednosti a je mnohem rychlejší vykreslování. Alfa oříznuté materiály jsou ale stále pomalejší než plně neprůzné materiály. Ve výchozím nastavení je výřez alfa zakázaný.TexCoordMode
: Definuje režim, který se používá k vytváření souřadnic textury pro albedo textury. Tento režim se ignoruje, pokud tento materiál nepoužívá texturu. Ve výchozím nastavení jsou souřadnice textury načteny ze vstupních vrcholů sítě (režimTextureCoordinateGenerationMode.SourceUv0
neboTextureCoordinateGenerationMode.SourceUv1
) a pak transformovány prostřednictvímTexCoordScale
aTexCoordOffset
. Při nastavování materiálu prostřednictvím kódu lze tento režim nastavitTextureCoordinateGenerationMode.PlanarObjectSpace
TextureCoordinateGenerationMode.PlanarWorldSpace
nebo vygenerovat souřadnice jako vzdálenost vrcholu do dvou konfigurovatelných 3D rovinTexCoordPlaneU
aTexCoordPlaneV
. Označuje se jako "mapování planární textury".TexCoordScale
aTexCoordOffset
: Pro souřadnice textury ze zdrojové sítě lze použít extra lineární transformaci. Měřítko se vynásobí do souřadnic textury UV, posun se k němu přidá. Lze použít k roztažení a posunu textur. Výchozí měřítko je (1, 1) a posun je (0, 0).TexCoordPlaneU
aTexCoordPlaneV
: Pro režimy plánování mapování tyto definují roviny textury pro souřadnici u a souřadnici v uvedeném pořadí. Roviny jsou definovány ve standardní normální podobě (A,B,C,D), takže souřadnice se vypočítá jako t = Ax + By + C*z + D, kde (x,y,z) je pozice vrcholu ve světě nebo prostoru objektů.FresnelEffectColor
: Barva fresnelu použitá pro tento materiál. Pouze důležité, pokud je příznak fresnel efektu nastaven na tento materiál (viz výše). Tato vlastnost řídí základní barvu fresnel lesku (viz fresnel efekt pro úplné vysvětlení). V současné době jsou důležité jenom hodnoty kanálu RGB a alfa hodnota bude ignorována.FresnelEffectExponent
: Fresnel exponent použitý pro tento materiál. Pouze důležité, pokud je příznak fresnel efektu nastaven na tento materiál (viz výše). Tato vlastnost řídí šíření fresnel lesku. Minimální hodnota 0,01 způsobí rozložení mezi celý objekt. Maximální hodnota 10,0 zúží lesk pouze na nejvíce viditelných hrany.VertexMix
: Tato hodnota mezi0
a1
určuje, jak silná vertex barva v síti přispívá k konečné barvě. Ve výchozí hodnotě 1 vertex se barva plně vynásobí na barvu albedo. S hodnotou 0 vertex se barvy ignorují zcela.ColorTransparencyMode
: Na rozdíl od materiálů PBR se barevné materiály rozlišují mezi různými režimy průhlednosti:Opaque
: Výchozí režim zakáže průhlednost. Alfa výřez je ale stále možný a měl by být upřednostňovaný, pokud je dostatečný.AlphaBlended
: Tento režim je podobný režimu průhlednosti pro materiály PBR. Měla by být použita pro prohlédnou materiály, jako je sklo.Additive
: Tento režim je nejjednodušší a nejúčinnější režim průhlednosti. Příspěvek materiálu se přidá do vykresleného obrázku. Tento režim lze použít k simulaci záře (ale stále průhledných) objektů, jako jsou značky používané ke zvýraznění důležitých objektů.
Poznámka:
I když AlbedoColor
a FresnelEffectColor
mají stejný rozsah hodnot jako u materiálů PBR, jejich kanály budou účinně uchyceny na [0; 1] pro barevné materiály.
Přepsání barevných materiálů během převodu
Během převodu modelu prostřednictvím souboru přepsání materiálu lze přepsat podmnožinu vlastností barevného materiálu. Následující tabulka ukazuje mapování mezi vlastnostmi modulu runtime zdokumentovanými výše a odpovídajícím názvem vlastnosti v souboru přepsání:
Název vlastnosti materiálu | Název vlastnosti v souboru přepsání |
---|---|
ColorFlags.AlphaClipped |
alphaClipEnabled |
ColorFlags.UseVertexColor |
useVertexColor |
ColorFlags.DoubleSided |
isDoubleSided |
ColorFlags.TransparencyWritesDepth |
transparencyWritesDepth |
AlbedoColor |
albedoColor |
TexCoordScale |
textureCoordinateScale |
TexCoordOffset |
textureCoordinateOffset |
ColorTransparencyMode |
transparent |
AlphaClipThreshold |
alphaClipThreshold |
Dokumentace k rozhraní API
- C# ColorMaterial – třída
- C# RenderingConnection.CreateMaterial()
- C++ ColorMaterial – třída
- C++ RenderingConnection::CreateMaterial()
Další kroky
- Materiály PBR
- Textury
- Sítě
- Soubory přepsání materiálu