Voxel Terrain: GPU Indirect Impostors
Hello,
In this video I will be showcasing the new prop generation system that I've implemented in my terrain generator. This allows me to generate terrain features like trees and boulders that the user can interact with. These props are generated on the GPU using a world segmentation/region system that generates these props on a fixed grid and offsets them using a compute shader.
These props are then either read back to the CPU to be able to spawn them as actual game objects or kept on the GPU to be able to use them as billboards using my custom GPU allocator which allows me to dynamically allocate / deallocate regions of memory whilst keeping a constant memory footprint without notifying the CPU to allocate more GPU buffers.
This GPU driven method allows me to implement custom compute based culling like frustum culling and occlusion culling, however my current implementation is a rather naive frustum culling implementation that makes use of the dot product between the voxel prop position and camera forward vector. I will eventually implement more advanced and tight culling algorithms like proper frustum culling and voxel octree based occlusion culling
Repository: https://github.com/jedjoud10/VoxelTerrainGenerator
Science & Technology
#unity
#voxel
#gpu generation