Voxel Terrain: Per-vertex Ambient Occlusion
Hello,
In this video I will be showcasing the new voxel ambient occlusion meshing feature that I've added to my CPU Surface Nets mesher. This allows me to add quite a bit of depth to the terrain with minimal runtime costs. The ambient occlusion is implemented in the C# Job system within the vertex mesher itself. I have written a blog post explaining sample code and how it works.
There are a few artefacts here and there due to the blocky nature of naive surface nets, however I think these could be alleviated by blurring the output ambient occlusion using a simple blur of the AO values of nearest vertices.
It might also be possible to extend this to work with global illumination techniques and custom flood fill lighting to implement proper voxel lighting like in Minecraft, however this would need inter-chunk support which would reduce parallelization support and thus performance in a general case.
https://jedjoud10.github.io/blog/surface-nets-ao/
Repository: https://github.com/jedjoud10/VoxelTerrainGenerator
Science & Technology