Project2W18

From Immersive Visualization Lab Wiki
Revision as of 22:54, 9 February 2018 by Jschulze (Talk | contribs)

Jump to: navigation, search

Contents

Homework Assignment 2: VR Classroom Design Tool

For this assignment you can obtain 100 points, plus up to 10 points of extra credit.

The goal of this assignment is to create a 3D application which can help with the design of a VR classroom.

This assignment is due on Friday, February 9th at 2:00pm.

The assignment is to be done in teams of two, and involves programming an Oculus Rift head mounted display with Oculus Touch controllers. Unless you have your own VR equipment, you should do the project in the VR lab, room B210.

This project will be discussed on Monday, January 29th, and also on February 5th.

You can choose to do this project in Unity 3D, UE4, Lumberyard or C++ with OpenGL and optionally OpenSceneGraph.

Unity 3D

To enable Touch controller support in Unity, use the Oculus Integration package from the Unity Asset Store.

Note that if you use Unity you aren't allowed to use any Unity assets other than the Oculus integration, 3D models and textures without explicit permission by a course staff member.

The Project (100 Points)

In this project, the only permitted interaction devices are the Oculus Rift HMD and the two Touch controllers. Keyboard, mouse and other input devices cannot be used once the application runs.

Imagine that you have been tasked with re-designing the VR lab in room B210. Write a 3D application which loads the 3D model of the lab and displays it at 1:1 scale. This ZIP file contains the room, as well as the furniture needed for this project. Feel free to use these assets, or other furniture that resembles what we have in the VR lab.

Vr-lab.jpg

1. Put the user in the lab and provide functionality to teleport from one location to another. To teleport, the user points with one of the Touch controllers to a new location on the floor, to which the camera then switches by moving the user laterally to the new location. (10 points)

2. Allow the spawning of the following items: desks, chairs, locker cabinets, storage cabinets, and TVs on stands. You are free to offer more object types than those. (10 points)

3. Implement an interaction technique to select any one of the items in the room and move it to a new location. Allow rotations of the furniture objects. See Notes below for a list of the interaction techniques we covered in class. (20 total)

4. Implement an alternative interaction technique to item #3 and allow switching between them to compare them to one another. Example: If you implemented a ray casting approach in part 3, implement a different method like the Go-Go technique here. (20 points)

5. Enforce that furniture can't intersect with other furniture or the room, has to sit on the floor once placed, or on top of other furniture (i.e., furniture can't float in space and can't penetrate the floor). (10 points)

6. Create a method to select any number of objects to group them together and highlight them (5 points), then allow moving the group as a whole (5 points).

7. Add copy-paste methods for individual furniture objects, as well as groups. (10 points)

8. Measurement tool: create a virtual tape measure tool which can measure the distance (in a physical unit like inches or centimeters) between any two points in the space the user clicks on, and will display the distance numerically. (10 points)


Notes:

  • In class we covered the following interaction techniques: ray casting, two-handed pointing, flashlight, image plane methods, virtual hand, go-go hand, world-in-miniature, voodoo doll.

Extra Credit (10 Points)

There are three options for extra credit.

1. Create 'save' and 'load' functions to store the furniture configuration on disk and retrieve it at a later point. Group information does not need to get saved. (4 points)

2. Add an interaction mode for two-handed scaling. When active, the user can gradually scale up or down the entire room with all the furniture to work on a global scale (by scaling down) or to work more accurately (by scaling up). Add a function to reset to the initial 1:1 scale. (4 points)

3. Video: Create a ~1 minute video of your application, make it available on Youtube, and show it to the graders on grading day. The video needs to have a title screen and text (or voiceover) to explain what is shown. Text comments can be created directly on Youtube. (2 points)