John Ratcliff's Code Suppository

A place where I insert my code into the anus of the Internet.

 

Tuesday, May 31, 2011

Duatiu ; A Massively Multiplayer Online First Person Shooter written by.....you?



For those who follow this blog, please check out the website and postings about a new project I'm trying to get off the ground.  Feedback, but more importantly, partners wanted.

Friday, May 20, 2011

HACD : Hierarchical Approximate Convex Decomposition by Khaled Mamou






Many people come to this weblog because they are searching on terms for 'Convex Decomposition'.  This blog post is to announce that there is a much, much, better open source implementation than the one I did.  I suppose I can take some tiny credit as my work appears to have inspired the authors of the new algorithm but that's not really saying much.  All credit where credit is due and the open source implementation released by Khaled Mamou is vastly superior to the brute force approach that mine took.  His is much more elegant and also solves a lot of extremely hard problems; such as objects with holes in them (something my algorithm could not deal with).  His also does not suffer with the problem mine had with excessive recursion depths producing hollow interiors.

You can find the paper for this algorithm at this location:

ftp://ftp.elet.polimi.it/users/Stefano.Tubaro/ICIP_USB_Proceedings_v2/pdfs/0003501.pdf


You can download the source to HACD from this location on SourceForge

http://sourceforge.net/projects/hacd/

With this announcement I will no longer be supporting my legacy ConvexDecomposition code in any way.  I am switching to using HADC in all of my projects.  I recommend you do the same.

Congratulations to Khaled and Faouzi who have done a fantastic job on an important problem.

One thing I will volunteer to the community is that sometime soon, I will create an open source tool using HACD that will auto-generate skeletal deformed meshes.

If you simply look at these various screenshots you will notice that the convex decomposition naturally produces a logical skeleton for an arbitrary piece of geometry.  Obviously, that skeleton isn't perfect compared to what an artist would create but it is certainly a useful approximate skeleton.

From previous work I have done on the 'create dynamics' project, I know that you can not only synthesize a skeleton but you can also auto-generate skinned bone weightings.  If you then create physical collision shapes which are constrained at these joint locations you can get an extremely convincing looking softbody object; with accurate collisions, in a very CPU cheap fashion.