125 Commits over 181 Days - 0.03cph!
Merge from foliage_instancing
Handle when camera is in cells that are still processing
Use coarse heightmap for better height placements, replace cell invalidation step with more robust coordinate tracking, and prune no longer needed graphics buffer flags
Merge from foliage_instancing
Remove unneeded buffer flag
Fix alignment issues with indirect args on different devices
Merge from foliage_instancing
Correct invalidation offset calculation error
Fix spawn issues by stopping invalidation while still computing cells
Merge from foliage_instancing
Clear placement list on destroy
Handle when no foliage placements are created
Merge from foliage_instancing
Add check for AsyncGPUReadback support
Fix on destroy issue with foliage grid
Merge from foliage_instancing
Also fix invalidate cell blocks step for negative coords
Fix compute cell block issues when using negative coords
Merge from foliage_instancing
Fix burst compile error, change position xz to floats to fix issues on larger maps
Merge from foliage_instancing
Fix compile issue, correct instanceID for vulkan
Put debug code behind conditionals, disable primitive rendering option, instancing now on by default, dispose all buffers on destroy, move buffers init to after all placements have been added to list, revert sections to main where possible, remove opt vertex macros and noise gen compute.
Fix possible inconsistent RNG placements, use minimum radius to avoid noticeable culling with shadows, increase cell plane test bias to compensate
Add vertex color to binned vertex data; fixing wind and displacement parameters
Track compute blocks instead of cells in wrapping grid update; fixes case where invalid cells were not being updated when moving in certain patterns, fix WrapIndex function for all cases
Use terrain normal map instead of deriving from the height map for better quality on steep edges, more accurate grass distance based cell count calculation
Recompute cells when texture mipmap limit is changed, fix underwater foliage by calculating min max heights in cells, and improve debug view.
Revert changes to terrain maps, fix inaccurate heights by setting ignoreMipmapLimit on heightmap
Track total possible instance count and recreate buffer if required
Change detail metallic map to better match the blend2x mode paradigm
Handle AsyncGPUReadback data in a job, remove unused grid class
More clean up, primitive rendering improvements using the vertex buffer instead of a structured buffer, fix issue incorrectly limiting wrapping grid, error when placement counts don't match, integrate with Jungle biome, compare triangle counts when binning meshes to avoid false positives, better toggling between instancing for performance comparisons.
Primitive indexed indirect render implementation for single material
Add y-axis fade controls to foliage billboard shader
Fix foliage shader merge issue. Adjust placement count.
Big code clean up and mark up. GPU readback to job wip.
Better switching between instancing on/off, and more clean up