Procedural Haptic Texture Jeremy Shopf Marc Olano University

  • Slides: 24
Download presentation
Procedural Haptic Texture Jeremy Shopf Marc Olano University of Maryland, Baltimore County

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

Introduction ¡ We have designed a system for procedurally defining haptic surface interaction ¡

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

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

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 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 ¡

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

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

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++,

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

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

Standard Haptic Rendering

Haptic Shading Framework

Haptic Shading Framework

System Shader Parameters * * * *

System Shader Parameters * * * *

Haptic. Texture. Out output; Shader Body vector 3 PP; Fetch User-defined Parameters float y,

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

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

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

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 ¡

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

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

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

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

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.

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.

Questions? Jeremy Shopf jshopf 1@umbc. edu http: //userpages. umbc. edu/~jshopf 1 http: //cs. umbc. edu/vangogh