Térbeli leképezés
A térbeli leképezés a HoloLens körüli környezet valós felületeinek részletes ábrázolását biztosítja, így a fejlesztők meggyőző vegyes valósági élményt hozhatnak létre. A valós világ és a virtuális világ egyesítésével az alkalmazások valósnak tűnhetnek a hologramok. Az alkalmazások természetesebb módon is igazodhatnak a felhasználói elvárásokhoz azáltal, hogy ismerős valós viselkedéseket és interakciókat biztosítanak.
Az eszköz támogatja
Szolgáltatás | HoloLens (1. generációs) | HoloLens 2 | Modern headsetek |
Térbeli leképezés | ✔️ | ✔️ | ❌ |
Miért fontos a térbeli leképezés?
A térbeli leképezés lehetővé teszi objektumok valós felületeken való elhelyezését. Ez segít rögzíteni az objektumokat a felhasználó világában, és kihasználja a valós mélységi jeleket. A hologramok más hologramok és valós objektumok alapján történő elzárása segít meggyőzni a felhasználót arról, hogy ezek a hologramok valójában a saját térükben vannak. A térben lebegő vagy a felhasználóval együtt mozgó hologramok nem lesznek valósak. Ha lehetséges, helyezzen el elemeket a kényelem érdekében.
Felületek megjelenítése hologramok elhelyezésekor vagy mozgatásakor (előre jelzett rács használata). Ez segít a felhasználóknak tudni, hogy hol helyezhetik el a hologramokat a legjobban, és megmutatja, hogy nincs-e leképezve az a hely, ahová a hologramot próbálják helyezni. Ha túl nagy szögben végződnek, "hirdetőtáblás elemeket" is használhat a felhasználó felé.
Fogalmi áttekintés
Példa egy helyiséget lefedő térbeli leképezési hálóra
A térbeli leképezéshez használt két elsődleges objektumtípus a "Spatial Surface Observer" és a "Spatial Surface".
Az alkalmazás egy vagy több határoló kötetet biztosít a Spatial Surface Observer számára, hogy meghatározza azokat a térrégió-régiókat, amelyekben az alkalmazás térbeli leképezési adatokat kíván fogadni. Ezen kötetek mindegyikéhez a térbeli leképezés térbeli felületek készletét biztosítja az alkalmazásnak.
Ezek a kötetek lehetnek helyhez kötöttek (a valós világ alapján rögzített helyen), vagy csatolhatók a HoloLenshez (mozognak, de nem forognak, miközben a HoloLens a környezetben mozog). Minden térbeli felület egy kis mennyiségű térben írja le a valós felületeket, amelyek egy világba zárt térbeli koordinátarendszerhez csatolt háromszöghálóként jelennek meg.
Ahogy a HoloLens új adatokat gyűjt a környezetről, és ahogy a környezet megváltozik, a térbeli felületek megjelennek, eltűnnek és megváltoznak.
Térbeli tudatosság tervezési fogalmai – bemutató
Ha szeretné működés közben látni a térbeli tudatosság tervezési fogalmait, tekintse meg a hologramok tervezése – térbeli tudatosság című videó bemutatót. Ha végzett, folytassa az adott témakörök részletesebb bemutatásával.
Ez a videó a "Hologramok tervezése" HoloLens 2 alkalmazásból származik. Töltse le és élvezze a teljes élményt itt.
Térbeli leképezés vs. Scene Understanding WorldMesh
A HoloLens 2 a térbeli leképezési adatok statikus verzióját kérdezheti le a Scene understanding SDK használatával (EnableWorldMesh beállítás). A térbeli leképezési adatok elérésének két módja közötti különbségek a következők:
- Spatial Mapping API:
- Korlátozott tartomány: azok a térbeli leképezési adatok, amelyek a felhasználó körül korlátozott méretű gyorsítótárazott "buborékként" érhetők el az alkalmazások számára.
- Kis késésű frissítéseket biztosít a módosított hálóterületekről a SurfacesChanged eseményeken keresztül.
- A háromszögek köbméterenkénti paramétere által vezérelt változó szintű részletek.
- Jelenetfelismerési SDK:
- Korlátlan tartomány – a lekérdezési sugaron belül az összes beolvasott térbeli leképezési adatot biztosítja.
- Statikus pillanatképet biztosít a térbeli leképezési adatokról. A frissített térbeli leképezési adatok lekéréséhez új lekérdezést kell futtatni a teljes hálóhoz.
- A RequestedMeshLevelOfDetail beállítás által szabályozott részletek konzisztens szintje.
Mi befolyásolja a térbeli leképezés minőségét?
A hibák gyakoriságát és súlyosságát számos, itt részletezett tényező befolyásolhatja. Az alkalmazást azonban úgy kell megterveznie, hogy a felhasználó akkor is elérhesse a céljait, ha hibák jelennek meg a térbeli leképezési adatokban.
Gyakori használati forgatókönyvek
Elhelyezés
A térbeli leképezés lehetővé teszi az alkalmazások számára, hogy természetes és ismerős interakciós formákat mutassanak be a felhasználónak; mi lehet természetesebb, mint levenni a telefont az asztalra?
A hologramok elhelyezésének (vagy általában a térbeli helyek kiválasztásának) a felületeken való elhelyezésének korlátozása természetes leképezést biztosít 3D-ről (térbeli pontról) 2D-re (felszíni pont). Ez csökkenti a felhasználó által az alkalmazás számára szükséges információk mennyiségét, és felgyorsítja, egyszerűbbé és pontosabbá teszi a felhasználó interakcióit. Ez azért igaz, mert a "távolság" nem olyan dolog, amit fizikailag kommunikálunk másokkal vagy számítógépekkel. Amikor az ujjunkkal mutatunk, egy irányt adunk meg, de nem a távolságot.
Fontos kikötés, hogy ha egy alkalmazás az iránytól való távolságra következtet (például a felhasználó tekintetének iránya mentén, a legközelebbi térbeli felület megkereséséhez), ennek olyan eredményeket kell eredményeznie, amelyeket a felhasználó megbízhatóan előre tud jelezni. Ellenkező esetben a felhasználó elveszíti az irányítást, és ez gyorsan frusztrálóvá válhat. Az egyik módszer, amely segít ebben az, hogy több raycasts helyett csak egy. Az összesített eredményeknek simábbnak és kiszámíthatóbbnak kell lenniük, kevésbé érzékenyek az átmeneti "kiugró" eredmények befolyásolására (ezt okozhatják az apró lyukakon áthaladó sugarak vagy a felhasználó által nem érzékelt kisebb geometriadarabok). Az aggregáció vagy a simítás az idő múlásával is elvégezhető; Korlátozhatja például a hologramok felhasználótól való távolságának maximális sebességét. A minimális és maximális távolság értékének egyszerű korlátozása is segíthet, így az áthelyezett hologram nem repül el hirtelen a távolságba, és nem jön vissza a felhasználó arcába.
Az alkalmazások a felületek alakját és irányát is használhatják a hologram elhelyezéséhez. A holografikus széknek nem szabad áthatolnia a falakon, és akkor is le kell ülnie a padlóval, ha kissé egyenetlen. Ez a fajta funkció valószínűleg a fizikai ütközésekre támaszkodik, nem pedig a raycastekre, de hasonló aggodalmak fognak vonatkozni. Ha a hologramon sok kis sokszög van, amelyek kilógnak, mint a lábak a széken, akkor érdemes lehet ezeknek a sokszögeknek a fizikai ábrázolását valami szélesebbre és simábbra kiterjeszteni, hogy jobban átcsússzon a térbeli felületeken anélkül, hogy tapadódnának.
Szélsőséges esetben a felhasználói bevitel teljesen leegyszerűsíthető, a térbeli felületek pedig teljes mértékben automatikus hologramelhelyezésre használhatók. Az alkalmazás például elhelyezhet egy holografikus fénykapcsolót valahol a falon, ahol a felhasználó megnyomhatja. Ugyanez a kikötés a kiszámíthatóságra is duplán vonatkozik itt; ha a felhasználó azt várja, hogy szabályozni tudja a hologram elhelyezését, de az alkalmazás nem mindig a várt helyen helyezi el a hologramokat (ha a fénykapcsoló olyan helyen jelenik meg, amelyet a felhasználó nem tud elérni), akkor ez bosszantó élmény lesz. Valójában rosszabb lehet, ha automatikus elhelyezést végez, amely bizonyos idő alatt felhasználói javítást igényel, mint hogy csak azt követelje meg a felhasználótól, hogy mindig tegye meg az elhelyezést; mivel a sikeres automatikus elhelyezés várható, a manuális javítás terhet jelent!
Azt is vegye figyelembe, hogy az alkalmazás térbeli felületek elhelyezésére való képessége nagymértékben függ az alkalmazás vizsgálati élményétől. Ha egy felületet még nem vizsgáltak meg, akkor nem használható elhelyezésre. Az alkalmazáson múlik, hogy ezt egyértelművé tegye a felhasználó számára, hogy segítsen új felületek vizsgálatában, vagy új hely kiválasztásában.
A felhasználók vizuális visszajelzése rendkívül fontos az elhelyezés során. A felhasználónak tudnia kell, hol található a hologram a földelő hatásokkal rendelkező legközelebbi felület alapján. Meg kell érteniük, hogy a hologram mozgása miért van korlátozva (például egy másik közeli felülettel való ütközések miatt). Ha nem tudnak hologramot elhelyezni az aktuális helyen, akkor a vizuális visszajelzésnek egyértelművé kell tennie, hogy miért nem. Ha például a felhasználó egy félig a falba ragadt holografikus kanapét próbál elhelyezni, akkor a kanapé fal mögötti részei dühös színben pulzálnak. Vagy ezzel szemben, ha az alkalmazás nem talál térbeli felületet olyan helyen, ahol a felhasználó valós felületet lát, akkor az alkalmazásnak egyértelművé kell tennie ezt. E cél elérése érdekében nyilvánvaló, hogy ezen a területen nincs földi hatás.
Elzáródás
A térbeli leképezési felületek egyik elsődleges felhasználási módja a hologramok eltitkosítása. Ez az egyszerű viselkedés nagy hatással van a hologramok érzékelt realizmusára, és segít létrehozni egy zsigeri érzéket, amely valóban ugyanazt a fizikai helyet lakja, mint a felhasználó.
Az occlusion a felhasználónak is szolgáltat információkat; ha úgy tűnik, hogy egy hologramot elzár egy valós felület, ez további vizuális visszajelzést ad a hologram térbeli helyéről a világon. Ezzel szemben az elzárkózás hasznosan elrejtheti az információkat a felhasználó elől; A falak mögött elzárt hologramok intuitív módon csökkenthetik a vizuális zsúfoltság mértékét. A hologram elrejtéséhez vagy felfedéséhez a felhasználónak csak a fejét kell mozgatnia.
Az elzárkózással a természetes felhasználói felülettel kapcsolatos elvárásokat is fel lehet támasztani a jól ismert fizikai interakciók alapján; ha a hologramot elzárja egy felület, az azért van, mert a felület szilárd, ezért a felhasználónak arra kell számítania, hogy a hologram ütközni fog az adott felülettel, és nem halad át rajta.
Néha a hologramok elzáródása nem kívánatos. Ha a felhasználónak egy hologrammal kell kommunikálnia, akkor azt is látnia kell , még akkor is, ha egy valós felület mögött van. Ilyen esetekben általában érdemes az ilyen hologramot másképp renderelni, ha el van rejtve (például a fényerő csökkentésével). Így a felhasználó vizuálisan megkeresheti a hologramot, de továbbra is tudni fogja, hogy valami mögött van.
Fizika
A fizikai szimuláció használata egy másik módszer, amellyel térbeli leképezésekkel megerősíthető a hologramok jelenléte a felhasználó fizikai terében. Amikor a holografikus gumilabda reálisan legördül az asztalomról, átugor a padlón, és eltűnik a kanapé alatt, nehéz lehet azt hinni, hogy nincs ott.
A fizikai szimuláció lehetőséget nyújt arra is, hogy az alkalmazások természetes és jól ismert fizikai interakciókat használjanak. Mozgó egy darab holografikus bútorok körül a padlón valószínűleg könnyebb lesz a felhasználó számára, ha a bútor válaszol, mintha csúszik át a padlón a megfelelő tehetetlenség és súrlódás.
A valósághű fizikai viselkedés létrehozásához valószínűleg el kell végeznie néhány hálófeldolgozást , például a lyukak kitöltését, a lebegő hallucinációk eltávolítását és a durva felületek simítását.
Azt is figyelembe kell vennie, hogy az alkalmazás vizsgálati élménye hogyan befolyásolja a fizikai szimulációt. Először is, a hiányzó felületek nem ütköznek semmivel; mi történik, ha a gumilabda legördül a folyosón és az ismert világ végén? Másodszor, el kell döntenie, hogy továbbra is reagálni fog-e a környezet változásaira az idő múlásával. Bizonyos esetekben a lehető leggyorsabban kell válaszolnia; mondjuk, ha a felhasználó ajtókat és bútorokat használ mozgatható barikádokként a bejövő római nyilakkal szembeni védelemben. Más esetekben azonban érdemes lehet figyelmen kívül hagyni az új frissítéseket; vezetés a holografikus sportautó körül a versenypálya a padlón hirtelen nem lesz olyan szórakoztató, ha a kutya úgy dönt, hogy ül a közepén a pálya.
Navigáció
Az alkalmazások térbeli leképezési adatokat használhatnak a holografikus karakterek (vagy ügynökök) számára, hogy ugyanúgy navigáljanak a valós világban, mint egy valós személy. Ez segíthet a holografikus karakterek jelenlétének megerősítésében azáltal, hogy a természetes, ismerős viselkedési csoportokra korlátozza őket, mint a felhasználó és a barátaik.
A navigációs képességek a felhasználók számára is hasznosak lehetnek. Ha egy navigációs térképet egy adott területre építettek, megosztható, hogy holografikus irányokat biztosítson azoknak az új felhasználóknak, amelyek nem ismerik ezt a helyet. Ezt a térképet úgy lehet megtervezni, hogy a gyalogos "forgalom" zökkenőmentesen haladjon, vagy hogy elkerülje a baleseteket olyan veszélyes helyeken, mint az építkezések.
A navigációs funkciók megvalósításának fő technikai kihívásai a járható felületek megbízható észlelése (az emberek nem járnak a táblákon!) és a környezet változásaihoz való korrekt alkalmazkodás (az emberek nem járnak be zárt ajtókon!). Előfordulhat, hogy a háló némi feldolgozást igényel ahhoz, hogy használható legyen egy virtuális karakter útvonaltervezéséhez és navigálásához. A háló simításával és a hallucinációk eltávolításával elkerülhető, hogy a karakterek elakadnak. Emellett érdemes lehet drasztikusan leegyszerűsíteni a hálót, hogy felgyorsítsa a karakter útvonaltervezési és navigációs számításait. Ezek a kihívások nagy figyelmet kaptak a videojáték-technológia fejlesztésében, és számos rendelkezésre álló kutatási szakirodalom áll rendelkezésre ezekről a témákról.
A Unity beépített NavMesh funkciója alapértelmezés szerint nem használható térbeli leképezési felületekhez, mert a felületek csak az alkalmazás elindulása után lesznek ismertek. A NavMesh-eket azonban futásidőben is létrehozhatja a NavMeshComponents telepítésével. Vegye figyelembe, hogy a térbeli leképezési rendszer nem nyújt információt a felhasználó aktuális helyétől távol eső felületekről ; egy nagy terület térképének létrehozásához az alkalmazásnak "emlékeznie" kell a felületekre. A térbeli tudatossági profilban is növelheti a megfigyelési kiterjedés beállítását, ami növeli azt a területet, amelyre felépítheti a NavMesh-t.
Vizualizáció
A legtöbb esetben a térbeli felületek láthatatlanok; hogy minimalizálja a vizuális zsúfoltságot, és hagyja, hogy a való világ önmagáért beszéljen. Néha azonban hasznos a térbeli leképezési felületek közvetlen megjelenítése annak ellenére, hogy a valós megfelelőik láthatóak.
Ha például a felhasználó hologramot próbál elhelyezni egy felületre (például holografikus szekrényt helyez a falra), hasznos lehet a hologram "földelése", ha árnyékot vet a felületre. Ez sokkal világosabb képet ad a felhasználónak a hologram és a felület közötti pontos fizikai közelségről. Ez egy példa arra az általánosabb gyakorlatra is, amikor a felhasználó véglegesítése előtt vizuálisan "előnézetben" jelenít meg egy módosítást.
A felületek vizualizációjával az alkalmazás megoszthatja a felhasználóval a környezet megértését. Egy holografikus társasjáték például megjelenítheti a "táblákként" azonosított vízszintes felületeket, így a felhasználó tudja, hogy hová kell mennie az interakcióhoz.
A felületek vizualizációja hasznos módja annak, hogy megjelenítse a felhasználónak a közelben lévő, a nézet elől elrejtett tereket. Ez lehetővé teheti, hogy a felhasználó hozzáférjen a konyhához (és annak minden hologramját) a nappaliból.
A térbeli leképezés által biztosított felületi hálók nem feltétlenül "tisztaak". Fontos, hogy megfelelően jelenítsük meg őket. A hagyományos világítási számítások vizuálisan zavaró módon emelhetik ki a felületi normálok hibáit, míg a felületre vetített "tiszta" textúrák segíthetnek a megjelenésében. A felületek megjelenítése előtt hálófeldolgozást is lehet végezni a háló tulajdonságainak javítása érdekében.
Megjegyzés
HoloLens 2 implementál egy új Scene Understanding-futtatókörnyezetet, amely Mixed Reality fejlesztők számára egy strukturált, magas szintű környezetmegjelenítést biztosít, amely egyszerűbbé teszi az elhelyezést, az elzáródást, a fizikát és a navigációt.
A Surface Observer használata
A térbeli leképezés kiindulópontja a felszíni megfigyelő. A programfolyamat a következő:
- Surface Observer-objektum létrehozása
- Adjon meg egy vagy több térbeli kötetet, hogy meghatározza azokat a régiókat, amelyekben az alkalmazás térbeli leképezési adatokat kíván fogadni. A térbeli kötet egyszerűen egy térrégiót meghatározó alakzat, például egy gömb vagy egy doboz.
- A fizikai világ rögzített régiójának azonosításához használjon térbeli kötetet egy világzárt térbeli koordinátarendszerrel.
- Használjon térbeli kötetet, és frissítse az egyes kereteket egy test által zárolt térkoordináta-rendszerrel, hogy azonosítsa a felhasználóval mozgó (de nem elforgatható) térrégiót.
- Ezek a térbeli kötetek később bármikor módosíthatók, ahogy az alkalmazás vagy a felhasználó állapota megváltozik.
- A térbeli felületekkel kapcsolatos információk lekérése lekérdezéssel vagy értesítéssel
- A felszíni megfigyelőt bármikor lekérdezheti a térbeli felszín állapotáról. Ehelyett regisztrálhat a felszíni megfigyelő "megváltozott felületek" eseményére, amely értesíti az alkalmazást a térbeli felületek változásakor.
- Dinamikus térbeli kötetek, például a nézet frustumja vagy egy test által zárolt kötet esetén az alkalmazásoknak le kell kérdezniük az egyes kereteket a kívánt terület beállításával, majd a térbeli felületek aktuális készletének lekérésével.
- Statikus kötetek, például egy helyiséget lefedő világzárolt kocka esetén az alkalmazások regisztrálhatnak a "megváltozott felületek" eseményre, hogy értesítést kapjon, ha a köteten belüli térbeli felületek megváltozhatnak.
- Felületváltozások feldolgozása
- Iterálja a térbeli felületek megadott készletét.
- Osztályozza a térbeli felületeket hozzáadottként, módosítva vagy eltávolítva.
- Minden hozzáadott vagy módosított térbeli felület esetében szükség esetén küldjön egy aszinkron kérést a felület aktuális állapotát a kívánt részletességi szinten képviselő frissített háló fogadására.
- Dolgozza fel az aszinkron hálókérelmet (további részletek a következő szakaszokban).
Háló gyorsítótárazása
A térbeli felületeket sűrű háromszöghálók jelölik. Ezeknek a hálóknak a tárolása, renderelése és feldolgozása jelentős számítási és tárolási erőforrásokat használhat. Ezért minden alkalmazásnak az igényeinek megfelelő hálós gyorsítótárazási rendszert kell alkalmaznia, hogy minimalizálja a hálófeldolgozáshoz és -tároláshoz használt erőforrásokat. Ennek a sémának meg kell határoznia, hogy mely hálókat tartsa és melyiket kell elvetni, és mikor frissítse a hálót az egyes térbeli felületeken.
Az ott tárgyalt szempontok közül számos közvetlenül tájékoztatja arról, hogy az alkalmazásnak hogyan kell megközelítenie a hálós gyorsítótárazást. Meg kell fontolnia, hogy a felhasználó hogyan mozog a környezetben, mely felületekre van szükség, mikor figyelhetők meg különböző felületek, és mikor kell rögzíteni a környezet változásait.
A felszíni megfigyelő által biztosított "megváltozott felületek" esemény értelmezésekor az alapszintű háló gyorsítótárazási logikája a következő:
- Ha az alkalmazás olyan térbeli felületazonosítót lát, amelyet korábban még nem látott, akkor ezt új térbeli felületként kell kezelnie.
- Ha az alkalmazás egy ismert azonosítóval rendelkező, de új frissítési idővel rendelkező térbeli felületet lát, akkor ezt frissített térbeli felületként kell kezelnie.
- Ha az alkalmazás már nem lát egy ismert azonosítóval rendelkező térbeli felületet, ezt eltávolított térbeli felületként kell kezelnie.
Az egyes alkalmazásokon múlik, hogy a következő döntéseket hozhassa:
- Új térbeli felületek esetén a hálót kell igényelni?
- Általában a hálót azonnal be kell kérni az új térbeli felületekre, amelyek hasznos új információkat nyújthatnak a felhasználó számára.
- A felhasználó közelében és előtt lévő új térbeli felületeknek azonban elsőbbséget kell adni, és először a hálójukat kell kérni.
- Ha az új hálóra nincs szükség, ha például az alkalmazás véglegesen vagy ideiglenesen "zárolta" a környezet modelljét, akkor nem kell kérni.
- Frissített térbeli felületek esetén a hálót kell igényelni?
- A felhasználó közelében és előtt lévő frissített térbeli felületeket prioritásként kell megadni, és először a hálójukat kell kérni.
- Az is előfordulhat, hogy az új felületek nagyobb prioritást élveznek, mint a frissített felületek, különösen a vizsgálati élmény során.
- A feldolgozási költségek csökkentése érdekében az alkalmazások szabályozhatják a térbeli felületek frissítéseinek feldolgozásának sebességét.
- Arra lehet következtetni, hogy a térbeli felület változásai kisebbek, például ha a felület határai kicsik, ebben az esetben előfordulhat, hogy a frissítés nem lesz elég fontos a feldolgozáshoz.
- Frissítések a felhasználó aktuális érdeklődési körén kívüli térbeli felületekre teljesen figyelmen kívül hagyható, de ebben az esetben hatékonyabb lehet a felszíni megfigyelő által használt térbeli határoló kötetek módosítása.
- Az eltávolított térbeli felületek esetében el kell vetni a hálót?
- Általában a hálót azonnal el kell vetni az eltávolított térbeli felületek esetében, hogy a hologram elzáródása helyes maradjon.
- Ha azonban az alkalmazás okkal feltételezi, hogy hamarosan újra megjelenik egy térbeli felület (a felhasználói felület kialakítása alapján), akkor hatékonyabb lehet megtartani, mint elvetni a hálót, és később újból létrehozni.
- Ha az alkalmazás a felhasználó környezetének nagy léptékű modelljét készíti, akkor előfordulhat, hogy egyáltalán nem szeretne elvetni semmilyen hálót. Ennek ellenére továbbra is korlátoznia kell az erőforrás-használatot, esetleg úgy, hogy hálókat dob a lemezre, amint a térbeli felületek eltűnnek.
- Néhány viszonylag ritka esemény a térbeli felület létrehozása során okozhatja, hogy a térbeli felületeket új térbeli felületek váltják fel hasonló helyen, de különböző azonosítókkal. Így azokat az alkalmazásokat, amelyek úgy döntenek, hogy nem vetik el az eltávolított felületet, ügyelniük kell arra, hogy ne legyenek ugyanazon a helyen több erősen átfedésben lévő térbeli felület hálói.
- El kell vetni a hálót más térbeli felületeken?
- Még akkor is, ha létezik térbeli felület, ha már nem hasznos a felhasználói élmény számára, akkor el kell vetni. Ha például az alkalmazás "lecseréli" az átjáró másik oldalán lévő helyiséget egy másik virtuális térre, akkor a helyiség térbeli felületei már nem számítanak.
Íme egy példa hálós gyorsítótárazási stratégiára térbeli és időbeli hiszterézis használatával:
- Vegyünk egy olyan alkalmazást, amely frustum alakú térbeli érdeklődési kört kíván használni, amely követi a felhasználó tekintetét, miközben körülnéznek és körbejárnak.
- A térbeli felület ideiglenesen eltűnhet ebből a kötetből, egyszerűen azért, mert a felhasználó távolodik a felülettől, vagy lépésekkel távolabb van tőle... csak egy pillanat múlva visszatekinthet, vagy közelebb kerülhet. Ebben az esetben a háló elvetése és újbóli létrehozása ehhez a felülethez számos redundáns feldolgozást jelent.
- A feldolgozott módosítások számának csökkentése érdekében az alkalmazás két térbeli felszíni megfigyelőt használ, az egyik a másikban található. A nagyobb kötet gömb alakú, és követi a felhasználó "lazily"; csak akkor mozog, ha szükséges, hogy a középpontja a felhasználótól 2,0 méterre legyen.
- Az új és frissített térbeli felületi hálókat mindig a kisebb belső felületi megfigyelőből dolgozzák fel, a hálókat azonban gyorsítótárazzák, amíg el nem tűnnek a nagyobb külső felületi megfigyelőből. Ez lehetővé teszi, hogy az alkalmazás elkerülje a sok redundáns módosítás feldolgozását a helyi felhasználók áthelyezése miatt.
- Mivel a térbeli felület a nyomkövetési veszteség miatt átmenetileg eltűnhet, az alkalmazás a nyomkövetési veszteség során az eltávolított térbeli felületeket is eltávolítja.
- Általánosságban elmondható, hogy egy alkalmazásnak értékelnie kell a csökkentett frissítésfeldolgozás és a megnövekedett memóriahasználat közötti kompromisszumot az ideális gyorsítótárazási stratégia meghatározásához.
Renderelés
A térbeli leképezési hálók általában három elsődleges módon használhatók a rendereléshez:
- Felületi vizualizációkhoz
- Gyakran hasznos a térbeli felületek közvetlen vizualizációja. Ha például az objektumok árnyékait térbeli felületekre öntötte, hasznos vizuális visszajelzést adhat a felhasználónak, miközben hologramokat helyez el a felületeken.
- Az egyik dolog, amit szem előtt kell tartani, hogy a térbeli hálók különböznek attól a hálóktól, amelyeket egy 3D-s művész létrehozhat. A háromszög topológiája nem lesz olyan "tiszta", mint az ember által létrehozott topológia, és a háló különböző hibáktól szenved.
- Egy kellemes vizuális esztétikának létrehozásához érdemes lehet némi hálófeldolgozást végezni, például lyukak kitöltéséhez vagy sima felületi normál állapotok betöltéséhez. A háló topológiájának és normáljainak közvetlen vizualizációja helyett egy árnyékolót is érdemes használnia az előadó által tervezett textúrák a hálóra való kivetítéséhez.
- Hologramok elzáródása valós felületek mögött
- A térbeli felületek csak mélységi áthatolással jeleníthetők meg, ami csak a mélységi pufferre van hatással, és nem befolyásolja a színmegjelenítési célokat.
- Ez a mélységi puffert a térbeli felületek mögötti, később renderelt hologramok eltitkosításához prímbe rendezi. A hologramok pontos elzáródása fokozza azt az érzést, hogy a hologramok valóban léteznek a felhasználó fizikai területén.
- A csak mélységi megjelenítés engedélyezéséhez frissítse a keverési állapotot úgy, hogy a RenderTargetWriteMask érték nullára legyen állítva az összes színmegjelenítési célhoz.
- A valós felületek által elzárt hologramok megjelenésének módosításához
- A normál módon renderelt geometria el van rejtve, ha el van rejtve. Ez úgy érhető el, hogy a mélységi rajzsablon állapotában lévő mélységfüggvényt "kisebb vagy egyenlő" értékre állítja, ami miatt a geometria csak akkor lesz látható, ha közelebb van a kamerához, mint az összes korábban renderelt geometria.
- Hasznos lehet azonban, ha bizonyos geometriák akkor is láthatóak maradnak, ha elzárt állapotban vannak, és módosíthatják a megjelenését, amikor elzárt állapotba kerülnek, így vizuális visszajelzést adhatnak a felhasználónak. Ez lehetővé teszi például, hogy az alkalmazás megjelenítse a felhasználónak egy objektum helyét, miközben egyértelművé teszi, hogy egy valós felület mögött van.
- Ennek eléréséhez renderelje a geometriát második alkalommal egy másik árnyékolóval, amely létrehozza a kívánt "elzárt" megjelenést. Mielőtt második alkalommal renderelné a geometriát, végezze el a mélységi rajzsablon állapotát két módosítással. Először állítsa a mélységi függvényt "nagyobb vagy egyenlő" értékre, hogy a geometria csak ott legyen látható, ahol távolabb van a kamerától, mint az összes korábban renderelt geometria. Másodszor állítsa a DepthWriteMask értéket nullára, hogy a mélységi puffer ne legyen módosítva (a mélységi puffernek továbbra is a kamerához legközelebbi geometria mélységét kell jelölnie).
A teljesítmény fontos szempont a térbeli leképezési hálók renderelése során. Íme néhány, a térbeli leképezési hálók renderelésére vonatkozó megjelenítési teljesítménytechnika:
- Háromszög sűrűségének beállítása
- Amikor térbeli felületi hálókat kér a felszíni megfigyelőtől, kérje meg a háromszöghálók legkisebb sűrűségét, amely elegendő lesz az Igényeinek.
- A felület háromszögsűrűségét a felülettől való távolságától és a felhasználói élményhez való relevanciájától függően érdemes lehet felszínen módosítani.
- A háromszögek számának csökkentése csökkenti a memóriahasználatot és a csúcspont feldolgozási költségeit a GPU-n, bár ez nem befolyásolja a képpontfeldolgozás költségeit.
- Frustum culling használata
- A Frustum culling kihagyja azokat a rajzobjektumokat, amelyek nem láthatók, mert az aktuális megjelenítési frustumon kívül esnek. Ez csökkenti a processzor- és GPU-feldolgozási költségeket is.
- Mivel a levágást hálónként végzik, és a térbeli felületek nagyok lehetnek, az egyes térbeli felületi hálók kisebb darabokra bontása hatékonyabb vágást eredményezhet (mivel kevesebb külső háromszög jelenik meg). Van azonban egy kompromisszum; minél több hálója van, annál több hívásra van szüksége, ami növelheti a processzorköltségeket. Szélsőséges esetben maguk a frustum culling számítások is lehetnek mérhető CPU-költségek.
- Megjelenítési sorrend módosítása
- A térbeli felületek általában nagyok, mivel a felhasználó teljes környezetét képviselik. A GPU képpontfeldolgozási költségei magasak lehetnek, különösen olyan esetekben, amikor egynél több látható geometriaréteg van (beleértve a térbeli felületeket és más hologramokat is). Ebben az esetben a felhasználóhoz legközelebbi réteg elzárja a rétegeket, így a távoli rétegek renderelésével töltött GPU-idő elveszik.
- A GPU-n végzett redundáns munka csökkentése érdekében segít az átlátszatlan felületek előtér-hát sorrendben való megjelenítésében (előbb közelebbiek, a távolabbiak utolsók). Az "átlátszatlan" alatt azokat a felületeket értjük, amelyeknél a DepthWriteMask a mélységi rajzsablon állapotában egy értékre van állítva. A legközelebbi felületek renderelésekor a rendszer a mélységi puffert prímbe igazítja, hogy a távoliabb felületeket a GPU képpontfeldolgozója hatékonyan kihagyja.
Hálófeldolgozás
Előfordulhat, hogy egy alkalmazás különböző műveleteket szeretne végezni a térbeli felületi hálókon az igényeinek megfelelően. Az egyes térbeli felületi hálókhoz biztosított index- és csúcspontadatok ugyanazt a jól ismert elrendezést használják, mint a csúcspont és az indexpufferek , amelyeket háromszöghálók renderelésére használnak az összes modern renderelési API-ban. Az egyik legfontosabb tény azonban, hogy a térbeli leképezési háromszögek előtér-óramutató járásával megegyező sorrendben vannak. Minden háromszöget három csúcsindex jelöl a háló indexpufferében, és ezek az indexek az óramutató járásával megegyező sorrendben azonosítják a háromszög csúcsait, amikor a háromszöget az első oldalról tekintik meg. A térbeli felületi hálók elülső (vagy külső) oldala megegyezik a valós felületek elülső (látható) oldalával.
Az alkalmazások csak akkor egyszerűsítsék a hálót, ha a felszíni megfigyelő által biztosított legvadrabb háromszög sűrűsége még mindig nem elég durva - ez a munka számítási szempontból költséges, és a futtatókörnyezet már elvégzi a különböző részletességi szintek létrehozásához.
Mivel minden egyes felszíni megfigyelő több, egymáshoz nem kapcsolódó térbeli felületet is képes biztosítani, előfordulhat, hogy egyes alkalmazások ezeket a térbeli felületi hálókat egymáshoz szeretnék vágni, majd összezárni őket. Általában a kivágási lépésre van szükség, mivel a közeli térbeli felszíni hálók gyakran kissé átfedésben vannak.
Raycasting és Ütközés
Ahhoz, hogy egy fizikai API (például a Havok) sugárszórási és ütközési funkciókat biztosíthasson az alkalmazásoknak a térbeli felületekhez, az alkalmazásnak térbeli felületi hálókat kell biztosítania a fizikai API számára. A fizikához használt hálók gyakran a következő tulajdonságokkal rendelkeznek:
- Csak kis számú háromszöget tartalmaznak. A fizikai műveletek számítási igényesebbek, mint a renderelési műveletek.
- "Vízmentesek". A szilárdnak szánt felületeken nem lehetnek kis lyukak; még a túl kicsi lyukak is problémákat okozhatnak.
- Domború hajótestekké alakulnak át. A domború hajótestek kevés sokszögből állnak, és nincsenek lyukak, és sokkal számításilag hatékonyabbak a feldolgozáshoz, mint a nyers háromszöghálók.
A térbeli felületeken végzett sugárszórás során vegye figyelembe, hogy ezek a felületek gyakran összetett, zsúfolt alakzatok, tele rendetlen apró részletekkel - akárcsak az asztala! Ez azt jelenti, hogy egyetlen sugárszórás gyakran nem elegendő ahhoz, hogy elegendő információt nyújtson a felület alakjáról és a közelében lévő üres tér alakjáról. Általában érdemes sok sugárszórást végezni egy kis területen belül, és az összesített eredményeket használni a felület megbízhatóbb megértéséhez. Ha például átlagosan 10 raycastot használunk a hologramok felületi elhelyezésének irányításához, sokkal simább és kevésbé "jittery" eredményt ad, amely csak egyetlen raycastot használ.
Ne feledje azonban, hogy minden raycast nagy számítási költséggel rendelkezhet. A használati forgatókönyvtől függően a térbeli felületeken lévő lyukak simításához és eltávolításához (a térhálók frissítésekor) a hálófeldolgozás számítási költségével kell elszámolnia az extra (minden keretben elvégzett) raycastok számítási költségeit.
A környezetszkennelés élménye
Minden térbeli leképezést használó alkalmazásnak fontolóra kell vennie a "vizsgálati élmény" biztosítását; az a folyamat, amelyen keresztül az alkalmazás végigvezeti a felhasználót az alkalmazás megfelelő működéséhez szükséges felületek vizsgálatára.
Példa a vizsgálatra
Ennek a vizsgálati felületnek a jellege az egyes alkalmazások igényeitől függően nagy mértékben változhat, de két fő alapelvnek kell vezérelnie a kialakítását.
Először is a felhasználóval való egyértelmű kommunikáció az elsődleges szempont. A felhasználónak mindig tisztában kell lennie azzal, hogy teljesülnek-e az alkalmazás követelményei. Ha nem teljesülnek, azonnal egyértelművé kell tenni a felhasználó számára, hogy miért van ez így, és gyorsan el kell őket vezetni a megfelelő művelet végrehajtásához.
Másodszor, az alkalmazásoknak meg kell próbálniuk egyensúlyt teremteni a hatékonyság és a megbízhatóság között. Ha ez megbízhatóan lehetséges, az alkalmazásoknak automatikusan elemeznie kell a térbeli leképezési adatokat a felhasználói idő megtakarítása érdekében. Ha ez nem lehetséges megbízhatóan, az alkalmazásoknak ehelyett lehetővé kell tenni, hogy a felhasználó gyorsan biztosítsa az alkalmazásnak a szükséges további információkat.
A megfelelő vizsgálati élmény kialakításához vegye figyelembe, hogy az alábbi lehetőségek közül melyik alkalmazható az alkalmazásra:
Nincs beolvasási élmény
- Az alkalmazások tökéletesen működhetnek irányított vizsgálati élmény nélkül; megismeri a természetes felhasználói mozgás során megfigyelt felületeket.
- Például egy olyan alkalmazáshoz, amely lehetővé teszi, hogy a felhasználó holografikus festékkel rajzoljon a felületekre, csak a felhasználó számára jelenleg látható felületek ismeretére van szükség.
- Előfordulhat, hogy a környezet már akkor is beolvasható, ha a felhasználó már sok időt töltött a HoloLens használatával.
- Ne feledje azonban, hogy a térbeli leképezés által használt kamera csak 3,1 m-et lát a felhasználó előtt, így a térbeli leképezés nem fog tudni távolabbi felületekről, hacsak a felhasználó nem figyeli meg őket közelebbről a múltban.
- Így a felhasználó tisztában van azzal, hogy mely felületek lettek beolvasva, az alkalmazásnak vizuális visszajelzést kell adnia erre a hatásra, például ha virtuális árnyékokat ad a beolvasott felületekre, azzal segíthet a felhasználónak hologramokat elhelyezni ezen a felületen.
- Ebben az esetben a térbeli felszíni megfigyelő határoló köteteit az egyes kereteket egy test által zárolt térbeli koordinátarendszerre kell frissíteni, hogy követhessék a felhasználót.
Megfelelő hely megkeresése
- Az alkalmazásokat meghatározott követelményekkel rendelkező helyen való használatra lehet tervezni.
- Előfordulhat például, hogy az alkalmazás üres területet igényel a felhasználó körül, hogy biztonságosan gyakorolhassa a holografikus kung-fu-t.
- Az alkalmazásoknak minden konkrét követelményt előre közölniük kell a felhasználóval, és egyértelmű vizuális visszajelzéssel kell megerősíteniük őket.
- Ebben a példában az alkalmazásnak meg kell jelenítenie a szükséges üres terület mértékét, és vizuálisan ki kell emelnie a zónán belüli nem kívánt objektumok jelenlétét.
- Ebben az esetben a térbeli felszíni megfigyelő határoló köteteinek egy világra zárt térbeli koordinátarendszert kell használniuk a kiválasztott helyen.
Megfelelő felületkonfiguráció megkeresése
- Egy alkalmazáshoz szükség lehet a felületek meghatározott konfigurációjára, például két nagy, lapos, ellentétes falra egy holografikus tükörcsarnok létrehozásához.
- Ilyen esetekben az alkalmazásnak elemeznie kell a térbeli leképezés által biztosított felületeket a megfelelő felületek észleléséhez és a felhasználó felé irányításához.
- A felhasználónak tartalék lehetőséggel kell rendelkeznie, ha az alkalmazás felületelemzése nem megbízható. Ha például az alkalmazás helytelenül azonosítja az átjárót lapos falként, a felhasználónak egyszerű módszerre van szüksége a hiba kijavításához.
A környezet egy részének vizsgálata
- Előfordulhat, hogy egy alkalmazás csak a környezet egy részét szeretné rögzíteni a felhasználó utasítása szerint.
- Az alkalmazás például beolvassa a szoba egy részét, hogy a felhasználó holografikus besorolású hirdetést tegyen közzé az eladni kívánt bútorokhoz.
- Ebben az esetben az alkalmazásnak rögzítenie kell a térbeli leképezési adatokat a felhasználó által a vizsgálat során megfigyelt régiókban.
Az egész szoba beolvasása
- Az alkalmazásokhoz szükség lehet az aktuális helyiség összes felületének vizsgálatára, beleértve a felhasználó mögötti felületeket is.
- Egy játék például Gulliver szerepkörbe helyezheti a felhasználót, és ostrom alá kerülhet több száz apró Lilliputiantól, minden irányból közeledve.
- Ilyen esetekben az alkalmazásnak meg kell határoznia, hogy az aktuális helyiségben hány felület van már beolvasva, és a felhasználó tekintetét arra kell irányítania, hogy jelentős hézagokat töltsön ki.
- Ennek a folyamatnak a kulcsa a vizuális visszajelzés, amely egyértelművé teszi a felhasználó számára, hogy mely felületeket még nem vizsgálták meg. Az alkalmazás például távolságalapú köd használatával vizuálisan kiemelheti azokat a régiókat, amelyeket nem fednek le térbeli leképezési felületek.
A környezet kezdeti pillanatképének készítése
- Előfordulhat, hogy egy alkalmazás a kezdeti "pillanatkép" elkészítése után figyelmen kívül szeretné hagyni a környezet összes módosítását.
- Ez megfelelő lehet a felhasználó által létrehozott adatoknak a környezet kezdeti állapotához szorosan társuló megszakadásának elkerülése érdekében.
- Ebben az esetben az alkalmazásnak másolatot kell készítenie a térbeli leképezési adatokról a kezdeti állapotában a vizsgálat befejezése után.
- Az alkalmazásoknak továbbra is frissítéseket kell kapniuk a térbeli leképezési adatokhoz, ha a hologramokat a környezet továbbra is megfelelően elzárja.
- A térbeli leképezési adatok folyamatos frissítése lehetővé teszi a bekövetkezett változások vizualizációját is, tisztázva a felhasználó számára a környezet korábbi és jelenlegi állapotai közötti különbségeket.
A környezet felhasználó által kezdeményezett pillanatképeinek készítése
- Előfordulhat, hogy egy alkalmazás csak akkor kíván reagálni a környezeti változásokra, ha a felhasználó utasítást ad rá.
- A felhasználó például több 3D-s "szobrot" hozhat létre egy barátjáról azáltal, hogy különböző pillanatokban rögzíti a pózait.
A környezet módosításának engedélyezése a felhasználó számára
- Az alkalmazásokat úgy lehet megtervezni, hogy valós időben reagáljanak a felhasználó környezetében végrehajtott módosításokra.
- A függönyt rajzoló felhasználó például "jelenetváltást" válthat ki a másik oldalon zajló holografikus játékhoz.
Útmutató a felhasználónak a térbeli leképezési adatok hibáinak elkerüléséhez
- Előfordulhat, hogy egy alkalmazás útmutatást szeretne nyújtani a felhasználónak a környezet vizsgálata közben.
- Ez segíthet a felhasználónak elkerülni bizonyos típusú hibákat a térbeli leképezési adatokban, például úgy, hogy távol marad a napvilágított ablakoktól vagy tükröktől.
További információ, hogy a térbeli leképezési adatok "tartománya" nem korlátlan. Bár a térbeli leképezés egy állandó adatbázist hoz létre nagy méretű terekből, csak a felhasználó körül korlátozott méretű "buborékban" teszi elérhetővé az adatokat az alkalmazások számára. Ha egy hosszú folyosó elején kezd, és elég messze jár a kezdetektől, akkor végül eltűnnek a térbeli felületek az elején. Ezt úgy csökkentheti, ha gyorsítótárazzák ezeket a felületeket az alkalmazásban, miután azok eltűntek a rendelkezésre álló térbeli leképezési adatokból.
Hálófeldolgozás
Segíthet a felületek gyakori hibáinak észlelésében, valamint a térbeli leképezési adatok megfelelő szűrésében, eltávolításában vagy módosításában.
Ne feledje, hogy a térbeli leképezési adatoknak a lehető leghűségesebbnek kell lenniük a valós felületekhez, így bármilyen feldolgozás során kockázatokat alkalmaz, amelyek a felületeket az "igazságtól" távolabbra tolják el.
Íme néhány példa a hálófeldolgozás különböző típusaira, amelyek hasznosak lehetnek:
Furat kitöltése
- Ha egy sötét anyagból készült kis objektumot nem sikerül beolvasni, egy lyukat hagy a környező felületen.
- A lyukak befolyásolják az elzáródást: a hologramok egy állítólag átlátszatlan valós felületen lévő lyukon keresztül láthatók.
- A lyukak hatással vannak a sugárszórásokra: ha raycastekkel segíti a felhasználókat a felületekkel való interakcióban, nem kívánatos, hogy ezek a sugarak áthaladjanak a lyukakon. Az egyik megoldás egy több raycastből álló csomag használata, amely egy megfelelő méretű régiót fed le. Ez lehetővé teszi a "kiugró" eredmények szűrését, így még ha egy raycast áthalad egy kis lyukon, az összesített eredmény továbbra is érvényes lesz. Ez a megközelítés azonban számítási költséggel jár.
- A lyukak hatással vannak a fizikai ütközésekre: a fizikai szimuláció által vezérelt objektumok áteshetnek a padlón lévő lyukon, és elveszhetnek.
- Az ilyen lyukakat a felületi hálóban lehet algoritmusosan kitölteni. Az algoritmust azonban úgy kell finomhangolnia, hogy a "valódi lyukak", például az ablakok és az ajtók ne legyenek kitöltve. Nehéz lehet megbízhatóan megkülönböztetni a "valódi lyukakat" a "képzeletbeli lyukaktól", ezért különböző heurisztikus eljárásokkal kell kísérleteznie, például a "méret" és a "határalakzat" használatával.
Hallucináció eltávolítása
- A tükröződések, a fényes fények és a mozgó objektumok a levegőben lebegve hagyhatják a kis, hátrahagyott "hallucinációkat".
- A hallucinációk befolyásolják az elzáródást: a hallucinációk akkor válnak láthatóvá, amikor sötét alakzatok mozognak az előtt, és elzárják a többi hologramot.
- A hallucinációk hatással vannak a sugárszórásokra: ha raycasteket használ a felhasználók felületekkel való interakciójának elősegítésére, ezek a sugarak hallucinációt okozhatnak a mögötte lévő felület helyett. A lyukakhoz hasonlóan az egyik megoldás az, ha egyetlen sugárszórás helyett több sugárszórást használunk, de ez is számítási költséggel jár.
- A hallucinációk hatással vannak a fizikai ütközésekre: a fizikai szimuláció által vezérelt objektumok elakadhatnak egy hallucináció ellen, és nem tudnak mozogni a tér látszólag tiszta területén.
- Az ilyen hallucinációk kiszűrhetőek a felszíni hálóból. A lyukakhoz hasonlóan azonban úgy kell hangolnia az algoritmust, hogy a valódi kis tárgyakat, például a lámpaállványokat és a kifogópontokat ne távolítsák el.
Simítás
- A térbeli leképezés olyan felületeket adhat vissza, amelyek látszólag durvaak vagy zajosak a valós társaikhoz képest.
- A simaság hatással van a fizikai ütközésekre: ha a padló durva, a fizikailag szimulált golflabda nem biztos, hogy egyenes vonalban gördül végig rajta.
- A simaság hatással van a renderelésre: ha egy felület közvetlenül van vizualizálva, a durva felületi normálok hatással lehetnek a megjelenésére, és megzavarhatják a "tiszta" megjelenést. Ezt a felület rendereléséhez használt árnyékoló megfelelő megvilágításával és anyagmintáival lehet enyhíteni.
- A felületi hálóban elsimíthatja a durvaságot. Ez azonban távolabb kerülhet a megfelelő valós felülettől. A szoros levelezés fenntartása fontos a hologramok pontos eltömődésének biztosításához, valamint ahhoz, hogy a felhasználók pontos és kiszámítható interakciókat érjenek el a holografikus felületekkel.
- Ha csak kozmetikai módosításra van szükség, elegendő lehet a csúcspontok normál állapotának simításához a csúcspontok pozícióinak módosítása nélkül.
Sík keresése
- Számos olyan elemzési forma létezik, amelyet egy alkalmazás a térbeli leképezés által biztosított felületeken kíván végrehajtani.
- Az egyik egyszerű példa a "síkkeresés"; a felületek határoló, többnyire planáris régióinak azonosítása.
- A planáris régiók holografikus munkafelületként használhatók, olyan régiókként, ahol az alkalmazás automatikusan elhelyezheti a holografikus tartalmat.
- A planáris régiók korlátozhatják a felhasználói felületet, hogy a felhasználók az igényeiknek leginkább megfelelő felületekkel kommunikáljanak.
- A planáris régiók ugyanúgy használhatók, mint a való világban, a holografikus megfelelőkhöz olyan funkcionális objektumokhoz, mint az LCD képernyők, táblázatok vagy rajztáblák.
- A planar-régiók játékterületeket határozhatnak meg, amelyek a videojátékok szintjeinek alapját alkotják.
- A planáris régiók segíthetnek a virtuális ügynököknek a való világban való navigálásban azáltal, hogy azonosítják azokat a területeket, amelyeken a valós emberek valószínűleg járnak.
Prototípus-kezelés és hibakeresés
Hasznos eszközök
- A HoloLens emulátor használatával térbeli leképezést használó alkalmazásokat fejleszthet fizikai HoloLens-hozzáférés nélkül. Lehetővé teszi, hogy valós környezetben szimuláljon egy élő munkamenetet egy HoloLensen, az alkalmazás által általában felhasznált összes adattal, beleértve a HoloLens mozgását, a térbeli koordinátarendszereket és a térbeli leképezési hálókat. Ez megbízható, megismételhető bemenetet biztosít, amely hasznos lehet a problémák hibakereséséhez és a kód módosításainak kiértékeléséhez.
- Egy forgatókönyv reprodukálásához rögzítse a hálózaton keresztüli térbeli leképezési adatokat egy élő HoloLensből, majd mentse lemezre, és használja fel őket a későbbi hibakeresési munkamenetekben.
- A Windows eszközportál 3D nézete lehetővé teszi a térbeli leképezési rendszeren keresztül jelenleg elérhető összes térbeli felület megtekintését. Ez az alkalmazáson belüli térbeli felületek összehasonlításának alapja; Könnyen megállapíthatja például, hogy hiányoznak-e térbeli felületek, vagy rossz helyen jelennek-e meg.
Általános prototípus-kezelési útmutató
- Mivel a térbeli leképezési adatok hibái erősen befolyásolhatják a felhasználói élményt, javasoljuk, hogy az alkalmazást számos környezetben tesztelje.
- Ne ragadjon csapdába abban a szokásban, hogy mindig ugyanazon a helyen tesztel, például az asztalánál. Győződjön meg arról, hogy különböző pozíciók, alakzatok, méretek és anyagok különböző felületeit teszteli.
- Hasonlóképpen, bár a szintetikus vagy rögzített adatok hasznosak lehetnek a hibakereséshez, ne legyenek túlságosan függve ugyanazoktól a tesztelési esetekből. Ez késleltetheti az olyan fontos problémák megtalálását, amelyeket a változatosabb tesztelés korábban észlelt volna.
- Érdemes valódi (ideális esetben nem kiosztott) felhasználókkal tesztelni, mert előfordulhat, hogy nem ugyanúgy használják a HoloLenst vagy az alkalmazást, mint Ön. Sőt, meglepődhet, hogy az emberek viselkedése, tudása és feltételezései mennyire eltérőek lehetnek!
Hibaelhárítás
- A felületi hálók megfelelő tájolásához minden GameObjectnek aktívnak kell lennie, mielőtt elküldené a SurfaceObservernek a háló felépítéséhez. Ellenkező esetben a hálók megjelennek a térben, de furcsa szögben forognak.
- A SurfaceObserverrel kommunikáló szkriptet futtató GameObject objektumot a forrásra kell állítani. Ellenkező esetben minden, a SurfaceObservernek létrehozott és a SurfaceObservernek küldött GameObject-objektumnak eltolása megegyezik a szülőjátékobjektum eltolásával. Így a hálók több méter távolságra is megjelenhetnek, ami megnehezíti a hibakeresést.