Sorry about raising this topic.
I also think that DC is a nice approach that could possibly complement Polyvox. It is crack free out of box and preserves sharp features.
I asked to
Tao Ju about possible perf hits and he said that DC should be on par with MC.
He also added that using an octree should even help to extract the isosurface substantially faster.
There are some slight gotchas though. For example,
Ju's intersection free DC implementation does not take into account the face orientation when turned to triangles.
No real issue if rendered 2-sided but annoying if not.
The principle is brilliantly simple. You basically create a quad out of the minimizer(minimizing QEF) points provided by the four Hermite data voxels sharing the same edge.
Ju's DC code takes in a
Hermite volume (with signs at the grid points and point/normal data along grid edges whose ends have different signs).
The density field used for MC has to be turned into such Hermite format.
Another catch is in deciding the splitting direction for the quad that can sometimes lead to small imperfections on the sharp features.
This fellow try to address the issue by using "edge preservation heuristic rules"(not other drawbacks free though). He is also providing a neater approach for solving the self-intersecting faces problem based on convex/concave analysis, whereas Ju uses edge-polygon intersection tests phase.
Looking forward to seeing something like sharp features in PolyVox !