Sdílet prostřednictvím


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í do AlbedoColor a AlbedoMap. 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 hodnotou AlphaClipThreshold (viz níže). To funguje i pro neprůhlené materiály.
    • TransparencyWritesDepth: Pokud TransparencyWritesDepth 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 vlastnost ColorTransparencyMode 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 parametry FresnelEffectColor a FresnelEffectExponent vysvětlujeme níže.
  • AlbedoColor: Tato barva se vynásobí jinými barvami, například AlbedoMap barvami nebo vertex barvami. Pokud je u materiálu povolena průhlednost , alfa kanál slouží k úpravě neprůhlednosti, s 1 významem zcela neprůhledné a 0 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: Pokud AlphaClipped je příznak nastaven na ColorFlags vlastnost, všechny pixely, kde je albedo alfa hodnota nižší než hodnota AlphaClipThreshold 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žim TextureCoordinateGenerationMode.SourceUv0 nebo TextureCoordinateGenerationMode.SourceUv1) a pak transformovány prostřednictvím TexCoordScale a TexCoordOffset. Při nastavování materiálu prostřednictvím kódu lze tento režim nastavit TextureCoordinateGenerationMode.PlanarObjectSpace TextureCoordinateGenerationMode.PlanarWorldSpace nebo vygenerovat souřadnice jako vzdálenost vrcholu do dvou konfigurovatelných 3D rovin TexCoordPlaneU a TexCoordPlaneV. Označuje se jako "mapování planární textury".

  • TexCoordScale a TexCoordOffset: 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 a TexCoordPlaneV: 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 mezi 0 a 1 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

Další kroky