experiment: LivingPlane - GPU wave-equation height field reacting to a moving sphere (L162)
Standalone EGL/OpenGL 4.3 compute runner (runtime GLSL, no shader compiler needed), ping-pong height/velocity field, damped wave + foundation spring + Gaussian sphere push + optional breathing, vertex-displaced render to PNG. Independent of generation. Intel ADL GT2: ~0.08 ms/step at 512^2, ~0.29 ms/step at 1024^2 (wall-time difference). .gitignore now allows Experiments/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
This commit is contained in:
1 parent
eb47d72258
commit
5b15595e4a
5 files changed
+1247
No files matched your search
@@ -0,0 +1,23 @@
|
||||
# Unreal mapping note
|
||||
|
||||
The prototype stores a two-channel height and vertical-velocity field in a pair of
|
||||
`RG32F` textures. A world-owned Unreal component could keep equivalent transient
|
||||
render graph textures and advance them with a compute pass. It should own simulation
|
||||
time and clear or restore its buffers when the world is recreated.
|
||||
|
||||
The sphere path becomes a world-space interaction event: position, contact radius,
|
||||
and impulse strength are supplied to the compute pass. For multiplayer or deterministic
|
||||
replay, replicate the compact events and simulation tick, or record the resulting field;
|
||||
do not assume that independent GPU floating-point runs will produce byte-identical
|
||||
textures.
|
||||
|
||||
The rendered top surface can remain a render-only displaced mesh. If it must participate
|
||||
in voxel collision or queries, its height must also reach the density evaluator. For a
|
||||
height `h(x,y)`, the plugin's density convention is negative inside solid and positive
|
||||
in air, so the plane's signed density is `z - h(x,y)`. Keep this calculation in metres
|
||||
until the existing voxel/Core boundary converts with the active voxel size (25 cm by
|
||||
default); do not mix metre distances and voxel counts in the wave solver.
|
||||
|
||||
The current sample is an isolated visual field. Wiring this into `AVoxelWorld` would
|
||||
need an explicit owner for simulation lifetime, collision/update cadence, save/load,
|
||||
and the replication policy before it could affect shipped terrain.
|
||||
Reference in new issue
Block a user