WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   Matching the field of view between Desktop and Oculus Rift DK2 (https://forum.worldviz.com/showthread.php?t=5583)

Qiliang He 12-12-2015 10:35 AM

Matching the field of view between Desktop and Oculus Rift DK2
 
Hi,

I'm doing experiment comparing people's performance in Desktop and Immersive VR (Oculus Rift DK2). I need to match up the field of view in these two systems. I know the default FOV in Vizard in 40 degree vertically. Does it mean that the same applies to the Oculus headset? If not, do I need to manually change the field of view in Oculus?

By the way, is there a function to get the current field of view of the window?

Thanks a lot!

Qiliang

Jeff 12-14-2015 07:40 AM

Vizard sets the FOV of the Oculus graphics window to match the physical FOV of the Oculus display. You can set the FOV of a desktop window using the window.FOV command. You can also get the horizontal FOV, vertical FOV, and aspect ratio using other window commands.

Qiliang He 12-14-2015 04:37 PM

Thank you for your reply. The Oculus DK2 has around 100 degree horizontal and vertical FOV, but the default setting for the desktop computer is 40 degree in vertical. When I change the FOV using the command you suggested (increase from 40 to 100), the images are distorted heavily. Is there any way to get around this problem?

Jeff 12-14-2015 11:22 PM

If the FOV set in Vizard does not match the physical FOV of the display then it will appear distorted. Since the user is much further away from the monitor than the HMD, the FOV of the monitor window is less relative to the user's total FOV. You may need to have a large monitor or multiple monitors to reproduce the same FOV of the Oculus. You can calculate the vertical FOV of the display using the following:

verticle FOV = 2*arctan((H/2)/D)
H = height of display and
D = distance of viewer from screen

Qiliang He 12-15-2015 04:15 AM

Great input, thanks a lot!

Qiliang He 12-15-2015 12:28 PM

I have another question about the actual FOV (vertical and horizontal) displayed through Oculus Rift DK2. I use the viz.MainWindow.getHorizontalFOV() and viz.MainWindow.getVerticalFOV() in the
PHP Code:

\examples\devices\oculusExample.py 

script, and it returns 35.58 and 40 respectively. I don't think these values are true, because if I use viz.MainWindow.fov(40), the images are largely compressed. Is there any way to get the actual FOV from the Vizard console?

performlabrit 02-04-2016 12:57 PM

Query Oculus FOV
 
I have the same question. Is there a way to query the total (stereo + monocular) field of view rendered inside the Oculus?

Erikvdb 02-05-2016 01:04 AM

Does it really matter to get an exact number though? Even if you can calculate the exact FOV that is rendered within the Oculus, the actual visual field of view that people have within the goggles depends on the distance between their eyes and the lens (which is different for every person). Also the edges of the lenses are blurred, so the edges of the rendered image aren't actually as visible to the user as they would on a flat screen.

What I've done a while back is create a 3D model of a room with a grid texture on the walls with a fixed camera inside and then change the desktop fov until it visually matched the image I could see in the Oculus. I believe I got somewhere between 60 and 65 vertical fov (with DK1).

Qiliang He 02-05-2016 08:09 AM

Quote:

Originally Posted by Erikvdb (Post 17978)
Does it really matter to get an exact number though? Even if you can calculate the exact FOV that is rendered within the Oculus, the actual visual field of view that people have within the goggles depends on the distance between their eyes and the lens (which is different for every person). Also the edges of the lenses are blurred, so the edges of the rendered image aren't actually as visible to the user as they would on a flat screen.

What I've done a while back is create a 3D model of a room with a grid texture on the walls with a fixed camera inside and then change the desktop fov until it visually matched the image I could see in the Oculus. I believe I got somewhere between 60 and 65 vertical fov (with DK1).

You are right, and I just need to know the FOV parameters in the ballpark. For my experience, it seems that the DK2 has a 65 degree vertical and 90 degree horizontal of FOV.

performlabrit 02-09-2016 08:55 AM

In fact, I do need exact numbers. I'm using an eye-tracker and, you're right the geometry of the virtual and real-world may differ. In my calculations, I must stay true to one of the geometries. In my situation, I choose to stay true to the virtual geometry. This means taking the point-of-regard values returned by the eye-tracker and mapping them onto the viewing frustum, in the style of ray-tracing. TO do this, I need to know the true aspect ratio and FOV.

samzebrado 06-29-2020 05:35 AM

Actually I just came across same question. We used CV1 instead of DK2, but nothing looks weird inside. Now I need to check whether the fov of CV1 was properly approximated in a vizconnect config preset because in the preset using Oculus and PPT, the info of the Oculus display seemed to be made for DK2.
btw. I think the Oculus app, which have to be launched by yourself or by vizard during use, might have provided some information about its resolution and fov to vizard, and that could be why we did not find distortion in CV1.
Anyway I'll keep searching for relevant info.

samzebrado 06-29-2020 07:33 AM

Hi all,
:p
Hope this would be useful.

I've just go through Vizard5/python/oculus.py.
Line 195: left,right,bottom,top,near,far = camera.getFrustum()

The field of view could be computed from these "left, right, bottom, top" parameters.
Line 190 - 194 showed the "camera" could come from self.getCameraList(), and self.getCameraList() came from self._sensor.getCameraList(), defined after Line 340.

Similarly I found the following path of variable creation:

self._sensor <-- allSensors <-- getSensors() <-- getExtension().getHMDList() <-- getExtension() <--viz.addExtension('oculus.dle')

'oculus.dle' should be a plugin of vizard, similar to the vrpn plugin, which help getting data from other apps.

It looks like that oculus app did pass some info about the screen's real size and fov to vizard.

Thus if you wanna get that "real fov", you just need to back compute it from the Frustum parameters returned by camera.getFrustum().

p.s. maybe in oculus app you could modify this parameter, or not:)

Quote:

Originally Posted by samzebrado (Post 20210)
btw. I think the Oculus app, which have to be launched by yourself or by vizard during use, might have provided some information about its resolution and fov to vizard, and that could be why we did not find distortion in CV1.
Anyway I'll keep searching for relevant info.



All times are GMT -7. The time now is 12:28 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, vBulletin Solutions, Inc.
Copyright 2002-2018 WorldViz LLC