[Bf-committers] Code donation: "Dual contouring re-meshing"

Ton Roosendaal ton at blender.org
Mon Mar 7 13:49:06 CET 2011


Hi all,

I've been contacted by Prof. Tao Ju, University St Louis.
http://www1.cse.wustl.edu/~taoju/

He offered Blender Foundation to use algorithms and code he developed  
the past years. It's based on his 2002 Siggraph paper:
http://www1.cse.wustl.edu/~taoju/research/dualContour.pdf

He further worked on that, resulting in this program:
http://www1.cse.wustl.edu/~taoju/code/polymender.htm

It also has an improved method for creating meshes out of volumes,  
preserving detail:

example of a marching cube metaball scene:
http://reocities.com/SiliconValley/port/3456/isosurf/png/demo1.png

the same metaball scene in dual contouring:
http://reocities.com/SiliconValley/port/3456/isosurf/png/demo2.png

His assistant Jean-Denis Boudreault wrote me:

"If blender wishes to push the envelope even further, it could enter a  
whole new area of modeling paradigm, in which dual contouring would be  
the key. for example, the 3d modeling software http://www.3d-coat.com/  
uses a voxel data approach for advanced neo-modeling of polygon free  
meshes. Blender could enhance it's metaball system with dual  
contouring to make it's entry in the voxel based modeling world in  
style.  all this is only the start an overhaul of the metaball system  
can offer. With dual contouring, you now have the proper tools to do  
it."

When I wrote back about possible implementation of CSG meshing, he  
wrote:

"As for CSG operations, I was not aware that they were not included in  
the above code. But im sure the talented Blender developers shall know  
how to re implement it if necessary. If this can help, i include code  
from an independent experimental implementation of dual contouring  
that is available as open source on the internet (http://reocities.com/SiliconValley/port/3456/isosurf/isosurfaces.html 
). Now i am not aware if the code is usable by blender as is (and im  
convinced Mr. Ju's code is preferable anyways), but it can surely be  
used as an example implementation of CSG operations, from which the  
developers can triangulate the algorithms into Mr. Ju's code."

The code for dualcontouring and polymender is here:
http://download.blender.org/demo/test/dc.zip

It is still (c) by the creator. He has agreed on transferring to this  
to (c) for BF, but with keeping his contribution credit.

Anyone interested in following up on this is welcome! I'd need  
feedback from experienced developers what do with it precisely. In  
case there's someone who can (wants to) bring this in Blender, Tao Ju  
is more than willing to assist or give feedback too.

Thanks,

-Ton-

------------------------------------------------------------------------
Ton Roosendaal  Blender Foundation   ton at blender.org    www.blender.org
Blender Institute   Entrepotdok 57A  1018AD Amsterdam   The Netherlands



More information about the Bf-committers mailing list