CpSc 411: Virtual Reality

In this class we ultimately designed a 3d environment, navigable via a Flock of Birds © VR system. It is a threaded program, with our sounds and graphics done through SDL, and full collision detection. The environment chosen was a resemblance of the MS Escher House of Stairs painting. We decided for our final project to turn this into a haunted house version. You can see screenshots of this on the second link below. The idea was that when you walked through a door, it seamlessly "popped" your orientation and view direction into another door in the room such that you are now walking from that perspective. Due to time constraints, we could not get the orientation to work correctly, so it simply "teleports" you to another door in the room.

I worked on the collision detection for the project. It's a simple camera-environment collision detection system. The camera is treated as a unit sphere and does a polygon test on the plane of every polygon in the environment. As soon as the direction vector crosses a polygon plane, a test is done to see if went inside the boundaries of an enclosed polygon, or if its on the outside. If it is indeed on the inside of a polygon, then we had a collision I then deflect the camera unit sphere so that the camera does not stop on the wall, but "slides" down the wall. If it is not inside a polygon, it simply allows the camera to continue forward. I modeled this from a tutorial at www.gametutorials.com. Below is a link to Yu-ting's description (the official page for this project):

Haunted VR Escher Walkthrough

And here is a link to her screenshots. Note that these include the high-rez textures that she created for the environment, however due to the huge performance hit, we had to revert back to old textures:

Haunted VR Escher Walkthrough screenshots and a movie

Below are screenshots that I took to give an idea of how the environment looks (Note: There are two side by side images since the headsets used to see had two separate screens, one for each eye):

Brian Caines © 2017 BrianCaines.com