Alexandros wrote:
The resulting meshes were not smooth enough, and (I suppose), cubiquity partially implements the algorithm on GPU, speeding up the calculation process. The meshes generated by cubiquity looks very fine.
The algorithm is actually implemented only on the CPU, with the mesh being passed to Unity for rendering on the GPU. It is quite a high-quality implementation which indeed handles smoothing and is written in C++ for performance. However, it might be slowed down by the fact that it supports dynamic modification (I've never actually compared it to other implementations).
Alexandros wrote:
I'd like to use only the piece of code of cubiquity that works for this purpose (as it's free and now open source too), but I suppose that to isolate it is not not so easy. Moreover, I cannot find the complete code of cubiquity (the repository I've found refers to the previous version of the engine).
The
Marching Cubes implementation is part of
PolyVox library, which is used by
Cubiquity, which is in turn used by
Cubiquity for Unity3D. This means the code is quite tightly coupled to the underlyng data structure and will be difficult to separate (as well as being written in template-heavy C++). However, it was originally derived from
Paul Bourke's implementation which is much simpler and might be much easier to port to C#. This might all be too much work though, if what you've got is working well enough.