Presentation is loading. Please wait.

Presentation is loading. Please wait.

12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 1 Human-Shape Interaction modalities CS4451 Prof. Jarek Rossignac College of Computing.

Similar presentations


Presentation on theme: "12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 1 Human-Shape Interaction modalities CS4451 Prof. Jarek Rossignac College of Computing."— Presentation transcript:

1 12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 1 Human-Shape Interaction modalities CS4451 Prof. Jarek Rossignac College of Computing Georgia Institute of Technology

2 12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 2 Input modalities Mouse, dials, trackball, joystick… –Inexpensive, for desktop applications Head tracking –Expensive and delicate, for immersive VR walkthough Trackers in the hand and gloves –Expensive, for coarse design and direct manipulation Force feedback –Expensive, for training and physic-based interaction Digital Clay –Bare hands

3 12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 3 Output modalities Screen with 3D perspective –Standard, inexpensive, 3D solution for all Stereo screen (glasses or autostereo) –More expensive and tricky, for immersion WorkBench –Expensive large back-lit screen Cave –Immersion for one, walk around Head-Mounted Display (HMD) –Cheaper than Cave, for immersion Digital Clay –All can see&feel

4 12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 4 View manipulation Point/look where you want to go (walkthrough, flythrough) –Use joystick or mouse equivalent (forward/rotation velocities) –In HMD, set forward direction by turning/tilting head, set velocity by moving hand (or leaning body?) Inspect selected point –Put it at the center of the screen and rotate around it or approach it Follow geometry –Maintain constant distance and angle to surface –Follow central axis of street, corridor, or artery Move camera in small scale model –Jarek’s camera (Best Product Award) Links traditional 2D blueprints with easy to use 3D view (point, annotate) Trivial to learn. Leads immediately to very effective navigation Others can see what you are looking at (you never get lost)

5 12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 5

6 12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 6 Shape manipulation How to specify 3D points or displacements with the mouse? –Specify 3D translation vectors –Rotate object around arbitrary axis –Rearranging furniture and paintings in a 3D model of a house How to grab and move objects/groups with a 3D tracker How to warp objects

7 12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 7 Questions List 3 input modalities and, for each one, suggest an application or environment where it is most effective. List 3 output modalities and, for each one, suggest an application that would benefit from it. Describe an easy to use and effective set-up for view maniplation and discuss its advantages/drawbacks

8 Implementing dragging

9 Pick closest point with mouse pt [] PP = new pt[4]; // declare an array of 4 points int p=0; // index to the selected point being dragged void mousePressed() { if (mouse().isInWindow()) { if (!keyPressed) { p=0; float d=PP[0].disToMouse(); for (int i=1; i<PP.length; i++) if (PP[i].disToMouse()<d) {d=PP[i].disToMouse(); p=i;} } else { /* stuff to do when a key is pressed */ }; } class pt { float x=0,y=0; … float disToMouse() { return(sqrt(sq(x-mouseX)+sq(y-mouseY))); };

10 Drag picked point with mouse pt [] PP = new pt[4]; // declare an array of 4 points int p=0; // index to the selected point being dragged void draw() { if ((mousePressed)&& (!keyPressed)&& mouseIsInWindow()) PP[p].moveWithMouse(); boolean mouseIsInWindow() {return( ((mouseX>0)&&(mouseX 0)&&(mouseY<height)) ); }; class pt { float x=0,y=0; void moveWithMouse() { x += mouseX-pmouseX; y += mouseY-pmouseY; };

11 Rubber-banding pt [] PP = new pt[4]; // declare an array of 4 points int p=0; // index to the selected point being dragged void draw() { background(121); if ((mousePressed)&&(!keyPressed)&&mouseIsInWindow()) PP[p].moveWithMouse(); stroke(blue); beginShape(); for (int i=0; i<PP.length; i++) PP[i].v(); endShape(); class pt { float x=0,y=0; void v() {vertex(x,y);};


Download ppt "12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 1 Human-Shape Interaction modalities CS4451 Prof. Jarek Rossignac College of Computing."

Similar presentations


Ads by Google