Implicit skinning
May 15, 2013 by Tobbe Olsson
6
|
Rodolphe Vaillant, Loïc Barthe, Gaël Guennebaud, Marie-Paule Cani, Damien Rhomer, Brian Wyvill, Olivier Gourmel and Mathias Paulin have put up a video on Vimeo for a SIGGRAPH 2013 paper showing a new “implicit skinning” technique they have developed. The video demonstrates its real-time speed and its ability to produce more realistic deformation in areas where you’d normally either lose volume or get unnatural deformation. Check it out on Vimeo.
Source: Tommy
This looks incredible. I hope someone implements in 3dsmax. Maybe the Raylight games developers will consider adding it to their dual quaternion plugin.
Hi Rotem,
as first – you are right: this is a way to go. The concept is very good, and it would be great if it could replace the current skin (primitive solution) and the current dual-q (half-solution).
Bad news: it seems you have watched the (useless) video and did not read the 150 pages of supplemented documentation. What you have seen is a presentation made in their own, just for this purpose programmed, editor. It can’t do anything else then what you have seen. And it works, with quite simple geometries, with 15 fps. (yes, i know it is a research project, but this is the best optimized reference at the moment.)
Aside the fact that only one axis bending was shown and not the critical cases like shoulder, hip or thumb (radial bending) this construct works only in their prepared environment. If you read the whole written material you will see that the calc is at the moment slow. Too slow to be usable. If it works with 20fps on a 20k poly hand, how will it work if you have character consisting of 10 cloth pieces, belts etc. Or, what is usually a default production case, when you have a half dozen moving characters in the scene.
On the top, if you put it into Max, where Max needs to drag the whole overhaul of its own creepiness behind and in front of it, constantly evaluating stacks, refreshing viewports, selection sets etc… ok, i think you have understood it. It wont work at all 🙂
We have been researching dual-q, this and other solutions since years in order to implement them into BonesPro in 3dsmax, and throw them all away for the present time. Most of them are nice concepts which are either too slow to do a job with them, or they deliver only in specific prepared cases good results. As soon as you try something else, you get almost always unusable, unpredictable trash.
I go back to my first sentence – this is a way to go. This great guys sat down and moved the biggest stone. Now, years of polishing, optimizing and testing are ahead of us. I am sure we will see it some day in one or another 3d application, no doubt 🙂 (if anyone, i think Blender will be the first one to have it)
Hi Igor
Thanks, I really did not read the paper nor the documentation. Your detailed explanation is very enlightening.
Agreed. Thanks for the extra information, Igor. It was very interesting to read.
Igor, what about implementing it as a simulation step? I’d much rather have the option to run a quickish simulation than wait for hardware and code optimisations to catch up before I get this level of skinning. Outside of inhouse skinning tools I feel the industry is really lacking when it comes to good skinning solutions. CGSkin was a pretty decent solution but no development has been done on it in ages, neither has there been on its muscle-system counterpart Absolute Character Tools. I wish those tools had been developed further as they had a lot of promise. Skinning is an area that outside of the major houses really hasn’t gotten very far over the last 5-8 years which is a huge shame. As for right now, I end up with morph targets for difficult joints, fake muscle movement and skinfolds which works but can get very messy.
I’m sure this could be optimized – and some of the samples show sufficient performance at low poly models, 10.000 polys and less. I have a ton of characters below that detail level. I would love to be able to combine this with 3ds max skin, using the implicit skinning method on the more critical areas.
I hope someone picks this up! Perhaps Marius Silaghi is reading this 🙂