Improved fragment/compute shading rates
I've got shading rates working correctly and are optimized with the raymarching compute shader as well as with the fragment shader again. I also added additional shading rates for finer control over performance vs visual quality.
The only things that is left to be done with shading rates is to support shading rates correctly for GPUs / Vulkan drivers which don't support fragment shading rates. That requires implementing in the compute shader a W by H color value fill into the gbuffer for ray hits with respective to shading rate at that screen coordinate.
Getting fog working again is next on my list. That should be easy. Then onto global illumination / dynamic lighting...
P.S. Here's what the shading rates look like if fragment shading rates are disabled. What you are seeing is the result of the raymarching compute shader using shading rates. Each non-dark-blue pixel corresponds to a ray that was cast with respect to shading rates. Click images to see higher resolution version.
Hantverk'n
Status | In development |
Author | Teknologicus |
Genre | Adventure |
Tags | Exploration, Open World, Voxel |
More posts
- Fog is working again2 days ago
- Debugging variable compute shader rates9 days ago
- Deferred gbuffer rendering update10 days ago
- Deferred gbuffer rendering via compute shader ray marching output11 days ago
- Fast and Accurate Color Depth Conversion16 days ago
- Update: Hilbert Curve surface grooved stone block18 days ago
- Hilbert Curve surface grooved stone block18 days ago
- Overhaul of buffer use in voxel engine30 days ago
- Tetahexacontree 4x4x4 Occupancy Bitmasks Lookup Table42 days ago
Comments
Log in with itch.io to leave a comment.
How odd, why is that caused?
My understanding is that it's due to incomplete Vulkan driver implementations. I have an old laptop that has an Intel integrated (non-discrete) GPU and when my code requests the fragment shading rate extension with logical device creation, Vulkan reports that the extension is unsupported.
P.S. Same laptop doesn't support GLSL uint64 nor float64.