Cross-fading Acceleration and retargeting gravity
I posted a wall of text here on Reddit:
http://www.reddit.com/r/oculus/comments/2c4bzv/crossfading_to_avoid_sickness_and_redirecting
Quoted here for convenience:
I had two "brain storming" thoughts recently and I'm curious if anyone has tried anything similar at all yet. As we all know, travel sickness occurs when your eyes and ears disagree on the acceleration (not velocity) occurring in the world, hence why VR comfort mode has been proposed. It is, in essence, the opposite of the ambition of filmmakers to use static images in quick succession to create motion: we must reverse that process and find a way of taking two scenes where the velocity and position have changed and convince the eyes that this happened with no acceleration!
One idea I had was to cross-fade two scenes: so for example a downhill skiing game could crossfade a scene at 0 mph to a 40 mph constant downhill velocity. The problem with doing that is you have to render two full scenes... in stereo... alpha blend... barrel distort, so you are effectively doubling the render cost (hey, can your scene render at 1000/74/2 ms?). So maybe this could only be done in very low poly areas. In the downhill skiing example, maybe the top of the hill could be purposely low poly. Another idea would be to combine the barrel distortion and crossfade tasks, but that's only going to save a millisecond or so.
Of course maybe it doesn't have to be a fade: maybe a dissolve, or more usefully maybe a vertical or horizontal wipe transition could be enough, meaning that you could use frustum culling to avoid rendering everything twice. On the transition line though you would end up rendering stuff twice though, and maybe a wipe wouldn't be as comfortable as a crossfade anyway. Would love to see a demo which compares though! I guess it could be a competition: put Brendan or someone else who suffers badly from simulator sickness and see how many 0 to 30mph transitions they can handle with each method! (For science!)
How long does the fade transition have to be in frames though? Well again this is probably where experimentation comes in, but you could guess that maybe it's the opposite of the illusion of motion. I hate the 24fps figure that is thrown around: I would say that a N64 gamer knows well that 18fps can be interpreted as motion! ;-) But we all agree that 5fps is something of a slideshow! So maybe 75/5 means a 15 frame transition is as a good starting point?
The second brain storming idea I had was to do with Retargetting Acceleration. So I'm guessing that the human ear is at the Wiimote level and not the Rift tracker tech level. It has fluid in it which can detect acceleration or gravity and it uses the rest of out bodies senses to fill in the gaps: e.g. if it feels 1G upwards pressure on your feet and a 1G downward sensation in your ears, it guesses you are standing up straight and not moving.
Now maybe it's possible in VR to redirect this gravity vector and pretend it is something else. So for example if you wore the Rift lying back at 45 degrees, maybe you could show a scene of the player orientated upright in the Rift. They then have 0.707G vertical component pulling down, but also an unexplained 0.707G pulling backwards. By showing a scene of them moving forwards (and downwards?) maybe you could give the ear an explanation of the 0.707G and so swap gravity for acceleration. Who knew the curvature of spacetime was relevant to VR huh? ;-)
There you go, braindump complete. Interested to hear feedback!
http://www.reddit.com/r/oculus/comments/2c4bzv/crossfading_to_avoid_sickness_and_redirecting
Quoted here for convenience:
I had two "brain storming" thoughts recently and I'm curious if anyone has tried anything similar at all yet. As we all know, travel sickness occurs when your eyes and ears disagree on the acceleration (not velocity) occurring in the world, hence why VR comfort mode has been proposed. It is, in essence, the opposite of the ambition of filmmakers to use static images in quick succession to create motion: we must reverse that process and find a way of taking two scenes where the velocity and position have changed and convince the eyes that this happened with no acceleration!
One idea I had was to cross-fade two scenes: so for example a downhill skiing game could crossfade a scene at 0 mph to a 40 mph constant downhill velocity. The problem with doing that is you have to render two full scenes... in stereo... alpha blend... barrel distort, so you are effectively doubling the render cost (hey, can your scene render at 1000/74/2 ms?). So maybe this could only be done in very low poly areas. In the downhill skiing example, maybe the top of the hill could be purposely low poly. Another idea would be to combine the barrel distortion and crossfade tasks, but that's only going to save a millisecond or so.
Of course maybe it doesn't have to be a fade: maybe a dissolve, or more usefully maybe a vertical or horizontal wipe transition could be enough, meaning that you could use frustum culling to avoid rendering everything twice. On the transition line though you would end up rendering stuff twice though, and maybe a wipe wouldn't be as comfortable as a crossfade anyway. Would love to see a demo which compares though! I guess it could be a competition: put Brendan or someone else who suffers badly from simulator sickness and see how many 0 to 30mph transitions they can handle with each method! (For science!)
How long does the fade transition have to be in frames though? Well again this is probably where experimentation comes in, but you could guess that maybe it's the opposite of the illusion of motion. I hate the 24fps figure that is thrown around: I would say that a N64 gamer knows well that 18fps can be interpreted as motion! ;-) But we all agree that 5fps is something of a slideshow! So maybe 75/5 means a 15 frame transition is as a good starting point?
The second brain storming idea I had was to do with Retargetting Acceleration. So I'm guessing that the human ear is at the Wiimote level and not the Rift tracker tech level. It has fluid in it which can detect acceleration or gravity and it uses the rest of out bodies senses to fill in the gaps: e.g. if it feels 1G upwards pressure on your feet and a 1G downward sensation in your ears, it guesses you are standing up straight and not moving.
Now maybe it's possible in VR to redirect this gravity vector and pretend it is something else. So for example if you wore the Rift lying back at 45 degrees, maybe you could show a scene of the player orientated upright in the Rift. They then have 0.707G vertical component pulling down, but also an unexplained 0.707G pulling backwards. By showing a scene of them moving forwards (and downwards?) maybe you could give the ear an explanation of the 0.707G and so swap gravity for acceleration. Who knew the curvature of spacetime was relevant to VR huh? ;-)
There you go, braindump complete. Interested to hear feedback!
