Search code examples
unity-game-enginehololensmrtk

HoloLens: How to stabilize holograms at far distances


I want to place virtual objects (holograms) at far distances (20+ meters) in the HoloLens 1. However, at such distances holograms become unstable and appear to "swim" in the display. Has anyone had success with this? What worked for you?

Some potential fixes include:

  1. Ensure 60 FPS
  2. Adjust Stabilization Plane
  3. Employ visual markers (vuforia)
  4. Use static room scan (may not scale well)

For me, frame rate is not an issue. And I am using Unity 2017.4.4f1. Currently, I have a single world anchor and all objects are set relative to this anchor.


Solution

  • 20+ meters is a lot and I am not sure if this will work good enough. Ensuring 60 fps or at least 50/55+ is important but this wont solve the swimming at this distance. A low framerate might only cause additional swimming :)

    Everything that should appear statically placed in the room should be on or very close to the stabilization plane. So what you want to avoid is having the far objects at very different distances from the user. That would otherwise cause the ones farthest off from the stabilization plane to swim. If you only have the far away object try placing the stabilization plane at the same distance as the object, if the distances are changing a lot you can also update the stabilization plane distance at runtime to always set it to the current distance to the object.

    Would be interesting to hear if it worked out :)

    One more thing: If I remember correctly, objects should ideally placed directly or in close proximity to their world anchor to help stabilization.