Forum Discussion
sftrabbit
13 years agoHonored Guest
Does an incorrect IPD cause divergent parallax?
I've seen suggestions that if you have the IPD set to greater than the viewer's actual IPD, it can cause their eyes to uncomfortably diverge (so each eye looks outwards, away from the other). However, as far as I understand, the IPD only changes the distance between the virtual cameras, and making it match the viewer's actual IPD only helps to make the scene look as they would see it. Once the projection is done, the result is aligned with the centre of the lenses. If the IPD were too great, it should only make the viewer feel as though their eyes are further apart than normal (maybe a strange sensation, but not divergence).
I expect that divergence would only occur if the resulting projection were not offset to the lens centres correctly. That is, if the images on the display are centred further out than the lens centres, there will be divergence.
Is this right?
I expect that divergence would only occur if the resulting projection were not offset to the lens centres correctly. That is, if the images on the display are centred further out than the lens centres, there will be divergence.
Is this right?
16 Replies
- tomfExplorerYou are entirely correct!
(though pedantically, this is only true of the A lenses which produce collimated light - i.e. parallel light that comes from infinity) - nhooblerHonored Guest
"tomf" wrote:
You are entirely correct!
(though pedantically, this is only true of the A lenses which produce collimated light - i.e. parallel light that comes from infinity)
How do the properties of the other lenses change this assumption? I haven't seen any documentation in the SDK about this, but I have seen references in the code that seem to rely on the light through the lenses being collimated, which I assume would then be made incorrect if those traits changed. - QosmiusHonored Guestyou can make infinite light by changing the strenght of the lences..more + will make the light converge more and - will diverge. Correct PD should be used though to get a perfect image on the screen, if the PD is wrong you can still correct the vision somehow by using prism but it will never be as good as getting correct PD
- ThreeEyesExplorer
"tomf" wrote:
You are entirely correct!
(though pedantically, this is only true of the A lenses which produce collimated light - i.e. parallel light that comes from infinity)
Tom - if the IPD for rendering is set to a value smaller than reality, does it make the world seem bigger (i.e. the viewer seems to think they are smaller than they really are)? Essentially the same as having a small head?
Why I ask is if stereo camera images are sent to a Rift, if the cameras have a small IPD, does it make the world seem big and if the IPD is large, does it make the world seem small? Not really rendered since these are camera images. Just the IPD for how separated things appear to the stereo images.
Or is it more complicated than that? - cyberealityGrand Champion@ThreeEyes: Yes, that is correct.
- ThreeEyesExplorer
"cybereality" wrote:
@ThreeEyes: Yes, that is correct.
Cool! Thanks! No Rift yet so can't experiment but that seemed logical. - tomfExplorerYes, that's correct - you can vary the apparent scale of the world by moving the virtual cameras closer or further apart. Though you ALSO need to scale the neck movement or you'll make people sick (no "giraffes" please!). See my GDC2014 talk for more details on this.
More minor pedantry - we like to use specific terms for very specific things, or people get confused:
Interaxial distance: the real-world distance between the middle of the lenses. This is fixed at 63.5mm for DK1 and DK2, but mostly an app doesn't care because the distortion process handles the implications of this distance.
Inter-Pupillary Distance (IPD): the actual real-world distance between the user's pupils, measured as they look at infinity (i.e. eyes not converged). Note that opticians often measure IPD with a specific convergence (e.g. usual reading distance), and that's a slightly different number.
Inter-Camera Distance (ICD) or virtual separation: the virtual distance between the virtual cameras used to render the scene. This should be by default based on the user's physical IPD, but can be scaled by the app to produce apparent changes in scale.
There's some apps that confuse and link pairs or all three of these concepts, when they're really three quite different things. So it's good to use the right language to (try to!) avoid confusion :-) - drashHeroic Explorer
"tomf" wrote:
Note that opticians often measure IPD with a specific convergence (e.g. usual reading distance), and that's a slightly different number.
Whoa, that's good to know. - Nekto2Superstar
"ThreeEyes" wrote:
Why I ask is if stereo camera images are sent to a Rift, if the cameras have a small IPD, does it make the world seem big and if the IPD is large, does it make the world seem small?
In addition to size change it makes the world to be distorted.
Just imagine a cube with side = IPD (65mm).
This image shows distortion for ordinary image projection for different screen size and distances:
http://content.foto.mail.ru/mail/ledmaster/19/s-69.jpg
But you could draw same image for different IPD (not 65mm with the cube side still 65mm).
Also, you could change IPD in Oculus config and test any demo for your own eyes ;) - tomfExplorerThere's no difference in distortion. Again, it's important not to mix up the terms. The user's IPD is not changing, nor is the interaxial distance of the optics - both those are fixed (because they are real physical things!), and they are what determine the shape of the distortion (at least in SDK 0.3.x).
All that is changing is the virtual camera separation - the ICD. As this changes, the 65mm-sized cube will not be distorted, but it will appear larger or smaller as the ICD changes.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 13 years ago