The following is in response to a question asked on Google+ about dyntopo’s relation to unlimited clay. This question comes up a lot, so I’ll answer here as a general reference.
Neither the new dyntopo branch nor my older adaptive-sculpt branch on Gitorious share any code or algorithms with Farsthary’s unlimited clay, but that might not be the end of the story.
There are two somewhat separate components at play here. The first is the underlying modifications to sculpt needed to support dynamic topology. This includes adding BMesh support to the PBVH, updating the drawing code to handle topology updates, and eventually undo support.
With just those changes in place though, you wouldn’t really see any difference from regular sculpting except worse performance and more memory usage. You need the second component: topological operators that change the mesh structure. This is what Farsthary’s unlimited clay was really about, an algorithm for adaptive topological updates.
At present, the dyntopo branch contains two of the three topological operators defined in the paper “Freestyle: Sculpting meshes with self-adaptive topology”. Specifically, long edges are subdivided and short edges are collapsed. (Surface merging is not implemented.) This is a quite simplistic model, and we might well want something better. Farsthary wrote about his algorithm here; I will be examining it soon to see about using those ideas.
One thought on “Some implementation notes on dynamic topology”
Playing around with tessellation shaders in OpenGL. Terrain is generated on the GPU using Perlin noise. Water is created using Tessendorf’s FFT based method. Terrain is dynamically tessellated based on distance.
Also has frustum culling, reflections, depth of field, motion blur, crepuscular lighting, and tone mapping.
Source code is available at https://github.com/psastras/Rocky.