perf(deluge): render the SPH water as one GPU-scattered droplet pool
The 3968 per-particle Model entities are replaced by a single runtime mesh
of ico-1 droplet shells whose vertices a fifth compute pass (psph_scatter)
writes every frame straight from the particle buffer, via the render vertex
buffer bound to the pass at @vertex:<mesh guid>. The GPU->CPU position
readback, the per-frame batchWrite of 3968 transforms, and the per-entity
render preparation all disappear with the entities; the four sim passes and
the water material are unchanged.
SPH window (158-193s), release build: avg frame 21.0 -> 16.5 ms (now
vsync-bound), p90 25.9 -> 22.3 ms, frames over 24 ms 506 -> 11, part-entry
build frame 4461 -> under 527 ms. Scene re-save migrates the three authored
entities' synced flags.
---
fix(deluge): assemble the @vertex buffer prefix at runtime so the publish literal scan doesn't read it as an asset reference