branchrust_reboot/main/foliage_instancingcancel

27 Commits over 90 Days - 0.01cph!

Yesterday
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
9 Days Ago
Simplify active submesh data structure
11 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.
11 Days Ago
Fix merge issues, increase cell compute radius, add clear buffer step to run separately
12 Days Ago
Merge from main
12 Days Ago
Testing async gpu readback to calculate foliage counts to avoid any consistency issues
14 Days Ago
Increase coarse cull epsilon, and improve debug logs
15 Days Ago
Improve cell placement count gathering performance by using bitmasks instead of collections
19 Days 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
22 Days Ago
Use vertex offsets to handle combined index buffer, fix total argument count to handle binned meshes, fix minimal vertex buffer indexing.
27 Days Ago
Mesh binning preprocess in foliage grid using minimal vertex buffer to reduce draw calls on foliage which share similar meshes.
35 Days Ago
Combine foliage meshes and make use of multiple draw commands to minimise state changes
43 Days Ago
Merge from main
43 Days Ago
Implement new foliage placement function in RefreshAsync update, adjust refresh distance when using instancing, make debug toggle.
47 Days 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.
50 Days Ago
Random instance rotation, pack instance data into halfs, fix hash inconsistency
52 Days 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
56 Days Ago
Merge from main
57 Days Ago
Switch to structs instead of offsets, update debug counters for clarity, add clean up on destroy, give foliage unique seeds to keep consistent
2 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.
2 Months Ago
Merge from main
2 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.
2 Months Ago
Merge from main
2 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.
3 Months Ago
Progress on foliage instancing: noise generation on gpu, fixed compute placement sync issues, wip instance data offsets and usage in foliage shader.
3 Months Ago
Fix foliage grid bounds calculations, basic implementation of terrain maps in compute foliage placement
3 Months Ago
Compute foliage placement prototyping