1,820 Commits over 852 Days - 0.09cph!
short test to force the extremes of DecorComponents to ensure the bounds is correct with future changes
- if this broke silently rocks would just fail to spawn or spawn where they shouldn't
use expanded decor component bounds to early out terrain filters cheaply in decor placement - saves 12s in coastal rocks, barely saves elsewhere
- can only do this because we have a cheaper hierarchal query for topology of an area now
Process cliff uniform placement validity in parallel - takes another 29s off, still matching results before optims
- pivot filters are tested in large batches of all candidates and re-tested if dirtied
- per-candidate orientation checks are done in parallel for passing candidates
made costal cliffs take 2s instead of 34s by adding caching to the recursive search (maxed around 400KB memory at max)
- falls back to recursive if the cache misses
improved monument placement - 13s faster
- split tier check out to early exit as a first check and water check to run at the end
- let distance checks exit early on the first monument it finds that's too close, reject behaviour is the same
replaced topology query job with direct call into burst compiled code via blittable UnsafeList<T>, the tiny job runbyref overhead adds up with the amount of queries we make
- shaves another 22s off, which is ridiculous
merge from erosion_optim - ~22s faster on a 4000 map, overall savings now ~67s or ~18%
removed repeated check of 0 orientation on cliff placement where we'd check it on both sign flips across X and Z - cuts an additional 19.1s with matching results
hierarchal topology map - saved ~19.5s locally on a 4k procgen, identical results
▉ ▉▌▉▋▉▊▊▍▋ ▄▌▍▅▌▉▊▇ ▇▋▆█▆ ▊▊▍▊▄▇▍ █▉ ▇▉▇▌▆ ▊▍▅▇▇▄█▋▋ ▅▊▄ ▆▋▉▇ ▉▇▅ ▆▆▍▌ ▌▉▆ ▍▆ ▉█▇▌ ▍▇▍▇▅▇▍█ ▌▌▍▋▄▄▄▆▍▅ ▋▆▆ ▊▄▋▅▇▌▄ ▄▅ ▆▆▋▌ ▄▍▋ ▅ ▅▅▇▋▇ ▇▄ ▄▌▉ ▅▋▇█▋▅▊▇ ▇▅▆▌▉▌▇▊▊▊ ▄▆▍▅█▋▍ ▉▌ ▉ ▆▊▋ ▄█▇▍▆▌ ▋█▊▅ ▋▊▉▍▇▊ ▉▇▋▋▇▍▊▉ ▄▇▊█▅ ▇▅▄▋█▅▇ ▆▍▄▋▌▅█▄▅ ▉▌▌ ▊▍▆ ▅█▍█▅▌▋ ▌▍▆▆ ▇▇▄▊▌ ▅▋▍ █▊▆▍▌▅ ▉▉█▉█ ▋▌▆▄ ▍▉▋▍▄▉▉▅ ▅▉▊▌ ▅▍█▊▊▅▊ ▉▊ ▌█▄▇▉▆▇▆ ███▄▆▄ ▄▅▆▊ █▌▉▅█
handling deformation with building
- deployables have configurable tolerance of error between current deformation and original height
- foundations can cover small, but always place casted against the original height of the terrain, disallowed over deep carves
merge from sprint_shoot_anim_fix
sprint modifier subsystem uses networked attack signals to disable sprint anim instead of local-only data
big gross protection overlay debug renderfeature in RRP, signifantly nicer than running around with ddraw
protection setup on rocks and foundations
deformation protection
- pre-baked static protection from topology and spawned rocks
- entity-provided protection from foundations
pefab explosive setup on some weapons
explosive crater definition support, reworked shapes to apply in 3D space with respect to blocking objects
merge from hazmat_trophy_fixes
added missing BC component to froniter and pilot hazmats, lost when they were rerigged
foliage deformation experimental modes
0: invalidate cell and re-place foliage
1: acts as foliage displacement with convar for displacement/depth mod
2: acts as a mask to remove foliage from deformed areas
client handling terrain deformations in the clipmap render
- writes a mask for deformed terrain and uses it to switch between procedural normals and pre-baked
- culling bounds also extends down to cover max deformation on each cell
- foliage grid invalidates per-cell for deformation, probably should mask it out or act as displacement though
baseline of terrain deformation, tile-based serialization (only for areas with active changes) some concept of protection and healing over time
manually reverted
161177 and tied it to a poolable.cachestatesoninit convar for further testing, stops the jungle fps drop
cleaned up test scene and meshes
support for burstcloth chains to be fixed at any arbitrary bone, allowing connections at either end
inlined the work of some jobs to stress the job system less, takes another 5s off the time
- water evap/accumulate inlined
- slope calculation inlined
reworked largest erosion job to use an inlined SoA view
- reinterpret float array as a float4 in the loop, this lets you to get fully laned SIMD auto-vectorization without needing intrinsics
original 47s erosion down to 29s with matching results
fixed empty procmap scene
converted all jobs to batch by rows instead of pulling XY coordinates out of the flat array's index, fixed some other minor issues
4500 map erosion time down from 47s to 39s
disabled mip-streaming on sculpture textures, there's no uv coords on the sculptures so the unity path for it exits early anyway
properly handle dialog closing on player death and sculpture destruction
salting the SculptFormat data with the entity ID to avoid collision with default data
Gave sculptures bullet penetration again, but on the right branch
given bullet penetration to sculptures, takes 20% off the damage
added drag handling to the expanded image so you can inspect the sculptures easier
improved admin panel to have continuous click drag instead of buttons, also uses proper material
pull specific pass out of material instead of drawing all passes
small optim for better cache friendliness
first pass on an explicit smoothing tool