Procedural Haptic Texture Jeremy Shopf Marc Olano University
























- Slides: 24
Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County
Introduction ¡ We have designed a system for procedurally defining haptic surface interaction ¡ Background Haptic Rendering l Haptic Texture l Procedural Shading l
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 ¡ Sens. Able PHANTo. M
Application Domains Surgical simulation ¡ Molecular modeling ¡ Teleoperation ¡ l l ¡ Telerobotics Telemedicine Virtual prototyping Image courtesy of Dr. Roger Webster
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
Haptic Texturing Adding tangential forces creates the sensation of surface friction and texture ¡ Increases realism ¡ Convey information ¡ l l Molecular biology example Changing information requires flexibility
Procedural Shading Defining the visual appearance of an object with a short procedure or “shader” ¡ Pixar’s RENDERMAN ¡ ©Pixar
Stochastic Methods ¡ Use noise to create pseudorandomness www. povray. org ATI Procedural Wood Demo
Motivation Describe haptic surface characteristics with short procedures/shaders ¡ Provide familiar shading environment (C++, RENDERMAN) ¡ Compatible with existing force models ¡
Haptic Shading Framework ¡ Features l l User-defined surface characteristics User-defined shader parameters that can be changed during execution ¡ l l Adjust size of surface features Apply to arbitrary geometry Change shaders dynamically
Standard Haptic Rendering
Haptic Shading Framework
System Shader Parameters * * * *
Haptic. Texture. Out output; Shader Body vector 3 PP; Fetch User-defined Parameters float y, z, r; Haptic. Texture. Out Get. Haptic. Texture(Haptic. Texture. In input, DLLparams Anatomy of a Haptic Shader { params) float ringscale = params. Get. Value("ringscale", 5. 0); = before. p noise 3(before. p); float. PP ringscale =+ 5. 0); float lightwood_static. F =params. Get. Value("ringscale", params. Get. Value("lightwood_static. F", 0. 02); Fetch user-defined float lightwood_dyn. F = params. Get. Value("lightwood_dyn. F", 0. 02); y = ycomp(PP); floatlightwood_static. F = params. Get. Value("lightwood_static. F", darkwood_static. F = params. Get. Value("darkwood_static. F", 0. 5); parameters 0. 02); float darkwood_dyn. F = params. Get. Value("darkwood_dyn. F", 0. 5); zcomp(PP); floatz = lightwood_dyn. F = params. Get. Value("lightwood_dyn. F", 0. 02); Haptic. Texture. Out output; r = sqrt(y*y + z*z); PP; floatvector 3 darkwood_static. F = params. Get. Value("darkwood_static. F", 0. 5); float y, z, r; float. PPdarkwood_dyn. F = params. Get. Value("darkwood_dyn. F", 0. 5); Shader Body = before. p + noise 3(before. p); /* map radial distance r into ring position [0, 1] */ y = ycomp(PP); zcomp(PP); rz =*= ringscale; r = sqrt(y*y + z*z); r += abs(noise 1(r, r, r)); /* map radial distance r into ring position [0, 1] */ rr *= -=ringscale; floor (r); r += abs(noise 1(r, r, r)); r -= floor (r); /* use position r tofriction select /* use ring position r to select wood */ wood friction */ after. static. F = mix(lightwood_static. F, darkwood_static. F, r); after. static. F = mix(lightwood_static. F, after. dynamic. F = mix(lightwood_dyn. F, darkwood_dyn. F, r); darkwood_static. F, r); after. f = before. f; after. dynamic. F = mix(lightwood_dyn. F, darkwood_dyn. F, r); return output; Return Results after. f = before. f; }
Comparison to Visual Shading Haptic Rendering Graphics Rendering Interactive Insufficient Shader Refresh Executions Reqs 1000 Hz Instability 1 10 -60 Hz Flickering 1 million+
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 ¡
Dynamic Surface Characteristics Model virtual geometry ¡ Add small-scale surface features ¡ l Increase/decrease collision force based on surface displacement
Dynamic Surface Characteristics Surface properties depend on direction of movement ¡ Anisotropic shader ¡ l Friction based on proxy direction
Dynamic Surface Characteristics Using stochastic methods ¡ Wood shader ¡ l Alter surface friction based on wood grain
Dynamic Surface Characteristics ¡ Modify texture based on interaction l ¡ Store surface properties in a texture Plaque shader
Future Directions Apply to surface-to-surface interaction ¡ Programmable hardware on the device force modeling would dramatically increase performance ¡ Demonstrate on more haptic devices ¡
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
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 ¡
Questions? Jeremy Shopf jshopf 1@umbc. edu http: //userpages. umbc. edu/~jshopf 1 http: //cs. umbc. edu/vangogh
























