procedural haptic texture jeremy shopf marc olano university of maryland, baltimore county

24
Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Upload: amberlynn-griffin

Post on 03-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Procedural Haptic Texture

Jeremy ShopfMarc Olano

University of Maryland, Baltimore County

Page 2: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Introduction

We have designed a system for procedurally defining haptic surface interaction

BackgroundHaptic RenderingHaptic TextureProcedural Shading

Page 3: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Haptics Creating a sense of touch through

the use of force-feedback Increasing user experience by

adding another mode of interaction Essential to creating an immersive

virtual experience

SensAble PHANToM

Page 4: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Application Domains

Surgical simulation Molecular modeling Teleoperation

Telerobotics Telemedicine

Virtual prototyping

Image courtesy of Dr. Roger Webster

Page 5: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Haptic Force Models

Generate response forces based on the position of the haptic cursor in the scene

Restorative force based on Hooke’s Law

F = kΔx→ →

k = stiffness of object

|Δx| = depth of penetration→

Page 6: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Haptic Texturing

Adding tangential forces creates the sensation of surface friction and texture

Increases realism Convey information

Molecular biology example Changing information requires

flexibility

Page 7: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Procedural Shading

Defining the visual appearance of an object with a short procedure or “shader”

Pixar’s RENDERMAN

©Pixar

Page 8: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Stochastic Methods

Use noise to create pseudo-randomness

www.povray.org ATI Procedural Wood Demo

Page 9: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Motivation

Describe haptic surface characteristics with short procedures/shaders

Provide familiar shading environment (C++, RENDERMAN)

Compatible with existing force models

Page 10: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Haptic Shading Framework

Features User-defined surface characteristics User-defined shader parameters that

can be changed during execution Adjust size of surface features

Apply to arbitrary geometry Change shaders dynamically

Page 11: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Standard Haptic Rendering

Page 12: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Haptic Shading Framework

Page 13: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

System Shader Parameters

*

*

*

**

*

*

*

Page 14: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Anatomy of a Haptic ShaderHapticTextureOut GetHapticTexture(HapticTextureIn input,

DLLparams params){ float ringscale = params.GetValue("ringscale", 5.0); float lightwood_staticF = params.GetValue("lightwood_staticF",

0.02); float lightwood_dynF = params.GetValue("lightwood_dynF", 0.02); float darkwood_staticF = params.GetValue("darkwood_staticF",

0.5); float darkwood_dynF = params.GetValue("darkwood_dynF", 0.5);

HapticTextureOut output; vector3 PP; float y, z, r;

PP = before.p + noise3(before.p); y = ycomp(PP); z = zcomp(PP); r = sqrt(y*y + z*z);

/* map radial distance r into ring position [0, 1] */ r *= ringscale; r += abs(noise1(r,r,r)); r -= floor (r);

/* use ring position r to select wood friction */ after.staticF = mix(lightwood_staticF, darkwood_staticF, r); after.dynamicF = mix(lightwood_dynF, darkwood_dynF, r); after.f = before.f;

return output;}

Fetch user-defined parameters

Shader Body

Return Results

Fetch User-defined Parameters

float ringscale = params.GetValue("ringscale", 5.0); float lightwood_staticF = params.GetValue("lightwood_staticF", 0.02); float lightwood_dynF = params.GetValue("lightwood_dynF", 0.02); float darkwood_staticF = params.GetValue("darkwood_staticF", 0.5); float darkwood_dynF = params.GetValue("darkwood_dynF", 0.5);

HapticTextureOut output; vector3 PP; float y, z, r;

PP = before.p + noise3(before.p); y = ycomp(PP); z = zcomp(PP); r = sqrt(y*y + z*z);

/* map radial distance r into ring position [0, 1] */ r *= ringscale; r += abs(noise1(r,r,r)); r -= floor (r);

/* use ring position r to select wood friction */ after.staticF = mix(lightwood_staticF, darkwood_staticF, r); after.dynamicF = mix(lightwood_dynF, darkwood_dynF, r); after.f = before.f;

Shader Body

Page 15: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Comparison to Visual Shading

InteractiveReqs

Insufficient Refresh

Shader Executions

Haptic Rendering

1000 Hz Instability 1

GraphicsRendering

10-60 Hz Flickering 1 million+

Page 16: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Dynamic Surface Characteristics

Model virtual geometry Change surface properties based on

proxy movement Change surface properties using

stochastic methods Change surface properties based on

user-interaction with the object

Page 17: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Dynamic Surface Characteristics

Model virtual geometry Add small-scale surface features

Increase/decrease collision force based on surface displacement

Page 18: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Dynamic Surface Characteristics

Surface properties depend on direction of movement

Anisotropic shader Friction based on proxy direction

Page 19: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Dynamic Surface Characteristics

Using stochastic methods Wood shader

Alter surface friction based on wood grain

Page 20: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Dynamic Surface Characteristics

Modify texture based on interaction Store surface properties in a texture

Plaque shader

Page 21: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Future Directions

Apply to surface-to-surface interaction Programmable hardware on the device

for force modeling would dramatically increase performance

Demonstrate on more haptic devices

Page 22: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Conclusion

We have presented a novel technique that uses user-defined shaders to redefine the haptic experience

Dynamic haptic texture (example: a surface that changes texture as a user interacts with it)

Change of surface shape and contours without additional object geometry

Dynamically loaded haptic shaders can be applied to arbitrary objects in the virtual scene

Page 23: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Acknowledgments

Funded in part by the UMBC SRIS/RAS grant program

Thanks to Dr. Alan Liu, Dr. Roger Webster, Alark Joshi, Kishalay Kundu and the UIST paper reviewers for their assistance

Page 24: Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

Questions?

Jeremy Shopf

[email protected]

http://userpages.umbc.edu/~jshopf1

http://cs.umbc.edu/vangogh