Megosztás a következőn keresztül:


Fókuszpont a Unityben

Névtér: UnityEngine.XR.WSA
Típus: HolographicSettings

A fókuszpont segítségével a HoloLens egy tippet jeleníthet meg arról, hogyan lehet a legjobban stabilizálni a jelenleg megjelenített hologramokat.

Ha a Fókuszpontot a Unityben szeretné beállítani, minden keretet be kell állítania a HolographicSettings.SetFocusPointForFrame() használatával. Ha a fókuszpont nincs beállítva kerethez, a rendszer az alapértelmezett stabilizálósíkot használja.

Feljegyzés

Alapértelmezés szerint az új Unity-projekteknél be van állítva a "Mélységi puffermegosztás engedélyezése" beállítás. Ezzel a lehetőséggel egy modern asztali headseten vagy a Windows 10 2018. április 10-i frissítését (RS4) futtató HoloLensen futó Unity-alkalmazás automatikusan elküldi a mélységi puffert a Windowsba a hologram stabilitásának automatikus optimalizálása érdekében anélkül, hogy az alkalmazás megad egy fókuszpontot:

  • Modern asztali headset esetén ez lehetővé teszi a képpontonkénti mélységalapú újraprojectiont.
  • A Windows 10 2018. április 10-i frissítését vagy újabb verzióját futtató HoloLens esetén ez elemzi a mélységi puffert az optimális stabilizálósík automatikus kiválasztásához.

Bármelyik megközelítésnek még jobb képminőséget kell biztosítania anélkül, hogy az alkalmazás explicit munkát végez az egyes keretekhez tartozó fókuszpont kiválasztásához. Vegye figyelembe, hogy ha manuálisan ad meg egy fókuszpontot, az felülírja a fent leírt automatikus viselkedést, és általában csökkenti a hologram stabilitását. Általában csak akkor adjon meg manuális fókuszpontot, ha az alkalmazás olyan HoloLens rendszeren fut, amely még nem lett frissítve a Windows 10 2018. áprilisi frissítésére.

Példa

A Fókuszpont beállításának számos módja van, ahogy azt a SetFocusPointForFrame statikus függvényben elérhető túlterhelések is sugallják. Az alábbiakban bemutatunk egy egyszerű példát, a fókuszsíkot az egyes keretekhez megadott objektumra állíthatja be:

public GameObject focusedObject;
void Update()
{
    // Normally the normal is best set to be the opposite of the main camera's
    // forward vector.
    // If the content is actually all on a plane (like text), set the normal to
    // the normal of the plane and ensure the user does not pass through the
    // plane.
    var normal = -Camera.main.transform.forward;     
    var position = focusedObject.transform.position;
    UnityEngine.XR.WSA.HolographicSettings.SetFocusPointForFrame(position, normal);
}

Feljegyzés

A fenti egyszerű kód csökkentheti a hologram stabilitását, ha a szűrt objektum a felhasználó mögött végzi. Általában azt javasoljuk, hogy a fókuszpont manuális megadása helyett állítsa be a mélységi puffermegosztás engedélyezését.

Következő fejlesztési ellenőrzőpont

Ha követi a Unity által ismertetett fejlesztési folyamatot, akkor a Mixed Reality platform képességeinek és API-inak felfedezése közepén jár. Innen folytathatja a következő témakört:

Vagy közvetlenül az alkalmazás eszközre vagy emulátorra való üzembe helyezéséhez:

Bármikor visszatérhet a Unity fejlesztési ellenőrzőpontjaihoz .

Lásd még