130 likes | 202 Views
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. Review: VR & TRANSF [1/2].
E N D
VR UI, Notes on Projects,Intro. to Object Descriptions Glenn G. ChappellCHAPPELLG@member.ams.org U. of Alaska Fairbanks CS 481/681 Lecture Notes Wednesday, February 25, 2004
Review:VR & TRANSF [1/2] • In terms of transformations, one of the trickier parts of VR is moving objects together in an arbitrary frame of reference. • For example, moving an object with the wand. • To draw an object in the wand’s frame of reference: glPushMatrix(); glTransform(myUser.getTransf(USR_WAND)); … // Draw transformed objects glPopMatrix(); CS 481/681
Review:VR & TRANSF [2/2] • To find where the wand points: vec wandDir = myUser.getFrontVec(USR_WAND); • How do we turn this into a 2-D vector (no up/down)? • Solution 1: wandDir[1] = 0.; wandDir = wandDir.normalized(); • Solution 2: wandDir -= wandDir.component(vec(0.,1.,0.)); wandDir = wandDir.normalized(); CS 481/681
VR User Interface:Three Hard Problems • 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: • How to Navigate • “Move in the World” • Flying, driving, etc. • How to Manipulate Objects. • “View the World” • Picking • How to Initiate Actions • In other words, how to tell the computer what you want • Picking, keyboard, menu • All of these are trickier in VR. CS 481/681
VR User Interface:Navigation [1/2] • 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: • None • Like most desktop programs: objects move, but the user is stationary. • Sort of … • Walking/Driving • We still might allow stairs, bridges, elevators … • Airplane-style Flying • Up is always up. • Spaceship-style Flying • Anything goes. CS 481/681
VR User Interface:Navigation [2/2] • Four Types of Navigation • None • Walking/Driving • Airplane-style Flying • Spaceship-style Flying • What would be a useful UI for each of these? CS 481/681
VR User Interface:Object Manipulation [1/2] • When we manipulate objects, we deal with the following: • 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? • Can we move an object without picking it up? • How? • Can we perform actions with/on an object without moving it? • What things? • Similar questions to those above … CS 481/681
VR User Interface:Object Manipulation [2/2] • Other Problems • How to deal with clutter? • 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? • How can we write object interfaces so that all objects can coexist in a “friendly” way? CS 481/681
VR User Interface:Initiating Actions • More generally, we have the problem of how to tell the computer what to do. • 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. CS 481/681
Notes on Projects:Overview • 100 points of your grade in this class will be a project. • Projects will be graded via a “contract” system: • 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. • General requirements: • 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. • Some documentation is required. It need not be extensive. • Plan to do a short in-class presentation as well. CS 481/681
Notes on Projects:What to Do? • For project length and difficulty, think in terms of four regular assignments. • Possible topics: • Implement, and use in a program, some (relatively) advanced CG method. • Ray tracing? • Try out some new user-interface idea. • A navigation method in VR, etc. • 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. CS 481/681
Intro. to Object Descriptions:Overview [1/2] • Descriptions of surfaces (and thus of 3-D objects) can be roughly split into three types: • 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). • Explicit Description • Surface is described explicitly, using formulae. • We call this a parametric surface. • Example: (s, t, t2), for 0 s 1 and 0 t 1. • Implicit Description • Surface is described implicitly, using equations. • Example: x3 + 3xyz3 + 4z2sin y = 8. CS 481/681
Intro. to Object Descriptions:Overview [2/2] • Again: • Polygon List • Explicit Description • Implicit Description • So far, we have dealt only with polygon lists. • Now, we look at: • 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. CS 481/681