A Holographic Rendering áttekintése

Szolgáltatás HoloLens (első generációs) HoloLens 2. Modern headsetek
Renderelés ✔️ ✔️ ✔️

Holografikus renderelés

A holografikus renderelés kulcsa a használt eszköz ismerete. Az áttűnő kijelzővel(például a HoloLens)ad hozzá világítást a világhoz. A fekete képpontok teljesen átlátszóak, a világosabb képpontok pedig egyre inkább átlátszatlanok. Mivel a kijelzőkből származó fény a való világból lesz hozzáadva a fényhez, a fehér képpontok átlátszóak.

Bár a sztereotikus renderelés egy mélységi jel a hologramok számára, a földelési hatások hozzáadásával a felhasználók könnyebben láthatják, hogy egy hologram milyen felülethez közel van. Az egyik földelési technika az, hogy egy hologram körül egy árnyékot hozunk létre a közeli felületen, majd árnyékot renderelünk ennek a holdnak. Így úgy tűnik, hogy árnyéka kivonja a világítást a környezetből. A térbeli hang egy másik fontos mélységi jel, amely lehetővé teszi a felhasználóknak a hologram távolságának és relatív helyének okát.

Az átlátszatlan kijelzővelWindows Mixed Reality modern headsetekkel,amelyek blokkolják a világot. A fekete képpontok folytonos feketék, és minden más szín ilyen színként jelenik meg a felhasználó számára. Az alkalmazás felelős azért, hogy mindent renderel, amit a felhasználó lát. Ezért még fontosabb a folyamatos frissítési arány fenntartása, hogy a felhasználók kényelmesen el tudjanak edzeni.

Előrejelezni a renderelési paramétereket

A vegyes valóságú headsetek (HoloLens modern headsetek) folyamatosan követik a felhasználó fejének helyzetét és tájolását a környezetüktől függetlenül. Ahogy az alkalmazás megkezdi a következő képkocka előkészítését, a rendszer előrejelezi a felhasználó fejének helyét abban a pillanatban, amikor a képkocka megjelenik a kijelzőkön. Ezen előrejelzés alapján a rendszer kiszámítja a képkockához használni szükséges nézetet és leképezés-átalakításokat. Az alkalmazásnak ezeket az átalakításokat kell használnia a helyes eredmények eléréséhez. Ha a rendszer által biztosított átalakítások nincsenek használva, az eredményül kapott kép nem fog igazodni a való világhoz, ami felhasználói kellemetlenségeket okoz.

Megjegyzés

Annak pontos előrejelzéséhez, hogy egy új képkocka mikor éri el a kijelzőket, a rendszer folyamatosan méri az alkalmazás renderelési folyamatának tényleges végpontok közötti késését. Bár a rendszer igazodik a renderelési folyamat hosszához, javíthatja a hologram stabilitását, ha a lehető legrövidebben tartja a folyamatot.

A rendszer-előrejelzést speciális technikákkal bővítő alkalmazások felülbírálhatják a rendszernézet- és leképezés-átalakításokat. Ezeknek az alkalmazásoknak továbbra is a rendszer által biztosított átalakításokat kell használniuk az egyéni átalakítások alapjaként, hogy értelmes eredményeket hoznak létre.

Egyéb renderelési paraméterek

Képkockák renderelésekor a rendszer meghatározza a háttérpuffer nézetportját, amelyben az alkalmazásnak rajzolnia kell. Ez a nézetablak gyakran kisebb, mint a keretpuffer teljes mérete. A nézet méretétől függetlenül, miután az alkalmazás renderelte a keretet, a rendszer úgy méretezi fel a képet, hogy az a teljes megjelenítést kitöltse.

Az olyan alkalmazások esetében, amelyek nem képesek a szükséges frissítési sebességgel renderelésre, a rendszerremegjelenítő paraméterek konfigurálhatóak a memória nyomásának és a renderelési költségek csökkentésére a nagyobb képpont aliasok árán. A háttérpuffer formátuma is módosítható, ami egyes alkalmazások esetében segíthet a memória sávszélességének és a képpontban megadott átviteli sebesség javításában.

A renderelési frustum, felbontás és képkocka-érték, amelyben az alkalmazásnak renderelést kell kérnie, képkockáról keretre változhat, és a bal és jobb szem között is eltérő lehet. Ha például a vegyes valóságú rögzítés (MRC) aktív, és a fénykép-/videokamerás nézet konfigurációja nincs beválva, akkor előfordulhat, hogy az egyik szem nagyobb FOV-val vagy felbontással jelenik meg.

Egy adott képkocka esetén az alkalmazásnak a rendszer által biztosított nézet-átalakítással, leképezés-átalakítással és nézetportfeloldással kell renderelést használnia. Emellett az alkalmazásnak soha nem szabad feltételeznie, hogy a renderelési vagy megtekintési paraméterek rögzítettek maradnak a képkockák között. Az olyan motorok, mint a Unity, a saját kameraobjektumaikban kezelik ezeket az átalakításokat, hogy a felhasználók fizikai mozgása és a rendszer állapota mindig tiszteletben ható. Ha az alkalmazás lehetővé teszi a felhasználó virtuális mozgását a világon keresztül (például egy játékpad botjával), hozzáadhat egy szülőfúrás objektumot a kamera fölé, amely mozgatja azt. Ez azt okozza, hogy a kamera a felhasználó virtuális és fizikai mozgását is tükrözi. Ha az alkalmazás módosítja a rendszer által biztosított nézetátalakítási, leképezési vagy nézetport-dimenziót, a megfelelő felülbírálási API hívásával kell tájékoztatnia a rendszert.

A holografikus renderelés stabilitásának növelése érdekében az alkalmazásnak minden egyes Windows meg kell adnia a rendereléshez használt mélységi puffert. Ha az alkalmazás biztosít mélységi puffert, akkor összefüggő mélységi értékekkel kell rendelkezik, amelyek mélysége a kamera mérőóráiban van kifejezve. Ez lehetővé teszi, hogy a rendszer a képpontonkénti mélységű adatokat használja a tartalom jobb stabilizálására, ha a felhasználó fejének feje kis mértékben eltolást ér el az előrejelezett helytől. Ha nem tudja biztosítani a mélységi puffert, fókuszpontot és normált is biztosíthat, meghatározva egy olyan síkot, amely a tartalom nagy része át van vágva. Ha a mélységi puffer és a fókuszsík is meg van téve, a rendszer mindkettőt használhatja. Különösen hasznos, ha a mélységi puffert és egy sebességvektort is tartalmazó fókuszpontot is biztosít, amikor az alkalmazás mozgásban található hologramokat jelenít meg.

A témával kapcsolatos alacsony szintű részletekért tekintse meg a Renderelés DirectX-ben cikkét.

Holografikus kamerák

Windows Mixed Reality a holografikus kamerák fogalmát mutatjuk be. A holografikus kamerák hasonlóak a 3D-s grafikus szövegekben található hagyományos kamerákhoz; az extrinsic (pozíció és tájolás) és a belső kameratulajdonságokat is meghatározzák. (A nézet mezője például egy virtuális 3D jelenet megtekintésére használható.) A hagyományos 3D kamerákkal ellentétben az alkalmazás nem tudja szabályozni a kamera pozícióját, tájolását és belső tulajdonságait. A holografikus kamera helyzetét és tájolását implicit módon a felhasználó mozgása vezérli. A felhasználó mozgása képkocka-alapon továbbítható az alkalmazásnak egy nézet-átalakítással. Hasonlóképpen, a kamera belső tulajdonságait az eszköz bekeretezett száloptikása és a képkocka-áttűnés által továbbított képkocka határozza meg.

Az alkalmazás általában egyetlen sztereotikus kamerához fog renderelést. A robusztus renderelési hurok több kamerát is támogat, és mono és sztereotikus kamerákat is támogat. Előfordulhat például, hogy a rendszer arra kéri az alkalmazást, hogy más nézőpontból renderelje azt, amikor a felhasználó a headset alakjától függően aktivál egy funkciót, például a vegyes valóságú rögzítést (MRC). A több kamerát támogató alkalmazások úgy kapják meg őket, hogy feliratkoznak az általuk támogatott típusú kamerákra.

Kötetre renderelés

Az orvosi MRI-k vagy mérnöki kötetek 3D-ben való renderelése során gyakran használnak kötetre renderelési technikákat. Ezek a technikák érdekesek a vegyes valóságban, ahol a felhasználók természetes módon megtekinthetik az ilyen köteteket a kulcs szögeiből, egyszerűen a fejük mozgatásával.

Támogatott felbontások a HoloLens (első generációs)

  • A maximális nézetportméret a HolographicDisplay tulajdonsága. HoloLens a maximális nézetportméretre van állítva, amely alapértelmezés szerint 720p (1268x720).
  • A nézet mérete a ViewportScaleFactor a HolographicCamera-on való beállításával módosítható. Ez a mérettényező 0 és 1 között van.
  • A legalacsonyabb támogatott nézetportméret HoloLens (első generációs) a 720p 50%-a, ami 360p (634x360). Ez egy 0,5-ös ViewportScaleFactor.
  • Az 540p-esnél alacsonyabb érték használata nem ajánlott a vizualizáció teljesítménycsökkenése miatt, de felhasználható a képpontok kitöltési sebességének szűk keresztmetszetei azonosítására.

A 2. HoloLens támogatott megoldásai

  • Az aktuális és maximális támogatott renderelési célméretek a nézetkonfiguráció tulajdonságai. HoloLens 2. beállítás a maximális renderelési célméretre van beállítva, amely alapértelmezés szerint 1440x936.
  • Az alkalmazások a RequestRenderTargetSize metódus hívásával módosíthatják a renderelési célpufferek méretét, hogy új renderelési célméretet kérjenek. Új renderelési célméret lesz kiválasztva, amely megfelel vagy meghaladja a kért renderelési célméretet. Ez az API módosítja a renderelési célpuffer méretét, amelyhez memóriaáthelyezés szükséges a GPU-n. Ennek következményei a következők: A renderelési cél mérete a GPU memórianyomásának csökkentése érdekében skálázható le, és ezt a módszert nem szabad nagy gyakorisággal meghívni.
  • Az alkalmazások továbbra is ugyanúgy módosíthatják a nézetport méretét, mint az 1 HoloLens esetében. A GPU-n nincs további memóriaáthelyezés, így nagy gyakorisággal módosítható, de nem használható a GPU memórianyomásának csökkentésére.
  • A 2. HoloLens legalacsonyabb támogatott nézetméret 634x412, a ViewportScaleFactor értéke körülbelül 0,44, ha az alapértelmezett renderelési célméret van használatban.
  • Ha olyan renderelési célméretet ad meg, amely kisebb a legalacsonyabb támogatott nézetport-méretnél, a rendszer figyelmen kívül hagyja a nézetport-méretezési tényezőt.
  • Az 540p-esnél alacsonyabb érték használata nem ajánlott a vizualizáció teljesítménycsökkenése miatt, de felhasználható a képpontok kitöltési sebességének szűk keresztmetszetei azonosítására.

Lásd még

A holografikus renderelés lehetővé teszi, hogy az alkalmazás egy hologramot rajzoljon a felhasználó körüli világ egy pontos helyén, legyen szó akár a fizikai világról, akár egy Ön által létrehozott virtuális helyről. Hologramok hangból és fényből készült objektumok. A renderelés lehetővé teszi, hogy az alkalmazás hozzáadja a világítást.

Eszköztámogatás