Overhaul of buffer use in voxel engine
I still haven't started in on implementing the global illumination part of my voxel engine.
I've overhauled the semantics of how Vulkan buffers are used in my engine to send/update shader buffer data. This includes both using shared buffers between shader passes and using GPU to GPU buffer data transfers which are faster on discrete GPUs than CPU to GPU buffer data transfers. With these changes there are both performance improvements and lower GPU RAM usage.
Right now my voxel engine does ray marching in a fragment shader. I've decided there is much more flexibility to be had to do voxel ray marching in a compute shader. These changes will be advantageous both in implementing global illumination as well as optimizations in rendering scenes.
Here's a screen shot of procedurally generated mushrooms with grooved gills (smaller mushroom does not have grooved gills) :
Vorxel
Status | In development |
Author | Teknologicus |
Genre | Adventure |
Tags | Exploration, Open World, Voxel |
More posts
- Fixed bug with dynamic direct sunlight and level of detail18 days ago
- Voxel Cone Tracing Experiment18 days ago
- Dynamic direct sunlight working with level of detail21 days ago
- Improved dynamic direct sunlight26 days ago
- Dynamic direct sunlight27 days ago
- Previous folly and finally success34 days ago
- Rasterized triangles are evil!43 days ago
- Procedurally Generated Blocks (Video)46 days ago
- Fog is working again49 days ago
- Improved fragment/compute shading rates51 days ago
Comments
Log in with itch.io to leave a comment.
looking good
Hey this is awesome! I've spend the last 3 or so weeks changing how my engine uses buffers, and hilariously, I changed from fragment rendering to compute rendering this last week actually :) I'm glad to see your still making progress!
Excellent! I've been looking into using a gbuffer with the ray marching version of my compute shader... :)