Search Unity

HoloLens stabilization pipeline

Discussion in 'VR' started by franckieess, May 13, 2020.

  1. franckieess

    franckieess

    Joined:
    May 7, 2020
    Posts:
    8
    Hello All,
    I was wondering if it's possible to modify the hololens stabilization pipeline somehow. Something is written on Windows HoloLens webpage:
    However there is nothing but modifying the stabilization plane position.
    So my question is if it's possible to read and act directly on the stabilization pipeline to enable/disable some of its features.
     
  2. joejo

    joejo

    Unity Technologies

    Joined:
    May 26, 2016
    Posts:
    958
    Are you targeting Built in VR or the new XR Plug-in system?
     
  3. franckieess

    franckieess

    Joined:
    May 7, 2020
    Posts:
    8
    Hello @joejo
    I’m using the new XR Plugin system (Unity 2018.4.17f1)
    My final purpose would be disable completely hololens stabilisation pipeline and hololens positional al rotational tracking.
    For the latter I’ve managed it using
    Code (CSharp):
    1. XRDevice.DisableAutoXRCameraTracking
    But for the former I’ve found nothing interesting to act directly on stabilisation pipeline.
    The best option would be to manually induce the "Unavailable" tracking state on HoloLens, but unfortunately seems that all the APIs that expose the tracking state are read-only.
    Do you have any suggestion?
     
  4. joejo

    joejo

    Unity Technologies

    Joined:
    May 26, 2016
    Posts:
    958
  5. joejo

    joejo

    Unity Technologies

    Joined:
    May 26, 2016
    Posts:
    958
  6. franckieess

    franckieess

    Joined:
    May 7, 2020
    Posts:
    8
    I know, as I wrote in the first post modifying the position of the stabilisation plane is the only thing I’ve found. There’s nothing for completely disabling hololens stabilisation algorithms?
     
  7. franckieess

    franckieess

    Joined:
    May 7, 2020
    Posts:
    8
    For what concerns tracking state I refer to this
    Code (CSharp):
    1. void Update()
    2. {
    3.     switch (UnityEngine.XR.WSA.WorldManager.state)
    4.     {
    5.         case PositionalLocatorState.Active:
    6.             // handle active
    7.             break;
    8.         case PositionalLocatorState.Activating:
    9.         case PositionalLocatorState.Inhibited:
    10.         case PositionalLocatorState.OrientationOnly:
    11.         case PositionalLocatorState.Unavailable:
    12.         default:
    13.             // only rotational information is available
    14.             break;
    15.     }
    Here shows how to interact with locator state, but without any chance to actually induce manually one of these states on hololens
     
  8. joejo

    joejo

    Unity Technologies

    Joined:
    May 26, 2016
    Posts:
    958
    No. If you don't manage it yourself HoloLens automatically sets the stabilization plane.

    > For what concerns tracking state I refer to this

    That information has nothing to do with stabilization. Locator State is entirely a reported datum letting you know what about the device and it's ability to track its place in the real world.
     
  9. franckieess

    franckieess

    Joined:
    May 7, 2020
    Posts:
    8
    Okay so no chance of acting on hololens stabilisation algoritms apart from Settings Plane position.
    And no Way to Modify locator state as well
    Thank you!
     
  10. franckieess

    franckieess

    Joined:
    May 7, 2020
    Posts:
    8
    Hello @joejo , after a lot of searching i've found out that actually there is a way to Disable HoloLens image stabilization at all. It is:
    Code (CSharp):
    1.         HolographicSettings.ReprojectionMode = HolographicSettings.HolographicReprojectionMode.Disabled;
    2.  
    I have still to try it to verify how it's working, but the description seems to give some hope:

    The image should not be stabilized for the user's head motion, instead remaining fixed in the display. This is generally discouraged, as it is only comfortable for users when used sparingly, such as when the only visible content is a small cursor.