1,282 Commits over 548 Days - 0.10cph!
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)
prefab adjustments and cleanup
recalculating nrender bounds properly after vertices and indices assignment