729 Commits over 334 Days - 0.09cph!
another pass on erosion spaltting
- depeer gouges from erosion
- less intense splatting of gravel generally
- slope threshold to stop splatting onto larger flat sections at the bottom of hills
- cliff avoidance to match previous behaviour
rebalanced buoyancy flow movement scale for boogieboard and kayak so you can actually move away from the beach
merge from broadphase_revert
revert broadphase method to old settings
adjusted splat ignoremask to include ocean and lake (using pre-existing Sand topology mask)
re-balanced erosion splat values to be less intense, included oceanside and lakeside to ignore mask to avoid wiping out beaches with stones
switched splat writing to iterate heightmap delta and write splat with normalized coords
- much better results, but needs jobifying as it's much slower
erosion texture fixes
- use proper splat types
- rebalanced splat values to use exponents
- don't splat monuments
added splatmap writing to the end of the grid-based erosion, re-used approach from old particle-based solution but with re-tuned values
- also rebalanced values again
merge from broadphase_abp
switched to automatic box pruning broadphase
- local testing showed 47% improvement
remove unused watermap array from job
switched initial map prepare job to IJobParallelForBatch to reduce locking with parallel writer (temp alloc list of indices and add to write as batch per-job)
- also other various micro-optim
erosion tuning and fixes
- tweaked values again, bit more prominent
- splitting slope calc into its own job with tiling for better caching
- corrected error with flux calc where water was tending to flow in one direction
erosion adjustments
- fixed evaporation rate being stupidly high
- cache ocean indices on the start and refill the ocean each step, stops it seeping out the world border
- smoothstep sediment adjustment with water depth and threshold to stop erosion from high velocity deep water
- properly adjust water height by sediment adjustments
adjusted debug_erosion data dump to have resolution size in file name and also reference the data vis repo
uiPlayerPreview forces and removes LOD components in line with toggling burstcloth objects through broadcast - stops player preview having BurstControllers disabled due to distance from the player camera
give sleeping player's BC setups a second to rest before pausing the simulation
merge from bc_sleeper_fix
re-tuned horse costume BC setup to be a bit let less noisy
disable bc sim on sleepers, bones reset optionally with ResetBonesOnDisable
more tuning and correcting velocity adjustment
▋▍▆█▅▌ ▍▅▋▊▆▄▋▆ ▅▄▆▉▅▉▇ ▉▋▋ ▅▇▋▉▋ █▋▇▆▇▍█ ▆▊▉▋ ▊▊▆▉▉<->▅▋▌▇▍▅▌▇▉▋ ▅▅█ ▇▋▄█▇▆▌▍ ▌▇▇▊▌▊▄█▌▊▇ ▆▆▍▊▍▅▌ ▇▍▍▊▊ ▋▆▋▆▌▋▆ ▇▍▊▉ ▆▇▉▊▄▉▋▍▋▄▌▍▆▇▄▅
▇▋█▇▇ ▄▅▅▆▊▉▋ ▍█▄▋▊▉▄▊▇▄▇▍▇ ▅▊▉▅▊▊ ▄█▋▄ ▄▇▇▉█▋▉▋▋▌▉▆▋▊ ▅▉▆ ▆▍▄▇█▉▍▅ (▇▉▄▉▄█ ▆▅▇▍█ ▆▄▊▍▋ ▆▉'▄ ▌▍▍▍▍▄▇▋ █▊ ▋▊▌█▇ ▅▆▉▆▋)
▌█▋▅▍▅▊ ▊▄ ▆▋▍▆▍▇▅ ▆▍▄▆▆▋▅▉ ▆▉ ▌▍ ▌▌▆▋▄▋▋▄ ▉▋▇▌▍▆▅ ▊▇▊▌ ▋▉▄█▌ ▉▋▌▄▇▅▌▇▇▊▌ ▆▄▄ ▍█▅▇▊▉▉▅ ▇▍▊█▅▊▊▄█ ▌██▆▆ ▌▊▋ ▇▌▍▉▆█ ▍▊▇▋▇▉ ▆▇ ▍▆ ▇█▍█▌▍ ▆▊ ▆▆▍▌▉ ▋▊▊ ▉▊▆▋▉▊▄ - █▊▌▌ ▌▆▉▅██▅ ▍▋ ▍▆▌ █▉▇ ▇▄▉▅▅▉▄▋▄ ▉▅▅▊ ▊ █▉▋▄▅ ▇█ ▊ ▄█▇▇▌▌▋▆ ▋▌▅▆▇ ▄▍▉ ▋▆▋▉▉▊ ▇▆▉▆▇██▋ ▇▅▌ ▊▍▄▋▋ ▋▆▄▋▋▆▄
▅▆▌█▋ ▆▌█▆ ▄▇▆▋█▇▆▌_▉▌▌▆▇▌▊_█▇▊▊▋_▆▍▅▌▋▌▌_▅▍▋
▊▍▅▆▆ ▇ █▍▅▊▊▉▄ ▍▊▉█▌▋ █▅ ▄▊▆▇▋▋▍ ██▉▌ █▋█▋▆▆▊▅▄▊ ▍▍ ▉ ▄▋▌▋▄█▆▉▅ ▊▉▆ ▌▌▉▉█▉ ▋▄▋▅ ▇ █▌▆▅▆▊▇█▅▋▋ ▆▄-▍▆█▄▇ ▇▆▄▍ ▉█ ▇▄▉▊▅▆▍▌▍ ▇▇▌▋▆▄▍ (▋▅▇▉▅ ▉▉▊▅▅'▋ ▋█▌▆▉▇▌ ▋▅▄▋ ▇▍▋▍▇▊)
removed unnecessary NoAlias attribute
fixes and tuning improvements
- corrected indexing mistakes that caused water to flow generally eastwards and slope angle to just be wrong
- water height threshold to stop ocean eroding seafloor
- sediment depositing uses timestep to help tuning be more consistent
- cleanup
some aggressive optimizations to vectorize better, mostly switching out repeated inline coordinate->index operations with single int2x4 operation - makes a difference with the loop count we're looking at
cherrypicking
115931 from erosion
- topology sampling with radius moved to a burst job, brings GenerateShoreVector on craggy from ~73s to ~5s
grid-based erosion improvements
- much smaller timestep, stops patterns from shoddy integration forming
- working with height in world-space and copying back
- better job dependency handling
- some disabled debug data dumping to help debug the process with python scripts
initial implementation of a grid-based hydraulic erosion system in the jobsystem
- super fast
- super wrong
- needs a lot more parameter/constant tuning to get good results, but it's functioning
fixed editor-only memory leak when assemblies/domain are reloaded and scriptable objects aren't destroyed (but the native memory falls out underneath)
merge from wheel_collider_optim