IPD (interpupillary distance) Issues in MobileVR Mode

  • Greetings all,

    I had made these comments in another thread but this is probably a better place. I've noticed a couple of significant issues going on with IPD when viewing in MobileVR mode:


    Incorrect IPD in MobileVR Mode
    I've rendered a scene in Vray with an IPD of 63.5mm - the default IPD when in MobileVR mode on my iPhone. When loading that pano and viewing on the iPhone, the IPD on the phone within MobileVR is not correct. The parallax has dramatically increased and does NOT match the images that I've generated. You can easily tell this because if you have an object at the right side of the screen in both the left and right eye views, you will always see more of the object in the right view (right eye). To correct this the parallax must be dramatically reduced to around 52mm in the Mobile VR Setup. If this is not done, the 3D stereoscopic experience is incorrected with too much distortion

    Every MVR example I've viewed has this same problem; including the one in this recent thread:
    Issue: Arrows with text not displaying in VR mode.


    Hard Code the IPD
    It's not reasonable to ask clients to open up the settings and manually change the IPD. We'd like them to simply pop the phone in the viewers and enjoy the experience. Is there a way for us to actually HARD CODE an IPD?


    If I'm missing something on this please let me know. All the tests I've done - setting different IPDs in Vray and then loading the panos into MobileVR then manually adjusting the IPD to match the real world Vray IPD - yield the same results: a parallax which is far too strong.

    Tnx!

  • Hi,

    only the viewing/displaying IPD on the device needs to match the IPD of the user!

    But the IPD (distance of the cameras) when pano-shooting (or when rendering a stereo pano-image) doesn't directly matter!
    When that IPD doesn't match the scene only looks smaller or larger.

    About hardcoding - you can anytime edit the webvr.xml helper script or use the webvr.js plugin and change or set the IPD there - see the plugin documentation:
    https://krpano.com/plugins/webvr/#syntax

    and have also a look into the webvr.xml helper xml.

    Best regards,
    Klaus

  • Thanks Klaus, but I think you misunderstand.

    The user's own IPD is not a relevant equation in viewing stereoscopic images and shouldn't be factored into any solution or point of comparison. Even vintage stereoscopic viewers never provided the user with any way to bring the center of the convex lenses closer or further apart from one another. User IPD has no relationship to either digital image IPD or the actual camera IPD.

    Camera IPD matters a great deal in terms of effectiveness of the stereoscopic 3D effect. If an artist varies from the standard 1/30th rule things can go crazy. I see this in many KRPANO user examples where the closest object to the lenses is about 48" but the lens IPD is still around 2.5" - when it should be more like 1.6"! Many people who don't shoot stereoscopic photography have no idea about this rule, and the window violations that are presented are often very severe.

    I've included an example. In the image the IPD default of 63.5 causes some crazy window violations that are very distracting when viewing. Objects that don't appear in either the right or left eye become an issue. The goal is to set the IPD so that there is as much of a balance as possible. On the default setting it's actually forcing a parallax that doesn't exist by separating objects dramatically.

    Anyway, it's good to know we can manually adjust for this in the code!

  • The IPD (the distance between the pupils) of the user is important!

    E.g. when displaying the left/right views with a IPD of 70 and the user has an IPD of 50, he will get a double-view and got eyestrain because the eyes would try to get the images matching and that would require that eyes would look both 'outside' (the left eye would look more left and the right one more right).

    You need to differ between the 'presenting' and the pano-image itself. The presenting/rendering should match the users IPD and therefore also the physical parameters of the device (screensize) and the lens-fov are important.

    The IPD stored in the pano-image itself only defines the 'scale' that the viewer later will expire during viewing.

    What you probably mean with 'window violations', e.g. in your screenshot, is when the physical screen-size is too small to show enough fov for each eye.

    Best regards,
    Klaus

  • Hi Klaus,

    Even if the user IPD was relevant, there's no way for a user to even effectively measure their own IPD before using a VR viewer. You are, in effect, asking them to adjust the screen image IPD to match their own IPD, but no one is going to know that without measuring. As a result, people will adjust to settings that cause Window Violations.

    The screen size has nothing to with with how much Window Violation there is. Also, window violation is one of the very basic core principals of 3D stereo photography and shooting 3D films. Creators of VR stereo experiences have, by and large, simply not educated themselves on this topic and it shows in many examples of VR scenes. It doesn't matter if I'm viewing a 3D film in 16:9 or two nearly square images side-by-side on an iPhone, user IPD has nothing to do it. FOV has no bearing whatsoever either. It's all about one thing:

    Has the photographer correctly taken into account the distance of objects to the lenses (especially those closest to the lenses) when calculating their lens IPD. The answer, when it comes to VR experiences, is that most do not take that into account. In order to compensate for poor setup, people start playing around with the image IPD / parallax; when that's only going to make matters worse for anything other than very minor adjustments.

    If you look again at the image I uploaded, it tells the entire story. I correctly set the VRay camera to around 2.5" IPD because the closest object is about 72" away (1/30 rule). However, the default IPD setting is causing a significant amount of objects to be cut-off or missing from one eye. The brain, and this is vital to understand, is ALWAYS trying to compensate and fill in that missing information which creates in awkward experience. This phenomenon is also known as an Edge Violation.

    Some info on this subject:

    http://www.pikespeakphoto.com/grid.html


    https://3dadventures.wordpress.com/2011/02/13/tan…loating-window/

  • Hi,

    such 'floating window' effect or 'edge violation' would only happen when the screen-size of the device is too small for the users IPD.

    E.g. see this image of different devices with different screensizes:

    The distance between the eyes (see the white crosshair) is the same for all devices, but depending on the screen-size you would see more - and fewer 'floating window'. E.g. when assuming simple symmetric lenses and a single 16:9 screen VR design, then everything below a ~5.5 inch screen is basically too small for 'good stereo overlap' and a good uncut fov.

    Another thing is - it's possible to use a lower IPD for the presenting that the real users one (e.g. for a smaller screen) - the eyes can compensate, but after some time that would become uncomfortable.

    About stereo itself - that IPD that is used on displaying the left/right views doesn't depend on the image/pano content, e.g. don't think about just about stereo-panos here, start with simple monoscopic-panos. When monoscopic panos could be viewed correctly, then stereo panos would work too.

    About VR and stereo photos- or films - that are different things and can't be directly compared.

    The IPD that is baked/rendered into the stereo-pano-image itself is something different, it only tells the viewer the sense of scale of the scene. Of course it's possible to use a large IPD to increase the 'stereo-effect', but then it becomes more unrealistic.


    But because you have problems with the IPD, maybe try start the discussion from another point - what devices do you use to test your VR panos?
    E.g. an iPhone and a cardboard headset is not very good choose for good VR...

    Many cardboard headsets are often a little bit different and require different settings, therefore also the two cardboard presets. And when the preset wouldn't match the headset, then yes - then adjusting the IPD could help reducing the parallax problem, but the more correct way would be adjusting the headset parameters itself (e.g. the overlap parameter in webvr.xml customize screen).

    If possible try using an Oculus Rift or HTC Vive - there it's even not possibility to adjust the IPD in krpano, there always the IPD from the device-setup itself will be automatically used by the browser (via the WebVR API). That would be best and safest way to judge the quality of the stereo pano.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!