Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County."— Presentation transcript:

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

2 Introduction  We have designed a system for procedurally defining haptic surface interaction  Background Haptic Rendering Haptic Texture Procedural Shading

3 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

4 Application Domains  Surgical simulation  Molecular modeling  Teleoperation Telerobotics Telemedicine  Virtual prototyping Image courtesy of Dr. Roger Webster

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

6 Haptic Texturing  Adding tangential forces creates the sensation of surface friction and texture  Increases realism  Convey information Molecular biology example Changing information requires flexibility

7 Procedural Shading  Defining the visual appearance of an object with a short procedure or “shader”  Pixar’s RENDERMAN ©Pixar

8 Stochastic Methods  Use noise to create pseudo- randomness www.povray.org ATI Procedural Wood Demo

9 Motivation  Describe haptic surface characteristics with short procedures/shaders  Provide familiar shading environment (C++, RENDERMAN)  Compatible with existing force models

10 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

11 Standard Haptic Rendering

12 Haptic Shading Framework

13 System Shader Parameters * * * * * * * *

14 Anatomy of a Haptic Shader HapticTextureOut 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

15 Comparison to Visual Shading Interactive Reqs Insufficient Refresh Shader Executions Haptic Rendering 1000 HzInstability1 Graphics Rendering 10-60 HzFlickering1 million+

16 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

17 Dynamic Surface Characteristics  Model virtual geometry  Add small-scale surface features Increase/decrease collision force based on surface displacement

18 Dynamic Surface Characteristics  Surface properties depend on direction of movement  Anisotropic shader Friction based on proxy direction

19 Dynamic Surface Characteristics  Using stochastic methods  Wood shader Alter surface friction based on wood grain

20 Dynamic Surface Characteristics  Modify texture based on interaction Store surface properties in a texture  Plaque shader

21 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

22 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

23 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

24 Questions? Jeremy Shopf jshopf1@umbc.edu http://userpages.umbc.edu/~jshopf1 http://cs.umbc.edu/vangogh


Download ppt "Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County."

Similar presentations


Ads by Google