|
|
Thread Tools | Rate Thread | Display Modes |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
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.
|
#3
|
|||
|
|||
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?
|
#4
|
|||
|
|||
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 |
#5
|
|||
|
|||
Great input, thanks a lot!
|
#6
|
|||
|
|||
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:
|
#7
|
|||
|
|||
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?
|
#8
|
|||
|
|||
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). |
#9
|
|||
|
|||
Quote:
|
#10
|
|||
|
|||
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.
|
#11
|
|||
|
|||
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. |
#12
|
|||
|
|||
Hi all,
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:
|
Tags |
field of view, oculus rift |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Render to Oculus DK2 desktop mirror only ? | performlabrit | Vizard | 1 | 07-17-2015 01:44 PM |
Oculus runtime disrupts clustering to mirror DK2 display | performlabrit | Vizard | 1 | 01-23-2015 07:00 AM |