Difference between revisions of "Project1S18"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
(Project Description (100 Points))
(Project Description (100 Points))
Line 24: Line 24:
 
* Quit the application and display the number of correctly clicked spheres in the terminal window (not in VR).
 
* Quit the application and display the number of correctly clicked spheres in the terminal window (not in VR).
  
For all spheres in this project use [[Media:sphere-cse190s18.obj|this OBJ file]]. You can load it with the [http://www.assimp.org/ Assimp library].
+
For all spheres in this project use [http://web.eng.ucsd.edu/~jschulze/tmp/sphere.obj this OBJ file]. You can load it with the [http://www.assimp.org/ Assimp library].
  
 
==Extra Credit (Max. 10 Points)==
 
==Extra Credit (Max. 10 Points)==

Revision as of 01:03, 7 April 2018

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 most of the API functions you will need.

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)

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.
  • Quit the application and display the number of correctly clicked spheres in the terminal window (not in VR).

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

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.