150 Commits over 242 Days - 0.03cph!
Optimise SH Baker into larger raycast batches, caching texture data, and SH occlusion sampling using parallel jobs. Handle cases where fbx does not have material assigned by searching local materials folder
Move SH calculations to vertex shader, use Unity shadow fade function for shadow to SHDO transition/blending, remove unneeded interpolators, fixed precision issue causing SHDO flickering when in shadow range.
Encode spherical harmonics directional occlusion (SHDO) into gbuffer for proper shadowing on direct lighting (directional light only), use alpha testing and multi hit backface raycasting in SH baker to better represent foliage shadowing, blend between shadows and SHDO when reaching max shadow range, and use TOD sun direction for SHDO calculation
Spherical harmonics baker (L0, L1) to store self shadowing data in foliage vertices
Upgrade fbx exporter for exposed export options API
Simple AO baker implementation
Capsule SDF setup for shadowing foliage out of shadow range
Decrease cell size, increase cells per compute
Fix error in toggling between instancing on/off
Set instancing convar to editor only, remove hardcode instancing on in tutorial island
Merge from foliage_instancing
Set placement population as structured buffer
Fix graphics buffer target flag for population compute, fix possible RNG issue, remove redundant texture samples in placement compute
Merge from foliage_instancing
Set constant for max refresh distance for now
Fix issue with max refresh value causing foliage to stop rendering at some locations/angles
Handle foliage grid in tutorial island
Merge from foliage_instancing
Process foliage cells based on validation checks in collect job, error handling for failed gpu readback, and fix for baked foliage grid
Add quality parameter for density falloff
Turn off mip streaming on foliage textures
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