Specifying IPD with 3D vision
  1 / 3    
Hi all, new to the forums here. My question is this: I want to be able to manipulate the interpupillary distance with the NVapi by specifying an IPD measured in centimeters. My problem though is that I do not really understand the setSeparation(stereoHandle, float) function, I know that you give it a value in percent from 0 - 100, but I am not sure how these relate to actual distance between a user's pupils? Anyway, any explanation as to how exactly separation is measured in the 3D vision or how to go about converting IPD in cm to a usable parameter for the NVapi would be greatly appreciated! Thanks!
Hi all, new to the forums here. My question is this: I want to be able to manipulate the interpupillary distance with the NVapi by specifying an IPD measured in centimeters. My problem though is that I do not really understand the setSeparation(stereoHandle, float) function, I know that you give it a value in percent from 0 - 100, but I am not sure how these relate to actual distance between a user's pupils? Anyway, any explanation as to how exactly separation is measured in the 3D vision or how to go about converting IPD in cm to a usable parameter for the NVapi would be greatly appreciated! Thanks!

#1
Posted 03/06/2013 08:23 PM   
Hey briskle, and welcome to the forums. Depth setting 0-100% is an arbitrary amount of depth that effects the game. How wide the separation it causes is, from what I understand, largely dependant on your screen size. The depth setting sets the depth at which the furthest point rendered in game is set. So, for example, if your eyes are 6cm apart, a point infinitely far away should have your eyes looking at a right angle. Therefore increase depth until something infinitely far away separates by 6cm between the left eye image and the right eye image on your screen. Get a ruler out on the screen and measure it ;-) The problem is however, that most of the time objects should not even be near to parallel (infinite distance). A far away mountain would still make your eyes converge to focus on it. Therefore it is strongly advised to play with something less than 100% depth for most realistic effect. Something between 50%-85% seems about right to me, depending on the game (separation of around 4-5cm for distant objects). Others will disagree with me on this, but that feels right for me. I guess one reason a real number might not be able to use is, the NVidia driver doesn't know how big your screen is in cm, only its resolution.
Hey briskle, and welcome to the forums.

Depth setting 0-100% is an arbitrary amount of depth that effects the game. How wide the separation it causes is, from what I understand, largely dependant on your screen size.

The depth setting sets the depth at which the furthest point rendered in game is set. So, for example, if your eyes are 6cm apart, a point infinitely far away should have your eyes looking at a right angle. Therefore increase depth until something infinitely far away separates by 6cm between the left eye image and the right eye image on your screen. Get a ruler out on the screen and measure it ;-)

The problem is however, that most of the time objects should not even be near to parallel (infinite distance). A far away mountain would still make your eyes converge to focus on it.

Therefore it is strongly advised to play with something less than 100% depth for most realistic effect. Something between 50%-85% seems about right to me, depending on the game (separation of around 4-5cm for distant objects). Others will disagree with me on this, but that feels right for me.

I guess one reason a real number might not be able to use is, the NVidia driver doesn't know how big your screen is in cm, only its resolution.

OS: Win 8 CPU: I7 4770k 3.5GZ GPU: GTX 780ti

#2
Posted 03/06/2013 08:57 PM   
I'm sure there might be some equation that would work but it would be dependent on the specific size of the monitor being used. I'm not sure but I don't think IPD is dependent on viewing distance. I think the best, an easiest way, would be to run a game in 3D and using the in-game keyboard settings to adjust the depth/separation settings and measure them directly at the monitor/TV. [img]http://www.bjorn3d.com/Material/revimages/video/3D_Glasses/Advanced_adjustments.jpg[/img] edit: beat me to it.
I'm sure there might be some equation that would work but it would be dependent on the specific size of the monitor being used. I'm not sure but I don't think IPD is dependent on viewing distance. I think the best, an easiest way, would be to run a game in 3D and using the in-game keyboard settings to adjust the depth/separation settings and measure them directly at the monitor/TV.

Image

edit: beat me to it.
#3
Posted 03/06/2013 09:02 PM   
[quote="TsaebehT"]I'm sure there might be some equation that would work but it would be dependent on the specific size of the monitor being used. I'm not sure but I don't think IPD is dependent on viewing distance. I think the best, an easiest way, would be to run a game in 3D and using the in-game keyboard settings to adjust the depth/separation settings and measure them directly at the monitor/TV. edit: beat me to it. [/quote] This is something Airion and me discussed, and I looked into it, and I was shown to be mistaken. Distance from monitor doesn't make a difference. The max separation you should ever have at infinity is your ocular distance. E.g. approx. 6.5cm. That is the ABSOLUTE max you want, no matter how big, small or far away your screen is. Anything above your measured IPD will cause divergence (where your eyes angle are >90 degrees each) aka, unnatural!
TsaebehT said:I'm sure there might be some equation that would work but it would be dependent on the specific size of the monitor being used. I'm not sure but I don't think IPD is dependent on viewing distance. I think the best, an easiest way, would be to run a game in 3D and using the in-game keyboard settings to adjust the depth/separation settings and measure them directly at the monitor/TV.

edit: beat me to it.


This is something Airion and me discussed, and I looked into it, and I was shown to be mistaken. Distance from monitor doesn't make a difference. The max separation you should ever have at infinity is your ocular distance. E.g. approx. 6.5cm.

That is the ABSOLUTE max you want, no matter how big, small or far away your screen is. Anything above your measured IPD will cause divergence (where your eyes angle are >90 degrees each) aka, unnatural!

OS: Win 8 CPU: I7 4770k 3.5GZ GPU: GTX 780ti

#4
Posted 03/06/2013 09:11 PM   
Thanks for all the advice, so in my specific experiment there will be multiple subjects, and the idea was that we would measure the IPD of each subject and enter this into the program as some sort of parameter. So if I am understanding this correctly, 100 % would reflect around a 6.5 cm IPD??
Thanks for all the advice, so in my specific experiment there will be multiple subjects, and the idea was that we would measure the IPD of each subject and enter this into the program as some sort of parameter. So if I am understanding this correctly, 100 % would reflect around a 6.5 cm IPD??

#5
Posted 03/06/2013 09:30 PM   
100% would still be dependent on the monitor being used, I have 65" which would have a higher separation than that of a 24". I run most games @50% that someone on a 24" monitor may run at 100%. You'd have to measure it on the monitor itself but like foreverseeking said you probably don't want the separation to be at the person's actual IPD because that's technically set too far away.
100% would still be dependent on the monitor being used, I have 65" which would have a higher separation than that of a 24". I run most games @50% that someone on a 24" monitor may run at 100%.

You'd have to measure it on the monitor itself but like foreverseeking said you probably don't want the separation to be at the person's actual IPD because that's technically set too far away.
#6
Posted 03/06/2013 09:29 PM   
Okay, so the TV we are using is 102 cm by 182 cm and the subjects will be standing 100 cm away, so I would have to set separation to 100% and then measure this onscreen with a couple of models to determine what IPD it may correlate with?
Okay, so the TV we are using is 102 cm by 182 cm and the subjects will be standing 100 cm away, so I would have to set separation to 100% and then measure this onscreen with a couple of models to determine what IPD it may correlate with?

#7
Posted 03/06/2013 09:38 PM   
Why does the IPD need to be same as the user? Can i ask? If you are new to the 3D forums, can i assume that you think this is necessary? Basically as long as the distance of something in the game world doesn't ever go past 6cm seperation (measure a peak of a mountain from left eye image to right eye image) it will be technically fine for everyone, but will be a strain for most people not used to gaming in 3D. The less seperation you have on distant objects the easier it will be for viewers to get a good experience (only seasoned 3D users can easily focus on high depth scenes). If your doing this as an experiment could you possibly share what it is your looking for as it might help with the solution. If you are just demoing tech, then its better keep the max seperation at something closer to 4cm. 100cm is not very far away from such a big screen, and many people will find it hard to focus on objects close to parrallel in 3D.
Why does the IPD need to be same as the user? Can i ask? If you are new to the 3D forums, can i assume that you think this is necessary?

Basically as long as the distance of something in the game world doesn't ever go past 6cm seperation (measure a peak of a mountain from left eye image to right eye image) it will be technically fine for everyone, but will be a strain for most people not used to gaming in 3D. The less seperation you have on distant objects the easier it will be for viewers to get a good experience (only seasoned 3D users can easily focus on high depth scenes).

If your doing this as an experiment could you possibly share what it is your looking for as it might help with the solution.

If you are just demoing tech, then its better keep the max seperation at something closer to 4cm. 100cm is not very far away from such a big screen, and many people will find it hard to focus on objects close to parrallel in 3D.

OS: Win 8 CPU: I7 4770k 3.5GZ GPU: GTX 780ti

#8
Posted 03/06/2013 09:48 PM   
Wow, that's awful close. I did the conversions, that's an 83" (210cm) screen and sitting about 3.5' from it. I sit about 6' (183cm) from my 65" (165cm) screen and I think that's close as close as I'd get.
Wow, that's awful close. I did the conversions, that's an 83" (210cm) screen and sitting about 3.5' from it. I sit about 6' (183cm) from my 65" (165cm) screen and I think that's close as close as I'd get.
#9
Posted 03/06/2013 09:49 PM   
[quote="brisklemonade53"]Okay, so the TV we are using is 102 cm by 182 cm and the subjects will be standing 100 cm away, so I would have to set separation to 100% and then measure this onscreen with a couple of models to determine what IPD it may correlate with?[/quote] Ok, i think you might be talking about 2 different things here, correct me if I'm wrong. Depth settings effects how your REAL eyes see the image. Convergence settings change how far apart the virtual eyes are in the game. E.g. If you want the objects in your game to appear like little figures, you need the in-game eyes to be relatively very far apart. Aka, increase convergence. When you want the game to appear very realistic in size, you decrease convergence within the game. When you want to characters to appear like giants, you make the convergence virtually nothing, simulating that your eyes are relativly close together compared with the object you are viewing. Is that what your looking to measure?
brisklemonade53 said:Okay, so the TV we are using is 102 cm by 182 cm and the subjects will be standing 100 cm away, so I would have to set separation to 100% and then measure this onscreen with a couple of models to determine what IPD it may correlate with?


Ok, i think you might be talking about 2 different things here, correct me if I'm wrong.

Depth settings effects how your REAL eyes see the image.
Convergence settings change how far apart the virtual eyes are in the game. E.g. If you want the objects in your game to appear like little figures, you need the in-game eyes to be relatively very far apart. Aka, increase convergence.

When you want the game to appear very realistic in size, you decrease convergence within the game.

When you want to characters to appear like giants, you make the convergence virtually nothing, simulating that your eyes are relativly close together compared with the object you are viewing.

Is that what your looking to measure?

OS: Win 8 CPU: I7 4770k 3.5GZ GPU: GTX 780ti

#10
Posted 03/06/2013 09:55 PM   
Convergence changes the point which your in-game eyes are focused/fixed on, where the two separate view points are converging in the game.
Convergence changes the point which your in-game eyes are focused/fixed on, where the two separate view points are converging in the game.
#11
Posted 03/06/2013 10:09 PM   
Okey dokey, yep you are definitely correct in assuming I am new to all of this (only about my 4th week). So here is the basic experiment, we are measuring near depth estimation on a large stereoscopic 3D display. Basically there is a single wooden block target that the user must reach to with a stylus game object (the subject uses a razer hydra to move the stylus). Then after the subject touches the target we take the target away and they must move the stylus to where they perceived the target to be. So, one of the first things we do is measure the subject's IPD in centimeters and we want to input this into the program so that the 3D is correct. But, currently with 3D vision we can only set 0-100, so we want to somehow correlate one cm with one of these 0-100 units. Let me know if further explanation is necessary. Again, thanks for the help!!
Okey dokey, yep you are definitely correct in assuming I am new to all of this (only about my 4th week). So here is the basic experiment, we are measuring near depth estimation on a large stereoscopic 3D display. Basically there is a single wooden block target that the user must reach to with a stylus game object (the subject uses a razer hydra to move the stylus). Then after the subject touches the target we take the target away and they must move the stylus to where they perceived the target to be. So, one of the first things we do is measure the subject's IPD in centimeters and we want to input this into the program so that the 3D is correct. But, currently with 3D vision we can only set 0-100, so we want to somehow correlate one cm with one of these 0-100 units. Let me know if further explanation is necessary. Again, thanks for the help!!

#12
Posted 03/06/2013 11:03 PM   
Ah ha, ok, to be honest I think it will be quite a difficult thing to set up. Having the correct IPD does not equate to getting realistic depth 3D. If the convergence is set too low all objects will be infinitely far away or if so high (with high depth) will be artificially stretched from right in front of your eyes to infinity. You have ironed out a key variable, which is distance from tv and size of tv. IPD is unlikely imo to be an important variable. Most eyes are very similar in distance, as the OR fixed lenses have shown. Is this an application you have designed yourself? As far as I can think, you would need to set the correct convergence and depth manually, e,g. With a ruler measuring objects on your screen. How big the wooden object appears will be greatly affected by convergence as much as depth, and so will its spacial positioning. This is a huge problem for when you want to change screen size, as its not based on a formula, but as far as I know there is currently not a way for nvidia to know screen size. You could create your own formula by measuring max separation when it's 100% on your screen, and maybe than at 50% to confirm if its linear. Assuming 100% on your screen is 10cm seperation (for simplicity's sake) then every 1% would = 10mm. So a person with 6cm IPD would be set at 60% depth. Sorry, writing this in a rush before heading out, so might not be terribly clear :-)
Ah ha, ok, to be honest I think it will be quite a difficult thing to set up. Having the correct IPD does not equate to getting realistic depth 3D. If the convergence is set too low all objects will be infinitely far away or if so high (with high depth) will be artificially stretched from right in front of your eyes to infinity.

You have ironed out a key variable, which is distance from tv and size of tv.
IPD is unlikely imo to be an important variable. Most eyes are very similar in distance, as the OR fixed lenses have shown.

Is this an application you have designed yourself? As far as I can think, you would need to set the correct convergence and depth manually, e,g. With a ruler measuring objects on your screen. How big the wooden object appears will be greatly affected by convergence as much as depth, and so will its spacial positioning.


This is a huge problem for when you want to change screen size, as its not based on a formula, but as far as I know there is currently not a way for nvidia to know screen size.

You could create your own formula by measuring max separation when it's 100% on your screen, and maybe than at 50% to confirm if its linear. Assuming 100% on your screen is 10cm seperation (for simplicity's sake) then every 1% would = 10mm. So a person with 6cm IPD would be set at 60% depth.



Sorry, writing this in a rush before heading out, so might not be terribly clear :-)

OS: Win 8 CPU: I7 4770k 3.5GZ GPU: GTX 780ti

#13
Posted 03/07/2013 06:42 AM   
I tried sitting that close to my TV last night, took up my entire vision in my glasses. Not a good idea for gaming, especially when you're changing the view constantly. I could almost 'feel' the motion, you might be ok though because it's a static scene. Technically this is a very complicated experiment, as there's so many variables that have to be taken into consideration. You have to calibrate everything to an 'actual' before you can even start experimenting. I'd like to make a few suggestions as this is what I'd most likely do. You should probably have 2 or more blocks at different distances in-experiment to sort out an actual size to distance correlation. I'd suggest using actual real blocks that coincide with the in-experiment blocks. Then getting a digital camera that can be mounted directly under the sensor (usually digital SLRs do), that's very important because it perfectly centers the camera's view, the sensor, when rotating the camera. Making a slide rail so you can slide the camera left and right, I made one for 3D photography that has measurements on the side. You only need one that moves an exact measurement, say 6cm in this case, left and right but you'll also need to be able to rotate it at the camera, not the tripod because you want to keep the slide rail parallel with the display. You might be able to use 2 cameras, a larger IPD (technically it's only for calibration purposes), and rig them up next to each other so they can rotate. So now you want to take sample pictures of the actual blocks at the distances you want them to be perceived in the test, take pictures from the left and right views (depth) and rotate (converge) the camera so one of the blocks is centered in the frame. I'd suggest using at least 2 blocks in the pics and shooting with the highest aperture of the lens and taking samples pics of convergence on all the blocks, ie 3 blocks in scene = 3 stereo sets/6 pics. Now the hard part, making the test blocks match the actual blocks. There's a few ways you could do this, using 3D glasses over the lens on the digital camera(s), find a way of displaying only the left view or the right view in the engine, or you could find a way to overlay the sample images in 2D over the scene (I think this is my favorite). Either way you have to then tweak the separation and convergence to match the real life samples from the camera's view. You might be able to take the left/right sets and 'combine' each set separately, all left together and all right together, so only the block that's in focus in each image is viewable, ie 3 left images all combined so each of the 3 blocks were focused on are only visible. I think I'm done theorizing for now. Lol. :D
I tried sitting that close to my TV last night, took up my entire vision in my glasses. Not a good idea for gaming, especially when you're changing the view constantly. I could almost 'feel' the motion, you might be ok though because it's a static scene.

Technically this is a very complicated experiment, as there's so many variables that have to be taken into consideration. You have to calibrate everything to an 'actual' before you can even start experimenting. I'd like to make a few suggestions as this is what I'd most likely do.

You should probably have 2 or more blocks at different distances in-experiment to sort out an actual size to distance correlation. I'd suggest using actual real blocks that coincide with the in-experiment blocks. Then getting a digital camera that can be mounted directly under the sensor (usually digital SLRs do), that's very important because it perfectly centers the camera's view, the sensor, when rotating the camera. Making a slide rail so you can slide the camera left and right, I made one for 3D photography that has measurements on the side. You only need one that moves an exact measurement, say 6cm in this case, left and right but you'll also need to be able to rotate it at the camera, not the tripod because you want to keep the slide rail parallel with the display. You might be able to use 2 cameras, a larger IPD (technically it's only for calibration purposes), and rig them up next to each other so they can rotate.

So now you want to take sample pictures of the actual blocks at the distances you want them to be perceived in the test, take pictures from the left and right views (depth) and rotate (converge) the camera so one of the blocks is centered in the frame. I'd suggest using at least 2 blocks in the pics and shooting with the highest aperture of the lens and taking samples pics of convergence on all the blocks, ie 3 blocks in scene = 3 stereo sets/6 pics.

Now the hard part, making the test blocks match the actual blocks. There's a few ways you could do this, using 3D glasses over the lens on the digital camera(s), find a way of displaying only the left view or the right view in the engine, or you could find a way to overlay the sample images in 2D over the scene (I think this is my favorite). Either way you have to then tweak the separation and convergence to match the real life samples from the camera's view.

You might be able to take the left/right sets and 'combine' each set separately, all left together and all right together, so only the block that's in focus in each image is viewable, ie 3 left images all combined so each of the 3 blocks were focused on are only visible.

I think I'm done theorizing for now. Lol. :D
#14
Posted 03/07/2013 03:39 PM   
I know its perhaps not directly related to what your asking, but... We've had this discussion before but I'm still not buying the 6cm rule. Think about when you go the cinema, 6cm seperation on a 100' IMAX screen is absolutely nothing, it has to be more than that. Nvidia aren't stupid, their preset exeeds peoples typical pupilary distance, if you break out the ruler and measure the seperation at 100% its about 6.6cm's, or atleast it is on my 27" display. I play at just above 9cm's, have done for a few months and have had someone check my eyes for divergence, experiance no discomfort what so ever. Once I edge closer to 10.5cm's its immidiately obvious my eyes are diverging, so theres quite a margin for error in going down to 9cm's or so. For me the feeling between standard Nvidia set 100% and my depth hacked 100% is exactly the same in terms of comfort.
I know its perhaps not directly related to what your asking, but... We've had this discussion before but I'm still not buying the 6cm rule. Think about when you go the cinema, 6cm seperation on a 100' IMAX screen is absolutely nothing, it has to be more than that.

Nvidia aren't stupid, their preset exeeds peoples typical pupilary distance, if you break out the ruler and measure the seperation at 100% its about 6.6cm's, or atleast it is on my 27" display. I play at just above 9cm's, have done for a few months and have had someone check my eyes for divergence, experiance no discomfort what so ever. Once I edge closer to 10.5cm's its immidiately obvious my eyes are diverging, so theres quite a margin for error in going down to 9cm's or so. For me the feeling between standard Nvidia set 100% and my depth hacked 100% is exactly the same in terms of comfort.

#15
Posted 03/07/2013 04:35 PM   
  1 / 3    
Scroll To Top