userDayaancancel
branchrust_reboot/main/foliage_instancingcancel

53 Commits over 151 Days - 0.01cph!

Today
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
Today
Recompute cells when texture mipmap limit is changed, fix underwater foliage by calculating min max heights in cells, and improve debug view.
Yesterday
Revert changes to terrain maps, fix inaccurate heights by setting ignoreMipmapLimit on heightmap
Yesterday
Track total possible instance count and recreate buffer if required
Yesterday
Merge from main
3 Days Ago
Handle AsyncGPUReadback data in a job, remove unused grid class
5 Days Ago
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.
11 Days Ago
Fix corrupted file
11 Days Ago
Primitive indexed indirect render implementation for single material
15 Days Ago
Fix foliage shader merge issue. Adjust placement count.
15 Days Ago
Merge from main
15 Days Ago
Big code clean up and mark up. GPU readback to job wip.
16 Days Ago
Merge from main
17 Days Ago
Better switching between instancing on/off, and more clean up
18 Days Ago
Merge from main
18 Days Ago
Clean up no longer used instancing code, add grass instancing convar to enable instancing, fix incorrect placement IDs, add small bias to cell box/plane check to avoid false/edge case negatives
22 Days Ago
Improve foliage cell culling with heights, allowing proper camera plane culling using AABB bounds check. Now using a fixed bounds around camera based on grass distance where cells will be culled and bounds shrinked for the compute pass.
24 Days Ago
Improve cell culling on CPU using plane distances with approx cell radius as threshold, distance culling on GPU, better max distance calculation, improve debug view.
30 Days Ago
Put foliage cell collect and command buffer creation in job, split render update across update and late update, add submesh command values to master mesh struct
31 Days Ago
Merge from main
31 Days Ago
Restructure foliage grid to make use of native arrays in cell collect and command creation steps. Use wrapping smaller grid for foliage cells to keep to a reasonable size, while invalidating cells as the camera moves.
38 Days Ago
Merge from main
38 Days Ago
Re-enable wind and fix instanced foliage motion vectors
39 Days Ago
Simplify placement compute shader and reduce interlocked ops, restructure foliage instancing header to handle shadows and motion vectors, improve performance in foliage grid update by caching raycorners and reducing unneeded cbuffer updates.
45 Days Ago
Merge from main
45 Days Ago
Fix buffer clearing compute dispatch count, array disposal, add scale world to object matrix, restore old functionality for comparisons
47 Days Ago
Add normals and tangents to binned vert data, restructure foliage vertex shader to handle wind, fading and displacement with instancing (also might have improved edge masking), add optional vertex data macros to make passing data easier and reducing redundant calculations
54 Days Ago
Simplify active submesh data structure
57 Days Ago
Compute foliage cell population on a 3x3 grid of 8x8 cells in a sequence of computes and AsyncGPUReadbacks to cache population counts in chunks as camera moves.
57 Days Ago
Fix merge issues, increase cell compute radius, add clear buffer step to run separately
58 Days Ago
Merge from main
58 Days Ago
Testing async gpu readback to calculate foliage counts to avoid any consistency issues
59 Days Ago
Increase coarse cull epsilon, and improve debug logs
2 Months Ago
Improve cell placement count gathering performance by using bitmasks instead of collections
2 Months Ago
Add foliage debugger to find inconsistencies, fix splat and biome map sampling, adjust cpu coarse culling to avoid issues, remove instance data padding now placement is more consistent
2 Months Ago
Use vertex offsets to handle combined index buffer, fix total argument count to handle binned meshes, fix minimal vertex buffer indexing.
2 Months Ago
Mesh binning preprocess in foliage grid using minimal vertex buffer to reduce draw calls on foliage which share similar meshes.
3 Months Ago
Combine foliage meshes and make use of multiple draw commands to minimise state changes
3 Months Ago
Merge from main
3 Months Ago
Implement new foliage placement function in RefreshAsync update, adjust refresh distance when using instancing, make debug toggle.
3 Months Ago
Implement manual bilinear sampling and edit CPU sampling to match GPU behaviour, add distance scaling, improve rng hash function, fix edge case causing out of sync rng.
3 Months Ago
Random instance rotation, pack instance data into halfs, fix hash inconsistency
3 Months Ago
Implement precise placement check on CPU to improve instance offset accuracy (to test against cheaper approximation), extend debug info to test accuracy, use procedural noise instead of texture, improve randomisation, apply rotation to instances based heightmap
3 Months Ago
Merge from main
3 Months Ago
Switch to structs instead of offsets, update debug counters for clarity, add clean up on destroy, give foliage unique seeds to keep consistent
4 Months Ago
Make foliage instancing much more stable/accurate, better seed and random calculations, made the noise texture match the CPU noise much more closely in distribution, add debug option to force CPU and GPU maps to sync, apply random scale to instances, and change foliage count calculation to adjust for probability.
4 Months Ago
Merge from main
4 Months Ago
Add debug counters to compute, adjust noise compute for better placement, add toggle for instancing, fix incorrect cell bounds calculation, improve foliage cpu count estimation, improve foliage random positions, and add camera culling to foliage compute.
4 Months Ago
Merge from main
4 Months Ago
Fix and improve foliage placement compute map sampling/decoding, fix incorrect foliage cells being used, clean up and move shader setup for instancing to includes, fix bounds calculations, add function to get foliage counts per cell, implement instance offsets and density handling to foliage placement.