MRTK standard árnyékoló

Standard árnyékolási példák

Az MRTK Standard árnyékolási rendszer egyetlen, rugalmas árnyékolót használ, amely a Unity Standard Shaderéhez hasonló vizualizációkat képes elérni, Fluent Design rendszer-alapelveket implementálja, és továbbra is nagy teljesítményben tud teljesíteni vegyes valóságú eszközökön.

Példajelenetek

Az árnyékoló anyagra a MaterialGallery-jelenetben találhat példákat a alatt. Ebben a jelenetben minden anyag az MRTK/Standard árnyékolót használja.

Material Gallery

Egy összehasonlító jelenetben összehasonlíthatja és tesztelheti az MRTK/Standard árnyékolót a StandardMaterialComparison-jelenet Unity/Standard árnyékoló példáihoz képest a alatt.

Anyag-összehasonlítás

Architektúra

Az MRTK/Standard árnyékolási rendszer egy "uber shader", amely a Unity árnyékolóprogram-változat funkcióját használja az anyagtulajdonságok alapján optimális árnyékolókód automatikus létrehozásához. Amikor egy felhasználó anyagtulajdonságokat választ ki az anyag vizsgálóban, csak az engedélyezett funkciók teljesítményköltségét kell eredményezni.

Material Inspector

Az MRTK/Standard árnyékolóhoz létezik egy nevű egyéni MixedRealityStandardShaderGUI.cs anyagvizsgálő. A vizsgáló automatikusan engedélyezi vagy letiltja az árnyékoló funkciókat a felhasználó kiválasztása és a renderelési állapot beállítása során nyújtott szolgáltatás alapján. Az egyes funkciókkal kapcsolatos további információkért vigye az egérmutatót az egyes tulajdonság fölé a Unity-szerkesztőben elemleírásért.

Material Inspector

Az inspector első része szabályozza az anyag renderelési állapotát. A renderelési mód határozza meg az anyag renderelésének módját és módját. Az MRTK/Standard árnyékoló célja a Unity/Standardárnyékolóban található renderelési módok tükrözése. Az MRTK/Standard árnyékoló additív renderelési módot és egyéni renderelési módot is tartalmaz a teljes felhasználói vezérléshez.

Renderelési mód Leírás
Átlátszatlan (Alapértelmezett) Normál folytonos objektumokhoz megfelelő, transzparens területek nélkül.
Kivágott Lehetővé teszi olyan átlátszó hatások létrehozását, amelyek kemény élekkel vannak az átlátszatlan és a transzparens területek között. Ebben a módban nincsenek félig átlátszó területek, a textúra vagy 100%-os átlátszatlan, vagy láthatatlan. Ez akkor hasznos, ha átlátszóságot használ az anyagok, például a növények alakjának létrehozásához.
Fade Lehetővé teszi, hogy az átlátszósági értékek teljesen elhalványulják az objektumokat, beleértve a spekulatív kiemeléseket és tükrözéseket is. Ez a mód akkor hasznos, ha egy objektum ki- vagy besziratott objektumát szeretné animálni. Nem alkalmas valósághű átlátszó anyagok, például átlátszó átlátszó anyagok, például átlátszó vagy üveg megjelenítésére, mert a tükrözések és a kiemelések is elhalványulnak.
Átlátszó Valósághű átlátszó anyagok, például átlátszó átlátszó vagy üveg megjelenítésére alkalmas. Ebben a módban maga az anyag veszi át az átlátszósági értékeket (a textúra alfa csatornája és a színezet alfaja alapján). A tükrözések és a megvilágítási kiemelések azonban teljes átláthatóságban maradnak láthatóak, ahogyan a valódi átlátszó anyagok esetében is.
Additív Lehetővé teszi egy additív kevert módot, amely az előző képpont színét összegezve az aktuális képpont színével. Ez az előnyben részesített átlátszósági mód az átlátszósági rendezés problémáinak elkerülése érdekében.
Egyéni Lehetővé teszi a renderelési mód minden aspektusának manuális vezérlését. Csak speciális használatra.

Renderelési módok

Cull mód Leírás
Ki Letiltja az arcok kierőltetsezését. A Culling (Ki) beállítás csak akkor legyen Kikapcsolva, ha kétoldalas hálóra van szükség.
Front Engedélyezi az előlapi arcok kigúnyolását.
Vissza (Alapértelmezett) Engedélyezi a visszacsatolást. A renderelési teljesítmény javítása érdekében a lehető leggyakrabban engedélyezni kell a visszacsatolást.

Teljesítmény

Az MRTK Standard árnyékoló Unity standard árnyékolóval való használatának egyik fő előnye a teljesítmény. Az MRTK Standard Shader csak az engedélyezett funkciók használata esetén használható. Az MRTK Standard árnyékoló azonban úgy lett megírva, hogy a Unity Standard árnyékolóhoz hasonló esztétikai eredményeket nyújt, de sokkal alacsonyabb költséggel. Az árnyékolási teljesítmény összehasonlításának egyik egyszerű módja a GPU-n végrehajtani szükséges műveletek száma. A számítások mértéke természetesen ingadozhat az engedélyezett funkciók és más renderelési konfigurációk szerint. Általánosságban azonban az MRTK Standard árnyékoló jelentősen kevesebb számítást végez, mint a Unity Standard árnyékoló.

Példa Unity Standard árnyékoló statisztikáira

Unity Standard Shader Statistics

Példa AZ MRTK Standard árnyékoló statisztikáira

MRTK Standard Shader Statistics

Megjegyzés

Ezek az eredmények úgy generálhatóak, hogy kiválaszt és megtekint egy árnyékoló eszközt a Unity vizsgálóban, majd a Compile and show code (Fordítás és kód megjelenítése) gombra kattint.

Megvilágítás

Az MRTK/Standard egyszerű megvilágítási közelítést használ. Mivel ez az árnyékoló nem számítja ki a fizikai helyességet és az energiafelhasználást, gyorsan és hatékonyan renderel. Blinn-Phong az elsődleges világítási technika, amelyet a Fröttel és a képalapú megvilágítással ötvöznek a hozzávetőleges fizikai megvilágításhoz. Az árnyékoló a következő megvilágítási technikákat támogatja:

Irányú fény

Az árnyékoló a jelenet első Unity irányát, színét és intenzitását fogja tiszteletben tartani (ha ez engedélyezve van). A dinamikus pontvilágítások, a spot világítások vagy bármely más Unity-fény valós idejű megvilágítás esetén nem lesznek figyelembe véve.

Spherical harmonika

Az árnyékoló a fényérzékelők használatával fogja hozzávetőlegesen megközelíteni a jelenet világítását a Spherical Harmonicshasználatával, ha engedélyezve van. A spherical harmonikus számításokat csúcsonként kell elvégezni a számítási költségek csökkentése érdekében.

Lightmapping

Statikus megvilágítás esetén az árnyékoló a Unity Lightmappingrendszere által készült világostérképeket fogja tiszteletben tartani. Egyszerűen jelölje meg a renderelőt statikusként (vagy világostérkép-statikusként) a világostérképek használata érdekében.

Rámutatás világos

Közelségi jelzőfény

Egyszerűsített, szkriptelhető renderelési folyamat támogatása

Az MRTK tartalmaz egy frissítési útvonalat, amely lehetővé teszi a fejlesztők számára a Unity egyszerűsített, szkriptelhető renderelési folyamatának (LWRP) az MRTK-árnyékolókkal való kihasználását. Unity 2019.1.1f1 és Lightweight RP 5.7.2 csomagban tesztelve. vagy útmutatás az LWRP első lépésekhez, tekintse meg ezt az oldalt.

Az MRTK frissítésének végrehajtásához válassza a következőt: Mixed Reality Toolkit - Utilities – > Upgrade MRTK Standard Shader for Lightweight Render Pipeline (Eszközkészlet – Segédprogramok – Az MRTK Standard Shader frissítése egyszerűsített renderelési folyamathoz) lehetőséget

Lwrp-frissítés

A frissítés után az MRTK/Standard árnyékoló módosul, és minden magenta -anyagot (árnyékoló hibát) ki kell javítani. A frissítés sikerességét a következő konzolon ellenőrizheti: Upgraded Assets/MixedRealityToolkit/StandardAssets/Shaders/MixedRealityStandard.shader az egyszerűsített renderelési folyamattal való használathoz.

UGUI-támogatás

Az MRTK Standard árnyékolási rendszer a Unity beépített felhasználói felületi rendszerével működik. A Unity felhasználói felületi összetevőiben a unity_ObjectToWorld mátrix nem annak a helyi átalakításnak az átalakítási mátrixa, amelyben a Grafikus összetevő él, hanem a szülővászna. Számos MRTK/Standard árnyékoló hatás megköveteli az objektumskála ismertté való átméretét. A probléma megoldásához a skálázás információit a FELHASZNÁLÓI felület hálószerkezetének létrehozása során ScaleMeshEffect.cs a RENDSZER a CHANNEL-csatorna attribútumaiba fogja tárolni.

Vegye figyelembe, hogy Unity Image-összetevő használata esetén ajánlott a "None (Sprite)" értéket megadni a forrásképhez, hogy a Unity felhasználói felülete ne generáljon további csúcsokat.

Az MRTK-ás vásznon egy is hozzá lesz ScaleMeshEffect.cs adni, ha szükség van rá:

a méretezési háló hatása

Textúra-egyesítő

A Unity Standard-árnyékoló képpontonkénti színárnyalatával való paritás javítása érdekében a zökkenőmentesség, a megengedő és az eltolás értékei mind szabályozhatók csatornabecsomagolással. Például:

példa csatornatérképre

Csatornacsomagolás használata esetén négy különálló helyett csak egy textúramintát kell mintát vennie és betöltenie a memóriába. Ha a textúratérképeket egy olyan programban írja meg, mint a Egyed vagy a Éva, az alábbihoz hasonló kézbe csomagolhatja őket:

Csatorna Tulajdonság
Piros Fémes
Zöld Elzáródás
Kék Fogazás (szürkeárnyalatos)
Alpha Simaság

Használhatja az MRTK-textúra-egyesítő eszközt is. Az eszköz megnyitásához válassza a Mixed Reality eszközkészlet – Segédprogramok – > Textúra egyesítő elemét, amely megnyitja az alábbi ablakot:

példa a textúra-egyesítőre

Ez az ablak automatikusan kitöltható egy Unity Standard-árnyékoló kiválasztásával és az "Autopopulate from Standard Material" (Standard anyag automatikus kitöltése) gombra kattintva. Vagy manuálisan is megadhat egy textúra (vagy állandó érték) értéket piros, zöld, kék vagy alfa csatornánként. A textúra kombinációja GPU-gyorsítású, és nem igényli, hogy a bemeneti textúra elérhető legyen a CPU-hoz.

További funkciódokumentáció

Az alábbiakban további részleteket talál az MRTK/Standard árnyékoló néhány funkcióadatával.

Primitív kivágás

primitív kivágás

Háló körvonalai

Számos háló körvonalának technikája utólagos feldolgozási technikával történik. Az utófeldolgozás kiváló minőség-vázlatokat biztosít, de sok különböző eszközön Mixed Reality költséges lehet. Az alatt található OutlineExamples jelenetben talál egy olyan jelenetet, amely bemutatja a rácsos körvonalak használatát.

Háló körvonala

MeshOutline.cs A MeshOutlineHierarchy.cs és a egy rácsos renderelő körüli körvonal megjelenítésére használható. Ennek az összetevőnek az engedélyezése egy további renderelési bérletet vezet be a felvázolt objektumról, de úgy lett kialakítva, hogy mobileszközökön is Mixed Reality fusson, és nem használ utólagos folyamatokat. Ennek a hatásnak a korlátozásai közé tartozik, hogy nem működik jól olyan objektumokon, amelyek nem vízmentesek (vagy kétoldalasak), és a mélységi rendezési problémák átfedésben lévő objektumok esetén fordulhatnak elő.

A körvonal viselkedése úgy lett kialakítva, hogy az MRTK/Standard árnyékolóval együtt használható legyen. A körvonal anyaga általában egy folytonos, nem tagolásos szín, de számos hatás elérésére konfigurálható. A körvonal-anyagok alapértelmezett konfigurációja a következő:

Háló körvonalának anyaga
  1. Mélységi írás – a körvonal-anyagok esetén le kell tiltani, hogy a körvonal ne akadályozza meg más objektumok renderelését.
  2. Csúcspontkihúzás – engedélyezni kell a körvonal megjelenítését.
  3. Smooth Normals használata – ez a beállítás bizonyos hálókhoz nem kötelező. A kitűnés úgy történik, hogy egy csúcspontot normál csúcs mentén mozgatunk, és egyes, az alapértelmezett normál értékek mentén kitűnő hálókban a körvonalban rendellenességek keletkeznek. Az említett rendellenességek kijavítása érdekében jelölje be ezt a jelölőnégyzetet, és használjon egy másik simított normalitáskészletet, amelyet a hoz létre MeshSmoother.cs

MeshSmoother.cs A egy olyan összetevő, amely automatikusan kisimított normál értékeket hoz létre a hálóban. Ez a metódus egy olyan hálóban csoportosizálja a csúcspontokat, amelyek azonos helyen vannak a térben, majd átlagot ad ezeknek a csúcsoknak a normál értékéből. Ez a folyamat másolatot készít az alapul szolgáló hálóról, és csak szükség esetén használható.

Smooth Normals Outline
  1. A által generált Smooth-normalok. MeshSmoother.cs
  2. Alapértelmezett normál értékek, figyelje meg a kocka sarkai körüli összetevőket.

Sablontesztelés

Beépített, konfigurálható sablonteszt támogatása a hatások széles körének eléréséhez. Például portálok:

sablonteszt

Példányos színek támogatása

A példányos színtámogatás több ezer GPU-példányos háló egyedi anyagtulajdonságokat biztosít:

példánytulajdonságok

Triplanar-leképezés

A Triplanar-leképezés a hálók programozott textúra-leképezésének technikája. Gyakran használják hálókban, UV-k nélküli hálókban, vagy nehezen csomagolható alakzatok. Ez az implementáció támogatja a világ- vagy helyitér-leképezéseket, a kevert smoothness specifikációját és a normál térképtámogatást. Vegye figyelembe, hogy minden használt textúra 3 textúramintát igényel, ezért a teljesítmény szempontjából kritikus helyzetekben ritkán kell használni.

triplanar

Csúcspontkihúzás

Csúcspontkitörés a világűrben. Hasznos a kitüremkedő határoló kötetek vagy áttűnések megjelenítéséhez a hálókban.

normál térképskála 1

Különböző veszélyes anyagok és tárgyak

Jelölőnégyzet a albedo-optimalizálások szabályozása érdekében. Az optimalizálási albedo műveletek le vannak tiltva, ha nincs albedo textúra megadva. Ez a távoli textúra betöltésének szabályozására lehet hasznos.

Egyszerűen jelölje be ezt a jelölőnégyzetet:

albedo-hozzárendelés

A képpontonkénti kivágási mintázatok, a helyi élen alapuló aliasolás és a normál térképméretezés támogatott.

normál térképskála 2

Lásd még