Project1S18

From Immersive Visualization Lab Wiki
Revision as of 17:45, 9 April 2018 by Jschulze (Talk | contribs)

Jump to: navigation, search

Contents

Where's Waldo 3D

In this first programming project of the course you need to extend our starter code to a game in which the player needs to find a highlighted sphere among a 3D array of similar spheres, and click on it. The player has one minute to click on as many highlighted spheres as possible.

Starter Code

We recommend using this Oculus Minimal Example code from GitHub to start with. It's very compact but yet uses all of the API functions you will need.

To the minimum example you will need to add controller support, which this piece of sample code illustrates how it can be done. You can add this code to the draw() function of the minimal example to get printouts of the controller parameters. To see the cerr messages you have to display the terminal window, which you can do by replacing the line with WinMain with this one: int main(int argc, char** argv);

To better understand how the Oculus API works, we recommend this example from Oculus. It is up to date for the current version of the Oculus SDK and can be very useful.

Project Description (100 Points)

Download the starter code and get it to work with the Oculus Rift. (5 points)

For all spheres in this project use this OBJ file. You can load it with the Assimp library.

Based on the starter code, write a VR application for the Oculus Rift and the Touch controllers with the Oculus SDK in C++ and OpenGL (no Unity, Unreal, etc). Here are step by step instructions for it:

  • Use a background color of your choice for your application.
  • Create a 3D array of 5x5x5 = 125 spheres in a color of your choice. Each sphere should be the size of a tennis ball (0.07 meters diameter), and the balls' center points should be 0.14 meters apart from one another in all three dimensions.
  • Wait for the user to pull the trigger button (index finger) to start the game.
  • Create a way to change the color of a random one of the spheres to highlight it.
  • Create the ability to move the cursor sphere to the highlighted sphere and upon trigger button click on the controller (index finger) test to see if the cursor is touching the highlighted sphere (a simple center-distance test will do).
  • Once the highlighted sphere has been clicked on, move the highlight to a new randomly selected sphere.
  • Repeat the above until 1 minute has passed since the game was started.
  • Quit the application and display the number of correctly clicked spheres in the terminal window (not in VR).

Extra Credit (Max. 10 Points)

Options for extra credit are:

  • Avatar hands: use the Oculus Avatar SDK to show stylized hands and/or touch controllers in their correct locations (where the user's physical hands are). (10 points)
  • New game play: come up with a game that also involves clicking on things but is more fun than the homework project. (up to 10 points)

We might add more options later.