MRTK2 standard árnyékoló
Az MRTK2 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 valósít meg, és továbbra is teljesít a vegyes valósági eszközökön.
Példajelenetek
A shader anyagra vonatkozó példákat a MaterialGallery jelenetben találja a alatt MRTK/Examples/Demos/StandardShader/Scenes/
. Ebben a jelenetben minden anyag az MRTK/Standard árnyékolót használja.
Az MRTK/Standard shader összehasonlítási jelenetét a StandardMaterialComparison jelenetBen MRTK/Examples/Demos/StandardShader/Scenes/
található Unity/Standard shader példa alapján hasonlíthatja össze és tesztelheti.
Architektúra
Az MRTK/Standard árnyékolási rendszer egy "uber shader", amely a Unity shader programvariáns funkciójával automatikusan létrehozza az optimális árnyékolókódot az anyagtulajdonságok alapján. Amikor egy felhasználó anyagtulajdonságokat választ ki az anyagfelügyelőben, csak az engedélyezett funkciók teljesítményköltségét kell fizetnie.
Anyagvizsgáló
Az MRTK/Standard shader nevű MixedRealityStandardShaderGUI.cs
egyéni anyagfelügyelő létezik. Az inspector automatikusan engedélyezi/letiltja az árnyékoló funkcióit a felhasználó kiválasztása és a renderelési állapot beállításának segédeszközei alapján. Az egyes funkciókról további információt a Unity-szerkesztő minden tulajdonságára mutatva talál egy elemleírást.
Az ellenőr első része szabályozza az anyag renderelési állapotát. A renderelési mód határozza meg, hogy mikor és hogyan jelenjen meg az anyag. Az MRTK/Standard árnyékoló célja a Unity/Standard árnyékolóban található megjelenítési módok tükrözése. Az MRTK/Standard shader egy additív renderelési módot és egy egyéni renderelési módot is tartalmaz a teljes felhasználói vezérléshez.
Megjelenítési mód | Description |
---|---|
Átlátszatlan | (Alapértelmezett) Alkalmas normál, átlátszó területek nélküli szilárd objektumokhoz. |
Kivágott | Lehetővé teszi átlátszó hatások létrehozását, amelyek kemény élekkel rendelkeznek az átlátszatlan és az átlátszó területek között. Ebben a módban nincsenek félig átlátszó területek, a textúra vagy 100%átlátszatlan, vagy láthatatlan. Ez akkor hasznos, ha áttetszőség használatával hozza létre az anyagok alakját, például a növényzetet. |
Fade | Lehetővé teszi, hogy az áttetszőségi értékek teljesen elhalványuljanak egy objektumból, beleértve az esetleges spekulatív kiemeléseket vagy tükröződéseket is. Ez a mód akkor hasznos, ha elhalványuló objektumot szeretne animálni. Nem alkalmas valósághű átlátszó anyagok, például átlátszó műanyag vagy üveg renderelására, mert a tükröződések és a kiemelések is elhalványulnak. |
Átlátszó | Alkalmas valósághű átlátszó anyagok, például átlátszó műanyag vagy üveg renderelására. Ebben a módban maga az anyag veszi át az áttetszőségi értékeket (a textúra alfa csatornája és az árnyalat színének alfaja alapján). A tükröződések és a fénykiemelések azonban teljes mértékben láthatóak maradnak, mint a valódi átlátszó anyagok esetében. |
Additív | Lehetővé teszi az additív keverési módot, amely összeadja az előző képpont színét az aktuális képpont színével. Ez az előnyben részesített áttetszőségi mód az áttetszőségi rendezési problémák 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. |
Cull mód | Description |
---|---|
Ki | Letiltja az arcok kivágását. A selejtezést csak akkor szabad Ki értékre állítani, ha kétoldalas hálóra van szükség. |
Front | Lehetővé teszi az elülső arcok kivágását. |
Vissza | (Alapértelmezett) Lehetővé teszi a hátsó arcok kivágását. A renderelési teljesítmény javítása érdekében a lehető leggyakrabban engedélyezni kell a hátsó arcok selejtezését. |
Teljesítmény
Az MRTK Standard shader a Unity standard árnyékolóval való használatának egyik fő előnye a teljesítmény. Az MRTK Standard Shader bővíthető, hogy csak az engedélyezett funkciókat használja. Az MRTK Standard shader azonban azért is lett megírva, hogy a Unity Standard árnyékolóhoz hasonló esztétikai eredményeket nyújtson, de sokkal alacsonyabb költséggel. Az árnyékoló teljesítményének összehasonlításának egyik egyszerű módja a GPU-n végrehajtandó műveletek száma. A számítások nagysága természetesen ingadozhat az engedélyezett funkciók és más renderelési konfigurációk alapján. Az MRTK Standard árnyékoló azonban általában sokkal kevesebb számítást végez, mint a Unity Standard árnyékoló.
Példa a Unity Standard shader statisztikáira
MRTK Standard shader statistics example
Megjegyzés
Ezek az eredmények úgy hozhatók létre, hogy kiválasztunk és megtekintünk egy árnyékolóeszközt a Unity-vizsgálóban, majd a Fordítás és kód megjelenítése gombra kattintunk.
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 energiatakarékosságot, gyorsan és hatékonyan renderel. Blinn-Phong az elsődleges világítási technika, amelyet a Fresnel és a képalapú világítás kombinál, hogy közelítő fizikai alapú világítás. A shader a következő világítási technikákat támogatja:
Irányjelző fény
A színárnyalat figyelembe veszi az első Unity irányított fény irányát, színét és intenzitását a jelenetben (ha engedélyezve van). A dinamikus pontfények, a spotlámpák és más Unity-fények nem számítanak valós idejű világításnak.
Gömb harmonikusok
Ha engedélyezve van, az árnyékoló a Fényminták használatával közelítő fényeket fog használni a jelenetben. A gömb harmonikus számítások csúcsonként vannak végrehajtva a számítási költségek csökkentése érdekében.
Fényezés
Statikus világítás esetén a shader tiszteletben tartja a Unity Lightmapping rendszere által készített fénytérképeket. A fénytérképek használatához egyszerűen jelölje meg a renderelőt statikusként (vagy fénytérkép statikusként).
Rámutatási fény
- Lásd: Rámutatási fény
Közelségi fény
- Lásd : Közelségi fény
Egyszerűsített szkriptelhető renderelési folyamat támogatása
Az MRTK egy frissítési útvonalat tartalmaz, amellyel a fejlesztők használhatják a Unity egyszerűsített szkriptelhető renderelési folyamatát (LWRP) AZ MRTK-árnyékolókkal. Tesztelve a Unity 2019.1.1f1-ben és az egyszerűsített RP 5.7.2-csomagban. Az LWRP használatának megkezdésével kapcsolatos útmutatásért tekintse meg ezt az oldalt.
Az MRTK frissítésének végrehajtásához válassza a következőt: Mixed Reality Toolkit –> Segédprogramok –> Az MRTK Standard Shader frissítése egyszerűsített renderelési folyamathoz
A frissítés után az MRTK/Standard árnyékoló megváltozik, és minden magenta (árnyékolóhiba) anyagot ki kell javítani. A frissítés sikerességének ellenőrzéséhez ellenőrizze a konzolon a következőt: Frissített eszközök/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 együttműködik a Unity beépített felhasználói felületi rendszerével. A Unity felhasználói felületének összetevőin a unity_ObjectToWorld mátrix nem a grafikus összetevő helyi átalakításának átalakítási mátrixa, hanem a szülővászoné. Számos MRTK/Standard árnyékoló effektus megköveteli, hogy az objektumméretezés ismert legyen. A probléma megoldásához a rendszer a ScaleMeshEffect.cs
felhasználói felület hálójának felépítése során UV-csatornaattribútumokba tárolja a skálázási információkat.
Vegye figyelembe, hogy Unity-rendszerkép-összetevő használata esetén a forrásképhez a "Nincs (Sprite)" érték megadása javasolt, hogy a Unity felhasználói felülete ne hozzon létre további csúcspontokat.
Az MRTK-on belüli vászon egy olyan elem hozzáadását ScaleMeshEffect.cs
fogja kérni, amikor szükség van rá:
Anyagminta-összevonó
A Unity Standard shader per pixeles fémes paritásának javítása érdekében a simaság, az engedékenység és az elzáródási értékek mind szabályozhatók csatornacsomagolással. Például:
Ha csatornacsomagolást használ, négy különálló helyett csak egy anyagmintát kell mintát vennie, és egy anyagmintát kell betöltenie a memóriába. Amikor megírja a textúra térképek egy program, mint az Anyag vagy a Photoshop, akkor kézzel csomagolja őket, mint a következő:
Csatorna | Tulajdonság |
---|---|
Piros | Fémes |
Zöld | Elzáródás |
Kék | Kibocsátás (szürkeárnyalatos) |
Alpha | Simaság |
Vagy használhatja az MRTK Textúra-összevonási eszközt. Az eszköz megnyitásához válassza a következő lehetőséget: Mixed Reality Toolkit - Utilities - Texture Combiner ( Eszközkészlet -> Segédprogramok -> Anyagminta-összevonás) lehetőséget, amely megnyitja az alábbi ablakot:
Ez az ablak automatikusan kitölthető egy Unity Standard árnyékoló kiválasztásával, majd az "Automatikus kitöltés standard anyagból" elemre kattintva. Vagy manuálisan is megadhat egy anyagmintát (vagy állandó értéket) piros, zöld, kék vagy alfa csatornánként. A textúra kombináció gpu gyorsított, és nem igényel a bemeneti textúra, hogy a CPU elérhető.
További funkciódokumentáció
Az alábbiakban további részleteket talál az MRTK/Standard árnyékoló néhány funkciórészletéről.
Primitív kivágás
- Lásd: Primitív kivágása
Hálóvázlatok
Számos hálószerkezeti technikát utófeldolgozási technikával lehet elvégezni. Az utófeldolgozás kiváló minőségű körvonalakat biztosít, de számos Mixed Reality eszközön rendkívül költséges lehet. A OutlineExamples jelenetben található egy jelenet, amely a hálóvázlatok használatát mutatja be a alatt MRTK/Examples/Demos/StandardShader/Scenes/
.
MeshOutline.cs
és MeshOutlineHierarchy.cs
használható a rácsos renderelő körüli körvonal megjelenítésére. Ennek az összetevőnek az engedélyezésével a felvázolt objektum további renderelési átengedése jelenik meg, de úgy van kialakítva, hogy képes legyen a mobil Mixed Reality eszközökön való futtatásra, és nem használ utólagos folyamatokat. Ennek a hatásnak a korlátai közé tartozik, hogy nem működik jól a nem vízmentes (vagy kétoldalas) objektumokon, és a mélységi rendezési problémák átfedésben lévő objektumokon fordulhatnak elő.
A szerkezeti viselkedések az MRTK/Standard árnyékolóval együtt használhatók. A szerkezeti anyagok általában egy szilárd, kivilágítatlan szín, de konfigurálhatók úgy, hogy számos effektust érjenek el. A szerkezeti anyagok alapértelmezett konfigurációja a következő:
- Mélységi írás – le kell tiltani a szerkezeti anyagok esetében, hogy a tagolás ne akadályozza meg más objektumok megjelenítését.
- Csúcsextrúzió – engedélyezni kell a vázlat megjelenítését.
- Smooth Normals használata – ez a beállítás egyes hálók esetében nem kötelező. Az extrúzió egy csúcspont normál mentén történő mozgatásával történik, egyes hálókon az alapértelmezett normál értékek mentén történő kihúzás megszakításokat okoz a körvonalban. A megszakítások kijavításához bejelölheti ezt a jelölőnégyzetet, ha egy másik simított normált szeretne használni, amelyet a
MeshSmoother.cs
MeshSmoother.cs
egy olyan összetevő, amely a hálón lévő simított normálok automatikus létrehozására használható. Ez a metódus egy hálóban csoportosítja a csúcspontokat, amelyek azonos helyen vannak a térben, majd átlagot ad ezeknek a csúcsoknak. Ez a folyamat létrehozza a mögöttes háló másolatát, és csak akkor szabad használni, ha szükséges.
- Smooth normals generated via
MeshSmoother.cs
. - A használt alapértelmezett normál értékek, figyelje meg a kocka sarkai körüli összetevőket.
Rajzsablon tesztelése
Beépített konfigurálható rajzsablonteszt-támogatás a hatások széles skálájának eléréséhez. Például portálok:
Példány színtámogatása
A példányos színtámogatással több ezer GPU-példányos háló egyedi anyagtulajdonságokat adhat:
Triplanáris leképezés
A triplanáris leképezés egy olyan technika, amely programozott módon texturált egy hálót. Gyakran használják terepen, UV-k nélküli hálókban vagy nehezen kicsomagolható alakzatokban. Ez az implementáció támogatja a világ- vagy helyi tér kivetítését, a keverési simaság specifikációját és a normál térképtámogatást. Vegye figyelembe, hogy minden felhasznált anyagmintához 3 textúraminta szükséges, ezért ritkán kell használni a teljesítmény szempontjából kritikus helyzetekben.
Csúcsextrúzió
Csúcskihúzás a világűrben. Hasznos az extrudált határoló kötetek vagy áttűnések vizualizációjához a hálókban és a kifelé irányuló hálókban.
Különböző veszélyes anyagok és tárgyak
Jelölőnégyzet az albedo-optimalizálás szabályozásához. Mivel az optimalizálási albedo műveletek le vannak tiltva, ha nincs megadva albedo textúra. Ez hasznos a távoli anyagminta-betöltés szabályozásához.
Egyszerűen jelölje be ezt a jelölőnégyzetet:
A képpontonkénti kivágási textúrák, a helyi élalapú aliasolás és a normál térképméretezés támogatott.