Skip to main content
GameDev.net gamedev.net
🔒 Locked

Realistic skin deformation

Started by npatrick04 Sep 23, 2010 at 1:28 AM 1 replies 1.2k views
Original Post
npatrick04
npatrick04
Hi everyone, long-time-lurker here with a question. I'm embarking on a simulation that will probably never turn into a game, yet it is rooted in the game world. I'm attempting to develop a real-time closed-loop controller for a simulated biped. Here's the kicker, I'd like to model the foot-ground interaction as accurately as possible so that I can measure the simulated forces encountered by the foot in multiple locations while providing the bottom of the foot experiences deformation from compression and flexing.

I'm still gathering information regarding methods for accomplishing this, but I thought I'd check here to see if anyone had some advice. I would accept starting with a low fidelity model that would get me up and running...however at this point I haven't got enough information to define the minimum requirements.

My first concept is to build a skeleton, and a hard skin around the skeleton per standard skinning methods. Then put a tbd thickness compliant skin around the hard shell which would approximate a first or second order response to skin deformation.

Any thoughts or suggestions?
remigius
remigius

I'm not entirely sure I understand what you're planning to do, but in order to go accurately calculating pressures in the skin, I think you'll need to be doing your skinning 'manually' on the CPU in the first place. The way that's pretty much standard these days is to have your vertex shader (so on the GPU) skin-and-render the vertices onto your skeleton, but this way you won't have access to the transformed vertices themselves. Hence you'll need to loop over your model vertices in your main program (so on the CPU) and compute the final position of each based on its bone weights and the current bone matrices.

If you're not daunted by this, this will net you the actually vertex positions of the feets skin, which you can use as contacts to compute the forces in play. I don't know if you only want to measure the forces or also deform the model accordingly. If you're planning on doing the latter, you might want to take a look at this character physics paper which can be used to convincingly (if not really physically correctly) model an effect like
">this model deformation
.

If you're looking for a rough starting point, you could start with using your bone positions as contacts rather than the actualy skin vertices. Depending on your model (specifically the fine-boned-ness of its feet), this might already provide enough contacts to do meaningful calculations. These bone positions can be obtained by simply transforming the origin (0,0,0) by the absolute transformation matrix for each bone.


Ps does anyone know if the original paper by Jakobsen went down? This version seems to be lacking some diagrams
npatrick04
npatrick04
Hi Remigius, thanks for the reply. That article looks like exactly what I need. It should be directly applicable to my initial concept of an inner/outer shell. I could set the inner shell with impenetrable stick constraints on the mesh, and an outer shell with relaxed constraints such as steady state tension between particles, steady state distance between herd/shoft shell, max stretch distance, etc.

As for measuring the force, I could approximate that by measuring displacement from the steady-state position. Hmm...lots to think about.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.