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, implementálja Fluent Design rendszer-alapelveket, és továbbra is nagy teljesítményben tud teljesíteni vegyes valóságú eszközökön.

Példajelenetek

Az árnyékolási anyag példáit a MaterialGallery jelenetben találhatja meg a MRTK/Examples/Demos/StandardShader/Scenes/ alatt. A jelenet összes anyaga az MRTK/Standard árnyékolót használja.

Material Gallery

A StandardMaterialComparison (StandardMaterialComparison) (StandardMaterialComparison) jelenet Unity/Standard árnyékoló példáját összehasonlítva és tesztelve összehasonlíthatja és tesztelheti az MRTK/Standard színárnyalatot. MRTK/Examples/Demos/StandardShader/Scenes/

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 optimális árnyékolókód automatikus létrehozásához az anyagtulajdonságok alapján. Amikor egy felhasználó anyagtulajdonságokat választ ki az anyag vizsgálóban, csak az engedélyezett funkciók teljesítményköltsége jár.

Material Inspector

Az MRTK/Standard árnyékolóhoz létezik egy nevű egyéni anyag MixedRealityStandardShaderGUI.cs vizsgáló. Az inspector 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 vizsgáló első része szabályozza az anyag renderelési állapotát. A Renderelési mód határozza meg, hogy mikor és hogyan renderel a rendszer egy anyagot. 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 Description
Átlátszatlan (Alapértelmezett) Normál, folytonos objektumokhoz alkalmas átlátszó területek nélkül.
Kivágott Lehetővé teszi olyan átlátszó effektusok 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 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 elajátsodása vagy kiszürkülni szeretne. Nem alkalmas valósághű átlátszó anyagok, például átlátszó á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 vilá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éppontszínnel van megszűkülve. 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álat esetén.

Renderelési módok

Cull mód Description
Ki Letiltja az arcok ki- és leszámolását. A Culling (Ki) beállítás csak akkor legyen Kikapcsolva, ha kétoldalas hálóra van szükség.
Front Lehetővé teszi az előlapi arcok kigúnyolását.
Vissza (Alapértelmezett) Engedélyezi a vissza arcok kigúnyolását. 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 hasonló esztétikai eredményeket nyújt, mint a Unity Standard árnyékoló, de sokkal alacsonyabb költséggel. Az árnyékoló 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 a 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 (Kód fordítása és megjelenítése) gombra kattint.

Megvilágítás

Az MRTK/Standard egyszerű közelítést használ a világításhoz. 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 engedélyezve van). A dinamikus pontvilágítások, 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 Harmonika haszná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.

Világostérkép-leképezés

Statikus megvilágítás esetén a á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 lightmap static) a világostérképek használata érdekében.

Rámutatás világos

Közelségi 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. A Unity 2019.1.1f1-es és egyszerűsített RP 5.7.2-es csomagjában tesztelve. vagy útmutatás az LWRP első lépésekhez: .

Az MRTK frissítésének végrehajtásához válassza a Mixed Reality Toolkit -> -> Upgrade MRTK Standard Shader for Lightweight Render Pipeline (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 a magenta (árnyékolási hiba) anyagá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 folyamathoz.

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 UI mesh létrehozása során ScaleMeshEffect.cs a RENDSZERcsatorna 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 Toolkit -> Utilities -> Combiner lehetőséget, amely megnyitja az alábbi ablakot:

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

Ez az ablak automatikusan kitöltheti 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

A háló körvonalának számos technikája egy utó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. A OutlineExamples-jelenetben talál egy olyan jelenetet, amely bemutatja a rácsos körvonalak MRTK/Examples/Demos/StandardShader/Scenes/ használatát.

Mesh Outline

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ő:

Mesh Outline Material
  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 ilyen rendellenességek kijavítása érdekében jelölje be ezt a jelölőnégyzetet egy másik simított normalitáskészlet használatára, 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ányos tulajdonságok

Triplanar-leképezés

A Triplanar-leképezés a hálók programozott textúrakészíté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 ritkán használja a teljesítményt kritikus helyzetekben.

triplanar

Csúcspontkitörés

Csúcspontkitörés a világűrben. Hasznos a kitűnt 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 az 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