Hello everyone.

The Mixed Reality Forums here are no longer being used or maintained.

There are a few other places we would like to direct you to for support, both from Microsoft and from the community.

The first way we want to connect with you is our mixed reality developer program, which you can sign up for at https://aka.ms/IWantMR.

For technical questions, please use Stack Overflow, and tag your questions using either hololens or windows-mixed-reality.

If you want to join in discussions, please do so in the HoloDevelopers Slack, which you can join by going to https://aka.ms/holodevelopers, or in our Microsoft Tech Communities forums at https://techcommunity.microsoft.com/t5/mixed-reality/ct-p/MicrosoftMixedReality.

And always feel free to hit us up on Twitter @MxdRealityDev.

Changing Accommodation, Convergence, and IPD in code?

Need to be able to make adjustments to the accommodation, convergence, and ipd values in realtime via code. Anyone have any ideas where to even start looking in the API for that?

Best Answer

  • HoloSheepHoloSheep mod
    edited June 2016 Accepted Answer

    @huntertank said:
    Without going into great detail, we are basically trying to find a way to adjust the image for people who wear glasses so they don't need glasses to see things clearly. We have an on-staff optometrist giving us all the details on what needs to be done...but no way of making all the changes without access to the three mentioned settings. ....at least according to our current knowledge base and testing.

    I gather when you say "adjust the image" you are referring to the holographic content, which would leave the real world, that is also in view, still out of focus.

    Perhaps you have a use case where this might not be an unpleasant experience but I could imagine that in most cases that would be a less that pleasant experience.

    However, back to your question of are there APIs that would allow you to adjust the way that the HoloLens rendered content based on properties related to users eyes.

    The IPD used by the HoloLens is configurable, but I would guess that the other mathematical properties of HoloLens projection are optimize for things to appear in focus in the targeted zone as described in the docs and the other variable besides IPD are not exposed through the API. But someone from the HoloLens team might surprise me and correct me on this one.

    Also, the value for IPD for the user is derived from the calibration tool. If that tool does somehow calculate other aspects of the users vision it does not expose it. I kind of doubt that the calibration tool measures more advance visual acuity.

    So, if you did come up with some crafty way to render things with some sort of variable focus on your own, you would likely need the user to enter their particular eye sight information into your own custom ui and/or come up with your own calibration utility to measure the other variables that you require to do such rendering.

    Windows Holographic User Group Redmond

    WinHUGR.org - - - - - - - - - - - - - - - - - - @WinHUGR
    WinHUGR YouTube Channel -- live streamed meetings

Answers

  • Jarrod1937Jarrod1937 ✭✭✭
    edited June 2016

    The device portal is exposed via an API, I believe it supports IPD, but I don't see it referenced:
    https://msdn.microsoft.com/en-us/windows/uwp/debug-test-perf/device-portal-api-core

  • @huntertank @Jarrod1937 the Device Portal REST call that you looking for is here.

    /api/holographic/os/settings/ipd (POST) 
    

    Sets the IPD

    Parameters
    •ipd : New IPD value to be set in millimeters

    Windows Holographic User Group Redmond

    WinHUGR.org - - - - - - - - - - - - - - - - - - @WinHUGR
    WinHUGR YouTube Channel -- live streamed meetings

  • @HoloSheep That gets the IPD portion taken care of but what about accommodation and convergence? There's a convergence setting on the cameras in Unity3d but this doesn't seem to change anything...

  • @huntertank Not exactly what you're looking for, but I just discovered an app that allows you to load individual IPD settings:
    IPD Manager https://www.microsoft.com/store/apps/9nblggh4x4xl

  • Jarrod1937Jarrod1937 ✭✭✭

    Convergence as in the convergence distance of the stereoscopic images? I believe that's set by the hardware at 2 meters, which should be perceived as such with a proper IPD setting.

  • HoloSheepHoloSheep mod
    edited June 2016

    @huntertank said:
    @HoloSheep That gets the IPD portion taken care of but what about accommodation and convergence? There's a convergence setting on the cameras in Unity3d but this doesn't seem to change anything...

    What are you expecting to see when you change the convergence? And likewise what would you like to change if you could change an accommodation setting?

    My guess is that since the HoloLens is a see through device, and since holograms are projected into space as opposed to being displayed on a flat panel strapped to your face that these values might not be as relevant, or are perhaps handled under the covers by the os and firmware on the HoloLens and that the IPD value is the one variable that needs to be adjusted per user.

    Windows Holographic User Group Redmond

    WinHUGR.org - - - - - - - - - - - - - - - - - - @WinHUGR
    WinHUGR YouTube Channel -- live streamed meetings

  • @HoloSheep said:

    @huntertank said:
    @HoloSheep That gets the IPD portion taken care of but what about accommodation and convergence? There's a convergence setting on the cameras in Unity3d but this doesn't seem to change anything...

    What are you expecting to see when you change the convergence? And likewise what would you like to change if you could change an accommodation setting?

    My guess is that since the HoloLens is a see through device, and since holograms are projected into space as opposed to being displayed on a flat panel strapped to your face that these values might not be as relevant, or are perhaps handled under the covers by the os and firmware on the HoloLens and that the IPD value is the one variable that needs to be adjusted per user.

    Without going into great detail, we are basically trying to find a way to adjust the image for people who wear glasses so they don't need glasses to see things clearly. We have an on-staff optometrist giving us all the details on what needs to be done...but no way of making all the changes without access to the three mentioned settings. ....at least according to our current knowledge base and testing.

  • Jarrod1937Jarrod1937 ✭✭✭

    I'm sorry you didn't find my answer helpful, but not sure what you're expecting. From what I understand, and I could be wrong, the convergence is an aspect of the hardware design, as well as software. I'd imagine having the small display window that they do, there is not much play in the actual shifting of the stereo images. Though, I do find your attempt a worthy goal, I would be interested in seeing if it is possible.

  • HoloSheepHoloSheep mod
    edited June 2016 Accepted Answer

    @huntertank said:
    Without going into great detail, we are basically trying to find a way to adjust the image for people who wear glasses so they don't need glasses to see things clearly. We have an on-staff optometrist giving us all the details on what needs to be done...but no way of making all the changes without access to the three mentioned settings. ....at least according to our current knowledge base and testing.

    I gather when you say "adjust the image" you are referring to the holographic content, which would leave the real world, that is also in view, still out of focus.

    Perhaps you have a use case where this might not be an unpleasant experience but I could imagine that in most cases that would be a less that pleasant experience.

    However, back to your question of are there APIs that would allow you to adjust the way that the HoloLens rendered content based on properties related to users eyes.

    The IPD used by the HoloLens is configurable, but I would guess that the other mathematical properties of HoloLens projection are optimize for things to appear in focus in the targeted zone as described in the docs and the other variable besides IPD are not exposed through the API. But someone from the HoloLens team might surprise me and correct me on this one.

    Also, the value for IPD for the user is derived from the calibration tool. If that tool does somehow calculate other aspects of the users vision it does not expose it. I kind of doubt that the calibration tool measures more advance visual acuity.

    So, if you did come up with some crafty way to render things with some sort of variable focus on your own, you would likely need the user to enter their particular eye sight information into your own custom ui and/or come up with your own calibration utility to measure the other variables that you require to do such rendering.

    Windows Holographic User Group Redmond

    WinHUGR.org - - - - - - - - - - - - - - - - - - @WinHUGR
    WinHUGR YouTube Channel -- live streamed meetings

  • @HoloSheep I understand how it seems not knowing the full details of our usecase and thank you for continuing to try and help. I think you hit the nail on the head when you mention that the hololens team has not exposed the other calculations through the API. We will continue to search though so if anyone finds something please let us know.

Sign In or Register to comment.