This first large project I built in UE4, which has never released is a multi faceted voxel engine that supports dual contouring, marching cubes, and also Minecraft style cubic blocks. For the primary mesh extraction I implemented a full octree based dual contouring with support for QEF simplification. It also supports chunking for streamable loading and generation with full seams instead of the usual skirts to hide the chunk boundaries. I also implemented a basic uniform grid based marching cubes, and Minecraft style cubic blocks where all 3 share a common chunk structure for ease of use. The cubic blocks also support full block rotation and arbitrary shapes removing all inside, hidden faces and adjacent face merging.

This was the project that caused me to start the RuntimeMeshComponent as I was hitting major performance limits with the ProceduralMeshComponent found in standard UE4.

As a part of this I also built a multi-platform CPU aware SIMD framework and noise library to do the massive number of noise calculations need to run dual contouring at the fastest possible speed. This included supporting SSE, AVX, AVX-2, and extensions like FMA. This gave a substantial speedup to the point where generating 2 thousand chunks each requiring over 100 thousand noise samples only took about 5 seconds using 4 CPU cores.

VoxelEngine - Hilly Terrain

Dual contouring mountain terrain

This shows a 1.2 kilometer wide, 1 meter resolution, dual contouring mesh extraction of mountainous terrain.

Dual Contouring Low Hills

This shows a 1.2 kilometer wide, 1 meter resolution, dual contouring mesh extraction of low rolling hills. Generated via several octaves of Perlin Noise.

VoxelEngine - Low Rolling Hills
VoxelEngine - Real-Time Edits

Dual Contouring Real-time Edits

This shows the realtime editing capabilities of the dual contouring terrain. This is still 1 meter resolution due to predating LOD capabilities.

Minecraft style terrain

This shows the same base voxel engine extracting a cubic mesh resembling Minecraft.

VoxelEngine - Cubic Blocks
VoxelEngine - Different Cubic Sizes

Different Voxel Sizes

This shows the same terrain extracted in 2 different cubic voxel sizes. This allows some entities to be in different voxel resolutions.

Different mesh extractions

This shows the same terrain extracted in both cubic blocks and dual contouring smooth mesh.

VoxelEngine - Different Extractions