Download presentation
Presentation is loading. Please wait.
Published byAmberlynn Griffin Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.