7 ms·
Something really cool about this approach is the marching squares algorithm is highly parallelizable which would make this a good candidate for GPU acceleration
by kirkbackus 12y ago
Something really cool about this approach is the marching squares algorithm is highly parallelizable which would make this a good candidate for GPU acceleration provided that there is enough memory.
- thibauts 12y agoI implemented marching cubes in the 00's to extract isosurface meshes from PET scans. As far as I can remember I had it operating real-time on regular CPUs. The volumes were in the order of 512^3 if my memory serves me well. I guess GPUs could help for very large volumes though.
- jonhohle 12y agoYou wouldn't need marching cubes to operate real time - it runs once, generates an iso-surface mesh which can be efficiently rendered in hardware. Edit: my thesis advisor was the first to prove that there were exactly 15 distinct configurations of voxels in MC, which gives you the ability to perform constant time lookup for the (configuration, rotation) for vertices on the edge of any particular voxel. http://graphics.stanford.edu/courses/cs164-10-spring/Handouts/paper_p83-nielson.pdf http://graphics.stanford.edu/courses/cs164-10-spring/Handout...
- thibauts 12y agoThe thing is there was slider to move the isosurface boundary.
- VikingCoder 12y agoWhat he's referring to is a transfer function. The marching cubes are not just evaluated to find the surface where Voxel(xyz)=value But rather F(Voxel(xyz))=value What gets interesting is that both pre-interpolated, and post-interpolated versions are interesting.
- rdw 12y agoThis is the basis of the Voxel Farm engine, which Miguel talks about in this early blog post: http://procworld.blogspot.com/2010/11/opencl-first-iteration.html http://procworld.blogspot.com/2010/11/opencl-first-iteration...