Friday, 16 July 2010

Playing Games in a Big Dome

We have a 3m hemispherical dome at iCinema. It's a pretty impressive piece of visualisation technology . . . mainly because it's capable of immersing you quite heavily in something by engaging large amounts of your peripheral vision.




The first question is always: "Can I connect my playstation/xbox to this?" Well . . . no . . . but kinda. We've been doing some experimentation recently with warping technologies and putting normal game engines into the iDome.

One of the issues we come across first is . . . how do you map a rectangular surface (ie a computer monitor) onto a spherical surface (our dome). You can't really do it as a one to one relationship. Somewhere along the way something's going to get lost/distorted. It's a bit like if I gave you a sheet of A4 paper and said: "Wrap this around this basketball here without wrinkling or tearing it." They're just not objects that work together geometrically. We've got a solution that uses excessive stretching and compressing of a regular rectangular output so that it maps at least vaguely to the dome. There's a compromise between getting vertical and horizontal correct and keeping all the information that was originally in the image.

On top of that, when we're thinking about computer game engines, they're built quite fundamentally on the assumption that they're displaying on a flat screen. The concept is that of a View Frustum (image courtesy of Wikipedia):
What appears on your screen is everything that is inside this frustum in the virtual world. For example, while playing a computer game, the simulated camera will be pretty much where your eyes are, the Near plane is your monitor and the frustum there is your field of view. By setting up the view of the virtual world like this, we can represent it to the person sitting in front of the monitor in a nice and natural way. Everything inside the frustum is displayed to them.

Now imagine what happens when you want the field of view to widen to 180 degrees (this is what our theoretical field of view is in our iDome). If you widen the sight lines coming out of the camera to 180 degrees you end up with a big flat plane. The Near plane, Far plane and all the other sides of the frustum all get squished into this single plane and so it has no volume and hence there's nothing in it that will be rendered (displayed to the viewer).

We played around a bit with CryEngine. Like a bunch of other FPS games, they allow you to have a certain amount of control over the field of view. Once we got to about 160 degrees horzontal FOV, things started to streth in strange ways (again due to the compressing of the view frustum), but we got a pretty decent result out of 140 degree FOV. It's not a perfect mapping onto the dome, but to a certain extent, we did have Crysis running in our dome, which meant that we'd pretty happily run most FPSs (so long as you can widen their FOV). One day I'll record a video of it to show off . . .

No comments:

Post a Comment