Here’s an old post from a year ago that I never got around to publishing…
Until now, several games have had issues with the sky appearing too close when viewed in 3D. Examples include Wind Waker, Metroid Prime 1 and 3, The Hobbit, the Lord of the Rings: The Two Towers, and Blood Omen 2.
Because the sky always has to be behind everything else in the scene, games just draw it at any depth, then clear the depth buffer before drawing anything else. That works in 2D because everything else will still be drawn in front of the sky, but it doesn’t work in 3D when you can see how far away everything is.
Because the sky is infinitely far away, it’s apparent position should not be affected by moving the game camera. To achieve that, games often draw the sky as a box (called a skybox) or a sphere centred at 0, 0, 0 relative to the game camera.
So I added a game-specific option to Dolphin VR for recognising any 3D object drawn at 0, 0, 0 as a skybox. When enabled, and a skybox is detected, Dolphin VR now draws it infinitely far away, and it is not affected by freelook or position tracking.
It isn’t working in most games. For example, it doesn’t detect the stars in Wind Waker which are too close, and it doesn’t detect the correctly working skybox in Return of the King. In Wind Waker that’s because the stars are drawn in groups as several different independent objects, rather than as a single sphere centered at the origin. So for Wind Waker, I added a set of Remove Object Codes for removing the skybox instead.
Unfortunately, in some games there are still some effects that get falsely detected as a skybox. Depending on the game, this might be a problem.
But for some games it works.
Detecting the skybox also allowed me to add two more motion sickness prevention options. The first is simply always hiding the skybox, making the background a solid colour such as black. When you turn using the gamepad, there will only be half as much optic flow without the skybox, so you will feel less motion sick.
The second option is always locking the skybox. This is the feature discussed at Oculus Connect, called “player-locked skybox”. The skybox will be locked to the real world, so when you turn using the gamepad, the skybox stays still. That makes it feel like you are stationary but the ground is turning. As far as I know, Dolphin VR is now the first Rift application to implement this feature.
Skip to 37:23
These motion sickness options are in addition to the existing ones in Dolphin VR:
- camera rotation stabilisation – This prevents the game from rotating the camera. To turn, you have to turn in real life.
- Reducing the FOV when moving or turning with the gamepad.
- Blacking the screen when moving or turning with the gamepad.
- PLCB mode.