Zoom-in and -out effect while rotating head in VR

Hello,

currently working on a project and experiencing a weird issue.
https://www.babylonjs-playground.com/#1E9JQ8#42
creating a videodome and vr-helper and modifying the fovMultiplier.
diving into vr - works perfectly.

now it get a little special.
i need to move the videodome and the helper. cause the mainscene needs to stay at 0,0,0
so - i move the helper and the dome away from the center.
as soon as i do that and apply fovMultiplier - it seems the camera zooms in and out to certain rotations od the head.

here’s a example so you guys can verify
https://www.babylonjs-playground.com/#1E9JQ8#42

any clue how i could fix this ?

Hello and welcome!!!

Summoning the successful @RaananW (we have a lot of VR questions recently ;))

Hi, welcome to the community :slight_smile:

So, I need to understand the problem better. If I understand correctly, you want to be able to move the camera, while still having the video dome display the movie correctly. is that oversimplified version correct?

I would recommend setting the dome’s position to be the same as the camera. This way, the video dome will always follow the camera’s position. The video dome is a sphere that needs to be in the middle of the view. otherwise the video will look stretched or “zoomed out”.

Hi Raanan,

thanks for your reply!
Main problem is:
We shot several videos for our customers. Height from the Buttom (Camera Postion) was 170cm.
Our Babylon Project starts in a 3d-Room - which is at (0,0,0).
Frome there you navigate yourself into 360° VideoSpheres. These are at (150,0,150)
When we are in there (videodome) it feels like your are higher than 170cm.
We figured out, manipulating the FOV fixes this feeling :slight_smile:
but as soon as we manipulate the FOV with DomePostion away from (0,0,0) the Camera zooms while rotating your head.

In this eyample you can see the issue
https://www.babylonjs-playground.com/#1E9JQ8#42

Dome and VRHelper are at one postion
dome.position = new BABYLON.Vector3(15, 0, 15);
vrHelper.position = new BABYLON.Vector3(15, 0, 15);

anyone a idea why this is happening?
is there a solution?

This seems to be related to the way the video dome is rendered. I believe that it is needs to be at 0,0,0 (just like the sky background / environment). @Deltakosh - what do you think? here it is reproduced outside of VR - https://www.babylonjs-playground.com/#1E9JQ8#43

any ideas why this is happening and how we can possibly fix it ?

pinging @sebavan to see if he has a bit of time to check

Looks like everything has been done to be placed at 0 0 0, but at least I can reproduce the issue.

I will see what I can do today but I am pretty packed on time so if I can not find it to day I might have to push it back for a bit.

Ok looking into it further, I am not able to repro outside of VR.

The camera needs to be at the center or close to the center of the sphere relative to the sky sphere size.

In your example @RaananW you have 1500 unit diff between both center so looking right or left you would be either close or far from the wall dislplaying the video changing the perception of zoom level.

dome.position = new BABYLON.Vector3(1500, 0, 1500);
vrHelper.position = new BABYLON.Vector3(15, 0, 15);

Actually @johannesmueller you have the same issue by offsetting the view position of 1.7m, you would be closer from the top than the bottom probably resulting in the feeling of zoom while looking up.

The only position that do really work is camera at exactly the center of the dome which was the case whilst filming.

So you if you move the camera up you should try to move the dome up ?

I guess… :slight_smile: