Megosztás a következőn keresztül:


PBR-anyagok

A PBR-anyagok az Azure Remote Rendering egyik támogatott anyagtípusai . Olyan háromszög alakú hálókhoz használják őket, amelyeknek valósághű megvilágítást kell kapniuk. A pontfelhőket viszont nem befolyásolja a dinamikus világítás.

A PBR a Physically Based Rsárvédőt jelenti, és azt jelenti, hogy az anyag fizikailag elfogadható módon írja le a felület vizuális tulajdonságait, így minden megvilágítási körülmények között reális eredmények érhetők el. A legtöbb modern játékmotor és tartalomkészítő eszköz támogatja a PBR-anyagokat, mivel a valós idejű renderelés legjobb közelítésének tekintik őket.

Helmet glTF sample model rendered by ARR

A fizikai alapú renderelés alapgondolata a BaseColor, a Metalness és a Roughness tulajdonságok használata a valós anyagok széles skáláját emulálja. A PBR részletes leírása meghaladja a jelen cikk hatókörét. A PBR-ről további információt más forrásokban talál.

A PBR-anyagok azonban nem univerzális megoldások. Vannak olyan anyagok, amelyek a betekintési szögtől függően eltérő színt tükröznek. Például néhány szövetet vagy autófestéket. Az ilyen típusú anyagokat nem a szabványos PBR-modell kezeli, és az Azure Remote Rendering jelenleg nem támogatja őket. Ez a korlátozás olyan PBR-bővítményeket tartalmaz, mint például a Vékonyfilm (többrétegű felületek) és a Clear-Coat (autófestékekhez).

PBR anyagtulajdonságok

Az alábbi anyagtulajdonságok a futtatókörnyezeti API-ban érhetők el, például a C# PbrMaterial osztályban vagy a C++ PbrMaterial osztályban.

  • PbrFlags: A misc funkciójelzők ebben a bitmaszkban kombinálhatók a következő funkciók engedélyezéséhez:

    • TransparentMaterial: A PBR-anyagok esetében csak egy átlátszósági beállítás van: engedélyezve van vagy nincs. Az átlátszatlanságot az albedo szín alfa csatornája határozza meg. Ha engedélyezve van, a rendszer egy összetettebb renderelési módszert hív meg félig átlátszó felületek rajzolásához. Az Azure Remote Rendering valós sorrendfüggetlen átláthatóságot (OIT) valósít meg. A transzparens geometria renderelése költséges. Ha csak lyukakra van szüksége egy felületen, például egy fa leveleihez, jobb, ha inkább alfakivágást használ.

    Spheres rendered with zero to full transparency Figyelje meg a fenti képen, hogy a jobb szélső gömb teljesen átlátszó, de a tükröződés továbbra is látható.

    Fontos

    Ha bármely anyagot átlátszatlanról átlátszóra kell váltani futásidőben, a renderelőnek a TileBasedCompositionrenderelési módot kell használnia. Ez a korlátozás nem vonatkozik azokra az anyagokra, amelyek kezdetben átlátszó anyagként vannak átalakítva.

    • UseVertexColor: Ha a háló színeket tartalmazvertex, és ez a beállítás engedélyezve van, a hálók vertex színe megszorozva lesz az és AlbedoMapa AlbedoColor . Alapértelmezés szerint UseVertexColor le van tiltva.
    • DoubleSided: Ha a kétoldalasság igaz értékre van állítva, az ezzel az anyaggal ellátott háromszögek akkor is renderelhetők, ha a kamera a hátlapjukat nézi. A PBR-anyagok esetében a világítás is megfelelően van kiszámítva a hátsó arcokhoz. Alapértelmezés szerint ez a beállítás le van tiltva. Lásd még Single-sided rendering:
    • SpecularHighlights: Engedélyezi a specular highlights for this material. Alapértelmezés szerint a SpecularHighlights jelző engedélyezve van.
    • AlphaClipped: Lehetővé teszi a képpontonkénti kivágásokat, az alfa érték alapján, amely az érték AlphaClipThreshold alatt van (lásd alább). Ez átlátszatlan anyagokra is használható.
    • FresnelEffect: Ez az anyagjelző lehetővé teszi az additív fresnel hatást az adott anyagra. A hatás megjelenését a többi fresnelparaméter FresnelEffectColor szabályozza, és FresnelEffectExponent az alábbiakban ismertetjük.
    • TransparencyWritesDepth: Ha a TransparencyWritesDepth jelölő az anyagra van állítva, és az anyag átlátszó, az ezt az anyagot használó objektumok is hozzájárulnak a végső mélységi pufferhez. A PBR anyagjelzőjének áttetsző megjelenítése a következő szakaszban. A funkció engedélyezését akkor javasoljuk, ha a használati esethez elfogadhatóbb késői fázisú, teljesen transzparens jelenetekre van szükség. Vegyes átlátszatlan/transzparens jelenetek esetén ez a beállítás nem használható újraprojectioni viselkedést vagy újraprojeciós összetevőket eredményezhet. Ezért az általános használati eset alapértelmezett és ajánlott beállítása a jelző letiltása. Az írott mélységi értékek a kamerához legközelebbi objektum képpontonkénti mélységi rétegéből származnak.
  • AlbedoColor: Ez a szín megszorozva van más színekkel, például a AlbedoMap színekkel.vertex Ha az átlátszóság engedélyezve van egy anyagon, az alfa csatornával módosíthatja az átlátszatlanságot, 1 azaz teljesen átlátszatlan és 0 teljesen átlátszó. Az alapértelmezett albedo szín átlátszatlan fehér.

    Megjegyzés:

    Ha egy PBR anyag teljesen átlátszó, mint egy tökéletesen tiszta üvegfelület, akkor is tükrözi a környezetet. A fényes foltok, mint a nap, még mindig láthatók a tükröződésben. Ez a színanyagok esetében más.

  • AlbedoMap: 2D textúra képpontonkénti albedo értékekhez.

  • AlphaClipThreshold: Ha a AlphaClipped jelölő a tulajdonságon van beállítva, az PbrFlags összes olyan képpont, ahol az albedo alfa értéke alacsonyabb, mint AlphaClipThreshold a rajzolás. Az alfakivágás az átláthatóság engedélyezése nélkül is használható, és sokkal gyorsabban renderelhető. Az alfakivágású anyagok azonban továbbra is lassabban renderelnek, mint teljesen átlátszatlan anyagok. Alapértelmezés szerint az alfakivágás le van tiltva.

  • TexCoordScale és TexCoordOffset: A skálát megszorozzák az UV textúra koordinátáira, az eltolás hozzá lesz adva. Használható a textúrák nyújtására és eltolására. Az alapértelmezett skálázás (1, 1), az eltolás pedig (0, 0).

  • FresnelEffectColor: Az anyaghoz használt fresnel szín. Csak akkor fontos, ha a fresnel effektus jelzője be van állítva ezen az anyagon (lásd fent). Ez a tulajdonság szabályozza a fresnel ragyogásának alapszínét (a teljes magyarázatért lásd a fresnel effektust ). Jelenleg csak az RGB-csatorna értékei fontosak, és az alfaérték figyelmen kívül lesz hagyva.

  • FresnelEffectExponent: Az anyaghoz használt fresnel kitevő. Csak akkor fontos, ha a fresnel effektus jelzője be van állítva ezen az anyagon (lásd fent). Ez a tulajdonság szabályozza a fresnel ragyogásának terjedését. A 0,01 minimális érték az egész objektumra kiterjedő eloszlást okoz. A 10,0 maximális érték csak a legeltetés legeltetési széleire korlátozza a ragyogást.

  • PbrVertexAlphaMode: Meghatározza a csúcsszínek alfa csatornájának használatát. A következő módok érhetők el:

    • Occlusion: Az alfa érték környezeti elzáródási értéket jelöl, ezért csak az égmező közvetett megvilágítására van hatással.
    • LightMask: Az alfa érték skálázási tényezőként szolgál az alkalmazott világítás teljes mennyiségéhez, ami azt jelenti, hogy az alfa használható a területek sötétítésére. Ez a közvetett és a közvetlen világításra is hatással van.
    • Opacity: Az alfa azt jelzi, hogy az anyag mennyire átlátszó (1,0) vagy átlátszó (0,0).
  • NormalMap: A részletes részletek szimulálásához normál térképet is megadhat.

  • NormalMapScale: Skaláris érték, amely a normál térképerősséget skálázza. Az 1,0 érték a normál térkép normál értékét veszi fel, a 0 érték pedig lapossá teszi a felületet. Az 1,0-nál nagyobb értékek eltúlozják a normál térkép-perturbációt.

  • Roughness és RoughnessMap: Az érdesség határozza meg, hogy milyen durva vagy sima a felület. A durva felületek több irányban szórják el a fényt, mint a sima felületek, amelyek a tükröződéseket éles helyett homályossá teszik. Az értéktartomány a feladótól 0.0 a .1.0 Ha Roughness egyenlő 0.0, a tükröződések élesek lesznek. Ha Roughness egyenlő 0.5, a tükröződések elmosódnak. Ha mind az érdességérték, mind az érdességtérkép meg van adva, a végső érték a kettő szorzata lesz.

  • Metalness és MetalnessMap: A fizikában ez a tulajdonság megfelel annak, hogy egy felület vezető vagy dielektromos-e. A vezető anyagok különböző fényvisszaverő tulajdonságokkal rendelkeznek, és általában fényvisszaverőek, albedo szín nélkül. A PBR-anyagokban ez a tulajdonság befolyásolja, hogy egy felület mennyire tükrözi a környező környezetet. Az értékek tartománya: 0.01.0. Ha a fém, 0.0az albedo szín teljesen látható, és az anyag úgy néz ki, mint a műanyag vagy kerámia. Amikor a 0.5fém, úgy néz ki, mint a festett fém. Ha a fémesség, 1.0a felület szinte teljesen elveszíti albedo színét, és csak a környezetet tükrözi. Például, ha metalness van 1.0 , és roughness0.0 akkor egy felület úgy néz ki, mint a valós tükör. Ha mind a fémességi érték, mind a fémességi térkép meg van adva, a végső érték a kettő szorzata lesz.

    Spheres rendered with different metalness and roughness values

    A fenti képen a jobb alsó sarokban lévő gömb valódi fém anyagnak tűnik, a bal alsó pedig kerámia vagy műanyag. Az albedo színe a fizikai tulajdonságoknak megfelelően is változik. A növekvő érdesség miatt az anyag elveszíti a tükröződés élességét.

  • AOMap és AOScale: A környezeti elzáródás valósághűbbé teszi a hasadékokkal rendelkező objektumokat azáltal, hogy árnyékokat ad az elzárt területekhez. Az elzáródás értéke a következőtől 0.0 aig 1.0terjed, ahol 0.0 sötétséget (elzárt) jelent, és 1.0 nem jelent elzáródást. Ha a 2D textúra elzáródási térképként van megadva, az effektus engedélyezve van, és AOScale szorzóként működik.

    An object rendered with and without ambient occlusion

Színanyagok felülbírálása az átalakítás során

A színanyag tulajdonságainak egy részhalmaza felülbírálható a modell átalakítása során az anyag felülbírálási fájlon keresztül. Az alábbi táblázat a fent dokumentált futtatókörnyezeti tulajdonságok és a felülbírálási fájl megfelelő tulajdonságneve közötti megfeleltetést mutatja be:

Anyagtulajdonság neve Tulajdonságnév a felülbírálási fájlban
PbrFlags.TransparentMaterial transparent
PbrFlags.AlphaClipped alphaClipEnabled
PbrFlags.UseVertexColor useVertexColor
PbrFlags.DoubleSided isDoubleSided
PbrFlags.TransparencyWritesDepth transparencyWritesDepth
AlbedoColor albedoColor
TexCoordScale textureCoordinateScale
TexCoordOffset textureCoordinateOffset
NormalmapScale normalMapScale
Metalness metalness
Roughness roughness
AlphaClipThreshold alphaClipThreshold

Technikai részletek

Az Azure Remote Rendering a Cook-Torrance mikro aspektusú BRDF-t használja a GGX NDF,a Schlick Fresnel és a GGX Smith korrelált láthatósági kifejezéssel lambert diffúz kifejezéssel. Ez a modell jelenleg a de facto iparági szabvány. További részletes részletekért tekintse meg ezt a cikket: Fizikai alapú renderelés – Cook Torrance

Az Azure Remote Renderingben használt Metalness-Roughness PBR modell alternatíva a Specular-Glossiness PBR modell. Ez a modell az anyagok szélesebb körét képviselheti. Ez azonban drágább, és általában nem működik jól a valós idejű esetekhez. A Specular-Glossiness és a Metalness-Roughness közötti konvertálás nem mindig lehetséges, mivel vannak olyan (diffúz, spekuláris) értékpárok, amelyek nem konvertálhatók (BaseColor, Metalness) értékpárokká. A másik irányban az átalakítás egyszerűbb és pontosabb, mivel minden (BaseColor, Metalness) pár jól definiált (Diffúz, Spekuláris) pároknak felel meg.

API-dokumentáció

Következő lépések