1 / 13

VR UI, Notes on Projects, Intro. to Object Descriptions

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].

lanai
Download Presentation

VR UI, Notes on Projects, Intro. to Object Descriptions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

More Related