selection_manip(1) - 3D User Interface Techniques 3D for...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 3D User Interface Techniques 3D for Selection and Manipulation Lecture #8: Selection and Manipulation Spring 2009 Joseph J. LaViola Jr. Spring 2009 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Interaction Workflow Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 1 Universal 3D Interaction Tasks Navigation Navigation Travel – motor component Travel Wayfinding – cognitive component Wayfinding Selection Selection Manipulation Manipulation System control System Symbolic input Symbolic Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Why Selection and Manipulation? Major method of interaction with Major physical environments Major method of interaction with Major virtual environments Affects the quality of entire Affects 3D interface Design of 3D manipulation Design techniques is difficult Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 2 Lecture Outline What is 3D selection and manipulation? What Relationship between IT and input device Relationship Manipulation technique classification Manipulation Techniques Techniques selection selection manipulation manipulation hybrid hybrid Isomorphism vs. Non-isomorphism Isomorphism Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Selection & Manipulation Selection: specifying one or more objects Selection: from a set Manipulation: modifying object properties Manipulation: (position, orientation, scale, shape, color, texture, behavior, etc.) Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 3 Goals of Selection Indicate action on object Indicate Query object Query Make object active Make Travel to object location Travel Set up manipulation Set Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Selection Performance Variables affecting user performance Variables object distance from user object object size object density of objects in area density occluders occluders Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 4 Canonical Parameters Selection Selection distance and direction to target distance target size target density of objects around the target density number of targets to be selected number target occlusion. target Positioning Positioning distance/direction to initial position distance/direction distance/direction to target position distance/direction translation distance translation required precision of positioning required Rotation Rotation distance to target distance initial orientation initial final orientation final amount of rotation amount Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 3D Interaction Techniques and the Input Device Number of control Number dimensions Control Integration Control Force vs. Position Force control Device placement Device Form Factor Form Spring 2008 Attached to Hand CAP6938 – 3D User Interfaces for Games and Virtual Reality CAP6938 Rolled with fingers ©Joseph J. LaViola Jr. 5 Technique Classification by Metaphor VE manipulation techniques Exocentric metaphor World-In-Miniature Scaled-world grab Egocentric metaphor Virtual Hand metaphor "Classical" virtual hand Go-Go Indirect, stretch Go-Go Virtual Pointer metaphor Ray-casting Aperture Flashlight Image plane Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Technique Classification by Components Object Attachment attach to hand attach to gaze hand moves to object object moves to hand user/object scaling Object Position no control 1-to-N hand to object motion maintain body-hand relation other hand mappings indirect control Object Orientation no control 1-to-N hand to object rotation other hand mappings indirect control Manipulation Feedback Spring 2008 graphical force/tactile audio CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 6 3D Selection and Manipulation Techniques Pointing Pointing ray-casting raytwo-handed pointing twoflashlight & aperture flashlight image plane image Direct manipulation Direct simple virtual hand simple Go-Go GoWIM WIM Hybrids Hybrids Homer Homer Scaled-World Grab ScaledVoodoo Dolls Voodoo Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Pointing – Ray-Casting User points at objects User with virtual ray Ray defines and Ray visualizes pointing direction r p(α ) = h + α ⋅ p where 0 < α < ∞ h = 3D position of virtual hand r p = ray attached to h Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 7 Pointing – Two-Handed Pointing Ray casting with 2 hands Ray More control More distance between hands distance controls length twisting curves pointer twisting p(α ) = h l + α ⋅ (h r − h l ) where 0 < α < ∞ h l = 3D position of left hand h r = 3D position of right hand Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Pointing – Flashlight and Aperture Flashlight – soft selection Flashlight technique does not need precision does conic volume constant conic Aperture – extension to Aperture Flashlight adjustable volume adjustable p(α ) = e + α ⋅ (h − e) where 0 < α < ∞ h = 3D position of hand e = 3D coordinates of viewport Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 8 Pointing – Image Plane Family Requires only 2 DOF Requires selection based on 2D selection projections virtual image plane in front of virtual user Framing Spring 2008 Lifting Palms Head-Crusher CAP6938 – 3D User Interfaces for Games and Virtual Reality Sticky Finger ©Joseph J. LaViola Jr. Direct Manipulation – Virtual Hand Select and manipulate directly Select with hands Hand represented as 3D Hand cursor Intersection between cursor Intersection and object indicates selection p v = α ⋅ pr , R v = R r p r , R r = position and orientation of real hand p v , R v = position and orientation of hand in VE α = a scaling factor Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 9 Direction Manipulation – Go-Go Arm-extension technique Arm Like simple v. hand, touch Like objects to select them Non-linear mapping between Non physical and virtual hand position Local and distant regions Local rr if rr ≤ D ⎧ rv = F ( rr ) = ⎨ rr + α (rr − D ) 2 otherwise ⎩ r where rr = length of R r r rv = length of R v D, α are constants Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Direct Manipulation – WIM “Dollhouse” world held in user’s hand Miniature objects can be Miniature manipulated directly Moving miniature objects Moving affects full-scale objects Can also be used for Can navigation Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 10 Hybrids – HOMER Hand-Centered andObject Manipulation Extending Ray-Casting aySelect: ray-casting Select: ray- Time Manipulate: hand Manipulate: 2.0 m 1.0 m 0.6 m 0.3 m torso torso physical hand Spring 2008 physical hand CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. HOMER Implementation Requires torso position t Requires Upon selection, detach virtual hand from Upon tracker, move v. hand to object position in world CS, and attach object to v. hand (w/out moving object) Get physical hand position h and distance Get and dh = dist(h, t) Get object position o and distance do = dist(o, Get t) Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 11 HOMER Implementation (cont.) Each frame: Each Copy hand tracker matrix to v. hand matrix (to set Copy orientation) Get physical hand position hcurr and distance: Get dh-curr = dist(hcurr, t) curr, t) ⎛ do ⎞ V. hand distance d = d V. ⎜⎟ vh h − curr × ⎜ ⎟ ⎝ dh ⎠ Normalize torso-hand vector th = hcurr − t Normalize torsocurr hcurr − t V. hand position vh = t + dvh*(thcurr) V. vh *(th Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Hybrids – Scaled-World Grab Technique Often used w/ occlusion Often At selection, scale user up At (or world down) so that v. hand is actually touching selected object User doesn’t notice a User change in the image until he moves Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 12 Scaled-World Grab Implementation At selection: At Get world CS distance from eye to hand deh Get Get world CS distance from eye to object deo Get Scale user (entire user subtree) uniformly by deo / deh Scale subtree) Ensure that eye remains in same position Ensure Attach selected object to v. hand (w/out moving Attach object) At release: At Re-attach object to world (w/out moving object) ReScale user uniformly by deh / deo Scale Ensure that eye remains in same position Ensure Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Hybrids – Voodoo Dolls Two handed technique Two Builds upon image plane and Builds WIM techniques Creates copies of objects Creates (dolls) for manipulation Non-dominant hand – Non stationary frame of reference Dominant hand – defines Dominant position and orientation Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 13 Isomorphic vs. Non-Isomorphic Philosophies Human-Machine interaction Human input device input display device display transfer function (control to display mapping) transfer Isomorphic – one-to-one mapping Isomorphic Non-isomorphic – scaled linear/non-linear Non mapping Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Non-Isomorphic 3D Spatial Rotation Important advantages Important manual control constrained by human anatomy manual more effective use of limited tracking range (i.e more vision-based tracking) visionadditional tools for fine tuning interaction techniques additional Questions Questions faster? faster? more accurate? more Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 14 Rotational Space Rotations in 3D space are a little tricky Rotations do not follow laws of Euclidian geometry do Space of rotations is not a vector space Space Represented as a closed and curved Represented surface 4D sphere or manifold 4D Quaternions provide a tool for describing Quaternions this surface Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Quaternions Four-dimensional vector (v,w) where v is Four a 3D vector and w is a real number A quaternion of unit length can be used to quaternion represent a single rotation about a unit ˆ axis u and angle θ as θ θ ˆ q = (sin( u ), cos( )) = e 2 2 Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality θ 2 ˆ u ©Joseph J. LaViola Jr. 15 Linear 0th Order 3D Rotation Let qc be the orientation of the input device Let and qd be the displayed orientation then (1) qc = (sin( θc θc ˆ uc ), cos( θc )) = e 2 ˆ uc 2 2 kθ c ˆ uc kθ kθ ˆ (2) qd = (sin( c uc ), cos( c )) = e 2 = qck 2 2 Final equations w.r.t. identity or reference Final orientation qo are (3) qq = qck Spring 2008 − (4) qd = (qc qo 1 ) k qo , k = CD gain coefficient CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Non-Linear 0th Order 3D Rotation Consider Consider (3) q d = q ck − (4) q d = ( q c q o 1 ) k q o Let k be a non-linear function as in Let be non ω = 2 arccos(qc ⋅ qo ) or ω = 2 arccos(w) 1 if ω < ω o ⎧ k = F (ω ) = ⎨ 2 ⎩ f (ω ) = 1 + c(ω − ω o ) otherwise where c is a coefficient and ω o is the theshold angle Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 16 Design Considerations Absolute mapping – taken on i-th cycle of Absolute the simulation loop qdi = qcki Relative mapping – taken between the i-th Relative and i-1th cycle of the simulation loop qdi = (qci qc−i11 ) k qd i−1 − Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Absolute Non-Isomorphic Mapping Generally do not preserve directional Generally compliance Strictly preserves nulling compliance Strictly Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 17 Relative Non-Isomorphic Mapping Always maintain directional compliance Always Do not generally preserve nulling Do compliance Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Amplified Non-Linear Rotation for VE Navigation (1) Users expect the virtual world to exist in any Users direction 3-walled Cave does not allow this adapt expected UI to work in restricted environment adapt Amplified rotation allows users to see a full 360 Amplified degrees in a 3-walled display A number of approaches were tested number important to take cybersickness into account important Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 18 Amplified Non-Linear Rotation for VE Navigation (2) Apply a non-linear mapping function to the user’s Apply nonuser’ waist orientation θ and his or her distance d from the back of the Cave Calculate the rotation factor using a scaled 2D Calculate Gaussian function − 1 φ = f (θ , d ) = e 2π σ 1 The new viewing angle is The Spring 2008 ( θ −π (1− d / L )) 2 2 2σ 2 θnew = θ (1 − φ ) CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Amplified Non-Linear Rotation for VE Navigation (3) σ 1 = 0.57 σ 2 = 0.85 L = 30 μ =π Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 19 Non-Linear Translation for VE Navigation (1) Users lean about the waist to move small Users to medium distances users can lean and look in different directions users Users can also lean to translate a floorUsers based interactive world in miniature (WIM) Step WIM must be active Step user’s gaze must be 25 degrees below user horizontal Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Non-Linear Translation for VE Navigation (2) r Leaning vector LR is the projection of the Leaning vector between the waist and the head onto the floor gives direction and raw magnitude components gives Navigation speed is dependent on the user’s Navigation physical location Leaning sensitivity increases close to a boundary Leaning Linear function Linear LT = a ⋅ D min + b r Mapped velocity - v = LR − LT Mapped Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 20 Non-Linear Translation for VE Navigation (3) Navigation speed is also dependent on the Navigation user’s head orientation with respect to the vertical axis especially useful when translating the floor-based especially floorWIM Mapping is done with a scaled exponential Mapping rr function − β H ⋅V F =α ⋅e Final leaning velocity is Final Spring 2008 up vfinal = F ⋅ v CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. Next Class Navigation – Travel Navigation Readings Readings 3DUI Book – Chapter 5 3DUI Spring 2008 CAP6938 – 3D User Interfaces for Games and Virtual Reality ©Joseph J. LaViola Jr. 21 ...
View Full Document

Ask a homework question - tutors are online