As part of my honours research, I created an application which allowed the user to edit voxel terrain using several techniques. The terrain was polygonised using isosurface techniques, including modified marching cubes and a dual contouring algorithm. In an effort to improve the efficiency, both the marching cubes algorithm and dual contouring algorithm were implemented on the GPU through the compute shader.
Marching Cubes
I implemented marching cubes on the compute shader adapting paul bourke's algorithm initially written on the CPU.
For future, I aim to write an alternative algorithm which takes advantage of GPGPU techniques using a prefix scan to generate global indices and avoid using atomic increments to store triangles.
Surface Nets
I implemented Surface Nets on the compute shader based on some psuedo code aquired from a paper discussing the Isosurface algorithm.
In future work, I plan on implementing a version of the algorithm taking advantage of GPGPU techniques similarly to Marching Cubes.