934 Commits over 457 Days - 0.09cph!
dropping resolution of grid by roughly 50%, still feels good to carve but gives a big speed and memory improvement
fixed issues with non-square sculptures and increased height of ice sculpture by 25%
initial support for smoothing sculpture through a simple box blur on elements in a sphere
- moved carving and blurring to jobs and running them directly on main thread, roughly 10x faster
- upped carving radius and scaling hit guide properly to show it
increased size of sculpture to roughly 1m cube
free-floating islands are deleted when carving through the ice, can still have separate disconnected pillars as long as they are connected to the base in some way
change filestorage convar to actually have the default behaviour again (uses a null string check instead of trying to use the server identity before its been set)
- renamed to filefolderoverride
cleanup
- separating MarchingCubes and NativeMeshSimplification into separate namespaces and compartmentalizing them better
▍▊▍▇▉▆▌ ▍▄▆▋▌ ▅█ ▅▄▆▊▋▊▉▋ ▄▅ ▊▇▅▇▋▅▄▉ ▄▄▅▋ ▍█▉▉▆▅▍ ▊▌▊▊▌▅▄▌▊▋▄, ▌▆▉▌▋, ▆▅█ ▅▌▅▅▋▄ ▇▇▄'▋ ▅▆▇▇ ▌█▇▍▊▆
cherrypicking aux2 ice_sculpture fixes
added sculptor test inventory
sculpt data is attached to the item with an associated entity when a sculpture is picked up, not just lost and reset
- guide still displays default data at the moment
handling ground destruction properly
restricting placement to constructions
updated crafting ingredients
fix realmed remove on sculpture
added ice sculpture wip icon
- saving IconRender scene as it needs some setup for icon rendering
removed sign/pumpkin panel from sculpture item
added guide mesh for ice sculpture and a tool to generate one
properly disposing native structures in-editor when stopping play in editor
merge from native_mesh_simplification
cleanup and logging procedural mesh stats with a logmeshstats convar
not trying to simplify the mesh to 10% anymore
deferred mesh simplification
- sculpture waits for a period of inactivity to schedule mesh simplification
- mesh simplification is run in a background thread, while the unoptimised mesh is displayed immediately
- handles multiple enqueued simplification requests with job dependencies, preferring wasted background computation over main thread blocking
wrapped in-job profiling in a define, using a ProfilerMarkerStub with matching functions calls decorated with BurstDiscard
re-added early exit on flipped check loop
minor cleanup and crunching meshes down for 20% reduction
reduce vertex lookups in simplification
switched out normal parallel check in simplification with a dirtier cross product based one to remove a couple of normalize calls
- 75% perf improvement
more cleanup, profiling, and some micro optim
cherry pick carve radius change
dropped carve radius for testing
cleanup and correct ref access to ref readonly access where appropriate
set wip material as current ice material
added playground.sculptures test scene with its own filestorage db to store the sculpture data
server handles decoding saved sculptures from disk properly
made server file storage a convar - default behaviour retained
added playground.sculputres.sav TestSave
- grid of some differently carved sculptures for material testing
sculpture serialization
- added FileStorage type for sculpture data (lz4 compressed)
- changed sculpting data flow so changes are made on the server and then retrieved by the client
dropped block scale a little
switched out ddraw hitguide for basic prefab setup and added some lerping to target pos to offset delay from interaction tick rate
showing some visual feedback on where player will chip into the sculpture if they're holding a weapon with a compatible damage type (just ddraw for now)