MRTK2 standard árnyékoló

Standard árnyalatú példák

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.

Anyaggaléria

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.

Anyag összehasonlítása

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.csegyé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.

Anyagvizsgáló

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.

Megjelenítési módok

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

A Unity Standard Shader statisztikái

MRTK Standard shader statistics example

MRTK Standard Shader Statistics

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

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

Lwrp-frissítés

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

skálázási háló effektus

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:

példa csatornatérképre

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:

texture combiner example

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

primitív kivágás

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/.

Hálóvázlat

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

Hálóvázlat anyaga
  1. 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.
  2. Csúcsextrúzió – engedélyezni kell a vázlat megjelenítését.
  3. 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.

Sima normals outline
  1. Smooth normals generated via MeshSmoother.cs.
  2. 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:

rajzsablon tesztelése

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:

példánytulajdonságok

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.

triplanar

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.

normál térképskálázás 1

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:

albedo-hozzárendelés

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.

normál térképskálázás 2

Lásd még