+ All Categories
Home > Documents > 12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 1 Human-Shape Interaction...

12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 1 Human-Shape Interaction...

Date post: 13-Dec-2015
Category:
Upload: esmond-george
View: 218 times
Download: 2 times
Share this document with a friend
11
03/25/22 Jarek Rossignac, CoC, GT, ©Copyright 2003 Transformations, slide 1 Human-Shape Interaction modalities CS4451 Prof. Jarek Rossignac College of Computing Georgia Institute of Technology
Transcript
Page 1: 12/3/2015Jarek Rossignac, CoC, GT, ©Copyright 2003Transformations, slide 1 Human-Shape Interaction modalities CS4451 Prof. Jarek Rossignac College of Computing.

04/18/23 Jarek Rossignac, CoC, GT, ©Copyright 2003 Transformations, slide 1

Human-Shape Interaction modalities

CS4451Prof. Jarek Rossignac

College of Computing

Georgia Institute of Technology

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

04/18/23 Jarek Rossignac, CoC, GT, ©Copyright 2003 Transformations, 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

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

04/18/23 Jarek Rossignac, CoC, GT, ©Copyright 2003 Transformations, 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

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

04/18/23 Jarek Rossignac, CoC, GT, ©Copyright 2003 Transformations, 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)

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

04/18/23 Jarek Rossignac, CoC, GT, ©Copyright 2003 Transformations, slide 5

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

04/18/23 Jarek Rossignac, CoC, GT, ©Copyright 2003 Transformations, 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

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

04/18/23 Jarek Rossignac, CoC, GT, ©Copyright 2003 Transformations, 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

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

Implementing dragging

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

Pick closest point with mouse

pt [] PP = new pt[4]; // declare an array of 4 pointsint p=0; // index to the selected point being draggedvoid 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))); };

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

Drag picked point with mouse

pt [] PP = new pt[4]; // declare an array of 4 pointsint p=0; // index to the selected point being draggedvoid draw() { if ((mousePressed)&& (!keyPressed)&& mouseIsInWindow()) PP[p].moveWithMouse();

boolean mouseIsInWindow() {return( ((mouseX>0)&&(mouseX<height)&& (mouseY>0)&&(mouseY<height)) ); };

class pt { float x=0,y=0; void moveWithMouse() { x += mouseX-pmouseX;

y += mouseY-pmouseY; };

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

Rubber-banding

pt [] PP = new pt[4]; // declare an array of 4 pointsint 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);};


Recommended