Sdílet prostřednictvím


Přizpůsobení operací

Refit operations in World Locking Tools are when the system determining of some of the objects in the scene would better register those objects with their physical world anchors.

Tato část se pokusí poskytnout další přehled o situacích, které vedou k opětovnému přizpůsobení operací, a mechaniku samotných operací.

Je důležité zdůraznit, že refit operace probíhají zřídka. Výchozí tolerance chyb, které aktivují operaci opětovného uvolnění, je možné přizpůsobit aplikací, ale za normálních okolností aktivují operace opětovného uvolnění prostředí hybridní reality. Mezi podmínky, které mohou přispět k potřebě uvolnění, patří:

  • Ztráta sledování kvůli špatnému prostředí
  • Rychlý pohyb hlavy ovlivňující kontrolu prostředí.
  • Dynamická prostředí.
  • Zavírání smyčky (to znamená, že se hromadí chyby sledování na cestě k kruhovému objezdu, které vede zpět na dříve navštívené místo).

Hlavní příčinou těchto problémů je špatné sledování – jinými slovy, sledování chyb. S rozumným prostředím, které vytváří přiměřeně dobré sledování, a zejména po počátečním prohledávání prostoru, se operace přizpůsobení stanou mimořádně vzácné.

Sloučení fragmentů

Mnoho podmínek může vést k existenci více fragmentů, což je nejčastější příčinou dočasná ztráta sledování. Fragmenty jsou definovány jako kolekce objektů sdílejících společný souřadnicový prostor, ale kde souřadnicový prostor jednoho fragmentu je neurčitý vzhledem k jinému fragmentu.

Pokud je přijato a zpracováno dostatek nových dat senzoru, aby byl obsah dvou dříve nesouvisejících fragmentů správně umístěn ve stejném prostoru, je možné provést sloučení fragmentů.

Nový souřadnicový prostor, do kterého se sloučí obsah dvou (nebo více) fragmentů, je libovolný. Zde uvádíme, že konečný souřadnicový prostor bude mít jeden z mezer, což je relevantní, protože to znamená, že všechny fragmenty, které se sloučí s výjimkou jednoho, cílového fragmentu, budou potřebovat upravené souřadnice. Obsah fragmentu zvoleného jako konečný cíl sloučení nebude ovlivněn.

Transformace úprav se vypočítá systémem pro každou slučovanou zdrojovou fragmenty. AdjustLocationDelegate pro každý bod přílohy v těchto fragmentech bude volána s transformací úpravy. Znovu platí, že body přílohy v cílovém fragmentu nebudou ovlivněny ani nebudou volána jejich AdjustLocationDelegates.

Dvě místnosti spojené tmavým scénářem chodby v popisu fragmentů jsou příkladem jedné takové situace. Během počáteční fáze byly oba fragmenty (místnosti) prohledány, ale nejsou k dispozici žádné informace o relativních pozicích těchto dvou fragmentů. Takže souřadnicový systém, do kterého je obsah každého fragmentu umístěn, je libovolný, pokud je konstantní napříč všemi objekty v této místnosti. Například obsah každé místnosti může být v souřadnicovém systému s jeho původem v jihozápadu této místnosti. Souřadnice dvouobjektůchmm bodům označují pozice dvou objektů

Při získání dalších informací existuje příležitost upravit souřadnice obsahu druhého fragmentu tak, aby souřadnice jeho obsahu byly smysluplné vzhledem k objektům v prvním fragmentu. Například osvětlení chodby může být zapnuté a chodba prochází, přemostění mezery mezi těmito dvěma fragmenty. Pokud jsou souřadnice všech objektů v obou místnostech upraveny tak, aby byly ve stejném konzistentním souřadnicovém prostoru, mezi těmito dvěma fragmenty už neexistuje žádný skutečný rozdíl, takže jejich obsah může být považován za všechny, které patří do jediného společného fragmentu.

Tato operace sbalení více fragmentů do jednoho fragmentu je operace sloučení.

Je důležité si uvědomit, že u normálních objektů Unity umístěných ve scéně ve světě uzamčeného prostoru nebude operace sloučení mít žádný vliv. Přesun objektů z refit operací probíhá pouze prostřednictvím bodů přílohy.

Operace opětovného uvolnění

Další situací, která nastane, je situace, kdy jsou pozice ukotvení v průběhu času upřesněny. Zdá se, že transformace otočení/posunu už není vhodná ke kompenzaci rozdílu mezi počátečními hrubými pozicemi ukotvení a novějšími vylepšenými pozicemi ve fyzickém světě. Mějte na paměti, že samotné kotvy se neustále pohybují ve spongy prostoru. Ale body přílohy odvozené z těchto ukotvení jsou pevné ve světě uzamčeného prostoru.

Když systém rozpozná, že body přílohy, které spravuje, by mohly být lépe registrovány ve fyzickém světě kvůli aktualizacím ukotvení pozic, pak má další příležitost pro událost opravy. Tato úprava pozic bodů přílohy tak, aby odrážela nová data snímačů, se označuje jako operace opětovného uvolnění. Zatímco při slučovací operaci se obsah fragmentu upraví jednou transformací, aby se sloučily souřadnicové mezery dvou fragmentů do jednoho sjednoceného prostoru, uvolnění upraví každý bod přílohy jednotlivě na základě aktualizovaných pozic ukotvení, které ho ovlivňují.

Stejně jako v operaci sloučení je každý bod přílohy informován o své vypočítané transformaci úprav prostřednictvím adjustLocationDelegate.

Pokud jsou podmínky správné, může opětovné uvolnění provést také operaci sloučení. Toto sloučení bude považováno za implicitní část opětovného uvolnění: Pro sloučení nebudou generovány žádné samostatné události a transformace úprav doručená jako součást opětovného uvolnění bude zahrnovat jak individuální úpravu kvůli pohybu ukotvení, tak úpravu fragmentu z důvodu sloučení.

Reakce na přizpůsobení událostí

Při sloučení nebo opětovném uvolnění je reakce na přizpůsobení událostí v aplikaci. Přesněji řečeno, záleží na každém obslužné rutině bodů přílohy, protože různé typy objektů můžou reagovat odlišně. Objekty ovlivněné bodem přílohy se obvykle přesunou transformací úprav prostřednictvím jejich GameObject.transform. Pohyb může být implementován jiným mechanismem, například ručním přesouváním vrcholů. Pro některé aplikace může být dokonce výhodné zahodit objekty ovlivněné sloučením a zahájit nový cyklus vytváření.

Pointou je, že nástroje World Locking Tools nemají žádnou závislost na tom, jak nebo zda aplikace reaguje na opětovné přizpůsobení operací. Je zcela na potřebách vývojáře aplikací.

Upřednostňovaným mechanismem pro oznámení a reakci na operace přizpůsobení je bod přílohy. Další podrobnosti a možnosti jsou popsány v tomto článku.

Viz také