Delen via


Kleurmaterialen

Kleurmaterialen zijn een van de ondersteunde materiaaltypen in Azure Remote Rendering. Ze worden gebruikt voor meshes die geen soort verlichting mogen ontvangen, maar worden altijd weergegeven met volledige helderheid. Dit kan het geval zijn voor 'gloeiende' materialen, zoals autodashboards, gloeilampen of voor gegevens die al statische verlichting bevatten, zoals modellen die zijn verkregen via fotogrammetrie.

Kleurmaterialen zijn efficiënter te renderen dan PBR-materialen vanwege hun eenvoudiger arceringsmodel. Ze ondersteunen ook verschillende transparantiemodi.

Eigenschappen van kleurmateriaal

De volgende materiaaleigenschappen worden weergegeven in de runtime-API, bijvoorbeeld in de klasse C# ColorMaterial of de klasse C++ ColorMaterial.

  • ColorFlags: Diverse functievlagmen kunnen worden gecombineerd in dit bitmasker om de volgende functies in te schakelen:

    • UseVertexColor: Als het mesh kleuren bevat vertex en deze optie is ingeschakeld, wordt de kleur van vertex het mesh vermenigvuldigd in de AlbedoColor en AlbedoMap. UseVertexColor Standaard is uitgeschakeld.
    • DoubleSided: Als dubbelzijdigheid is ingesteld op waar, worden driehoeken met dit materiaal weergegeven, zelfs als de camera naar hun ruggezichten kijkt. Deze optie is standaard uitgeschakeld. Zie ook Single-sided rendering.
    • AlphaClipped: Maakt harde uitsnedes per pixel mogelijk, op basis van de alfawaarde die onder de waarde van AlphaClipThreshold (zie hieronder) wordt weergegeven. Dit werkt ook voor ondoorzichtige materialen.
    • TransparencyWritesDepth: Als de TransparencyWritesDepth vlag is ingesteld op het materiaal en het materiaal transparant is, dragen objecten die dit materiaal gebruiken ook bij aan de uiteindelijke dieptebuffer. Zie de eigenschap ColorTransparencyMode kleurmateriaal in de volgende sectie. Het inschakelen van deze functie wordt aanbevolen als uw use-case een plausibele latere fase-herprojectie van volledig transparante scènes nodig heeft. Voor gemengde ondoorzichtige/transparante scènes kan deze instelling onoplettend gedrag voor herprojectie of reprojectieartefacten veroorzaken. Daarom is de standaardinstelling en de aanbevolen instelling voor de algemene use-case om deze vlag uit te schakelen. De geschreven dieptewaarden worden genomen uit de dieptelaag per pixel van het object dat zich het dichtst bij de camera bevindt.
    • FresnelEffect: Deze materiaalvlag maakt het additieve fresnel-effect op het respectieve materiaal mogelijk. Het uiterlijk van het effect wordt bepaald door de andere fresnelparameters FresnelEffectColor en FresnelEffectExponent hieronder uitgelegd.
  • AlbedoColor: Deze kleur wordt vermenigvuldigd met andere kleuren, zoals de AlbedoMap of vertex kleuren. Als transparantie is ingeschakeld voor een materiaal, wordt het alfakanaal gebruikt om de dekking aan te passen, met 1 betekenis volledig ondoorzichtig en 0 betekenis volledig transparant. De standaardkleur van albedo is ondoorzichtig wit.

    Notitie

    Omdat kleurmaterialen de omgeving niet weerspiegelen, wordt een volledig transparant kleurmateriaal onzichtbaar. Dit is anders voor PBR-materialen.

  • AlbedoMap: Een 2D-patroon voor albedo-waarden per pixel.

  • AlphaClipThreshold: Als de AlphaClipped vlag is ingesteld op de ColorFlags eigenschap, worden alle pixels waarvan de albedo alpha-waarde lager is dan de waarde ervan AlphaClipThreshold niet getekend. Alfa-knipsels kunnen zelfs worden gebruikt zonder transparantie in te schakelen en is veel sneller weer te geven. Alfaclipmaterialen zijn echter nog steeds trager dan volledig ondoorzichtige materialen. Alfa-knipsels zijn standaard uitgeschakeld.

  • TexCoordMode: Hiermee definieert u de modus die wordt gebruikt voor het produceren van patrooncoördinaten voor de albedo-textuur. Deze modus wordt genegeerd als dit materiaal geen textuur gebruikt. Standaard worden de patrooncoördinaten opgehaald uit de invoerpuntstromen van de mesh (modus TextureCoordinateGenerationMode.SourceUv0 of TextureCoordinateGenerationMode.SourceUv1) en vervolgens getransformeerd door TexCoordScale en TexCoordOffset. Bij het instellen van een materiaal via code kan deze modus ook worden ingesteld TextureCoordinateGenerationMode.PlanarObjectSpace op of TextureCoordinateGenerationMode.PlanarWorldSpace om de coördinaten te genereren als hoekpuntafstand tot twee configureerbare 3D-vlakken TexCoordPlaneU en TexCoordPlaneV. Dit wordt 'planar texture mapping' genoemd.

  • TexCoordScale en TexCoordOffset: Voor patrooncoördinaten van bronnet kan een extra lineaire transformatie worden toegepast. De schaal wordt vermenigvuldigd in de UV-patrooncoördinaten, de offset wordt eraan toegevoegd. Kan worden gebruikt om de patronen uit te rekken en te verplaatsen. De standaardschaal is (1, 1) en offset is (0, 0).

  • TexCoordPlaneU en TexCoordPlaneV: voor planaire toewijzingsmodi definiëren deze respectievelijk de patroonvlakken voor de u-coördinaat en v-coördinaat. Vlakken worden gedefinieerd in normale standaardvorm (A,B,C,D), zodat een coördinaat wordt berekend als t = Ax + By + C*z + D, waarbij (x,y,z) de hoekpuntpositie is in de wereld of objectruimte.

  • FresnelEffectColor: De fresnelkleur die voor dit materiaal wordt gebruikt. Alleen belangrijk wanneer de fresnel effectvlag is ingesteld op dit materiaal (zie hierboven). Deze eigenschap bepaalt de basiskleur van de fresnel glans (zie fresnel effect voor een volledige uitleg). Momenteel zijn alleen de RGB-kanaalwaarden belangrijk en wordt de alfawaarde genegeerd.

  • FresnelEffectExponent: De fresnel exponent gebruikt voor dit materiaal. Alleen belangrijk wanneer de fresnel effectvlag is ingesteld op dit materiaal (zie hierboven). Deze accommodatie bepaalt de verspreiding van de fresnel glans. De minimumwaarde 0,01 veroorzaakt een spread over het hele object. De maximumwaarde 10,0 zorgt ervoor dat alleen de meest begrazingsranden zichtbaar zijn.

  • VertexMix: Deze waarde tussen 0 en 1 geeft aan hoe sterk de vertex kleur in een mesh bijdraagt aan de uiteindelijke kleur. Bij de standaardwaarde van 1 wordt de vertex kleur vermenigvuldigd in de albedo-kleur volledig. Met een waarde van 0 worden de vertex kleuren volledig genegeerd.

  • ColorTransparencyMode: In tegenstelling tot PBR-materialen maken kleurenmaterialen onderscheid tussen verschillende transparantiemodi:

    • Opaque: De standaardmodus schakelt transparantie uit. Alfaopname is echter nog steeds mogelijk en moet de voorkeur hebben, indien voldoende.
    • AlphaBlended: Deze modus is vergelijkbaar met de transparantiemodus voor PBR-materialen. Het moet worden gebruikt voor see-through materialen zoals glas.
    • Additive: Deze modus is de eenvoudigste en meest efficiënte transparantiemodus. De bijdrage van het materiaal wordt toegevoegd aan de gerenderde afbeelding. Deze modus kan worden gebruikt om gloedende (maar nog transparante) objecten te simuleren, zoals markeringen die worden gebruikt voor het markeren van belangrijke objecten.

Notitie

Hoewel AlbedoColor en FresnelEffectColor hetzelfde geaccepteerde waardebereik hebben als voor PBR-materialen, worden hun kanalen effectief vastgeklemd tot [0; 1] voor kleurmaterialen.

Kleurmateriaal overschrijft tijdens conversie

Een subset van eigenschappen van het kleurmateriaal kan tijdens de modelconversie worden overschreven via het materiaaloverschrijvingsbestand. In de volgende tabel ziet u de toewijzing tussen de hierboven beschreven runtime-eigenschappen en de bijbehorende eigenschapsnaam in het onderdrukkingsbestand:

Naam van materiaaleigenschap Naam van eigenschap in onderdrukkingsbestand
ColorFlags.AlphaClipped alphaClipEnabled
ColorFlags.UseVertexColor useVertexColor
ColorFlags.DoubleSided isDoubleSided
ColorFlags.TransparencyWritesDepth transparencyWritesDepth
AlbedoColor albedoColor
TexCoordScale textureCoordinateScale
TexCoordOffset textureCoordinateOffset
ColorTransparencyMode transparent
AlphaClipThreshold alphaClipThreshold

API-documentatie

Volgende stappen