VR UI Notes on Projects Intro to Object
VR UI, Notes on Projects, Intro. to Object Descriptions Glenn G. Chappell CHAPPELLG@member. ams. org U. of Alaska Fairbanks CS 481/681 Lecture Notes Wednesday, February 25, 2004 25 Feb 2004 CS 481/681
Review: VR & TRANSF [1/2] n In terms of transformations, one of the trickier parts of VR is moving objects together in an arbitrary frame of reference. n n For example, moving an object with the wand. To draw an object in the wand’s frame of reference: gl. Push. Matrix(); gl. Transform(my. User. get. Transf(USR_WAND)); … // Draw transformed objects gl. Pop. Matrix(); 25 Feb 2004 CS 481/681 2
Review: VR & TRANSF [2/2] n To find where the wand points: vec wand. Dir = my. User. get. Front. Vec(USR_WAND); n How do we turn this into a 2 -D vector (no up/down)? n Solution 1: wand. Dir[1] = 0. ; wand. Dir = wand. Dir. normalized(); n Solution 2: wand. Dir -= wand. Dir. component(vec(0. , 1. , 0. )); wand. Dir = wand. Dir. normalized(); 25 Feb 2004 CS 481/681 3
VR User Interface: Three Hard Problems n n In CS 381, we discussed “view the world” and “move in the world” interfaces. We also discussed picking, keyboard -handling, and menus. There are three problems here: n How to Navigate • “Move in the World” • Flying, driving, etc. n How to Manipulate Objects. • “View the World” • Picking n How to Initiate Actions • In other words, how to tell the computer what you want • Picking, keyboard, menu n All of these are trickier in VR. 25 Feb 2004 CS 481/681 4
VR User Interface: Navigation [1/2] n n In VR we are generally either moving around on a floor/ground surface, or in the air/space. In the latter case, we can have a uniform “up” direction or not. Or we may not be able to move at all. This gives four general types of navigation: n None • Like most desktop programs: objects move, but the user is stationary. • Sort of … n Walking/Driving • We still might allow stairs, bridges, elevators … n Airplane-style Flying • Up is always up. n Spaceship-style Flying • Anything goes. 25 Feb 2004 CS 481/681 5
VR User Interface: Navigation [2/2] n Four Types of Navigation n n None Walking/Driving Airplane-style Flying Spaceship-style Flying What would be a useful UI for each of these? 25 Feb 2004 CS 481/681 6
VR User Interface: Object Manipulation [1/2] n When we manipulate objects, we deal with the following: n Can we pick up an object? • If so, how do we determine which one? • How do we drop it? • What does it do while it is grabbed? n Can we move an object without picking it up? • How? n Can we perform actions with/on an object without moving it? • What things? • Similar questions to those above … 25 Feb 2004 CS 481/681 7
VR User Interface: Object Manipulation [2/2] n Other Problems How to deal with clutter? n How to limit the number of actions we can perform so that users don’t have to learn & remember a lot, and internal object interfaces are simpler? n How can we write object interfaces so that all objects can coexist in a “friendly” way? n 25 Feb 2004 CS 481/681 8
VR User Interface: Initiating Actions n More generally, we have the problem of how to tell the computer what to do. n n Remember, we are in a VR environment. Users already know how to deal with reality (we hope). How can we make use of this knowledge? Users have 3 -D input devices. So, for example, treating the wand like a 2 -D mouse is silly. There is no keyboard. Menus are a pain, as usual. 25 Feb 2004 CS 481/681 9
Notes on Projects: Overview n n 100 points of your grade in this class will be a project. Projects will be graded via a “contract” system: n n n Each student individually negotiates project requirements with me. If all requirements are met, then you get 100%. Proposed requirements are due, as part of Assignment 5, in a couple of weeks. • Your grade on Assignment 5 has nothing to do with your grade on the project. n General requirements: n n Projects will be due on Thursday, April 22. It is generally expected that you will turn in a preliminary version two weeks before that (Thursday, April 8). • In your project proposal, specify what the preliminary version will include. • If, for some reason, you think you need to handle the preliminary version differently, put this in your proposal. n n Some documentation is required. It need not be extensive. Plan to do a short in-class presentation as well. 25 Feb 2004 CS 481/681 10
Notes on Projects: What to Do? n n For project length and difficulty, think in terms of four regular assignments. Possible topics: n Implement, and use in a program, some (relatively) advanced CG method. • Ray tracing? n Try out some new user-interface idea. • A navigation method in VR, etc. n n Two words: VR game (okay, that’s three words). 3 -D fractals, chaos, or whatever. Something else … Use of VR Juggler & the Discovery Lab is encouraged, but not required. 25 Feb 2004 CS 481/681 11
Intro. to Object Descriptions: Overview [1/2] n Descriptions of surfaces (and thus of 3 -D objects) can be roughly split into three types: n Polygon List • A list of the polygons (and/or polylines, points) that make up a surface. • Example: triangle (0, 0, 0), (0. 5, 0, 0), (1, 1. 2, 0); triangle (1, 1. 2, 0), (0. 5, 0, 0), (2, 1, 1). n Explicit Description • Surface is described explicitly, using formulae. • We call this a parametric surface. • Example: (s, t, t 2), for 0 s 1 and 0 t 1. n Implicit Description • Surface is described implicitly, using equations. • Example: x 3 + 3 xyz 3 + 4 z 2 sin y = 8. 25 Feb 2004 CS 481/681 12
Intro. to Object Descriptions: Overview [2/2] n Again: n n n Polygon List Explicit Description Implicit Description So far, we have dealt only with polygon lists. Now, we look at: n n Pro’s & Con’s of the above three. Using formulae to describe curves and curved surfaces. Splines: Generating useful explicit descriptions based on control points. Implicit surfaces and their applications. 25 Feb 2004 CS 481/681 13
- Slides: 13