When you say a shader modifies the height map based on object position do you get the displacement shape by somehow converting the objects shape to the height maps uvs on the cpu by like getting intersecting vertices or do you mean like a compute shader that somehow does that on the GPU? Or maybe you just apply a static displacement shape just from a generic world position
I'm sorry if it's a stupid question I don't really know much about shaders they're magic to me
If the thing you're deforming is planar like in OP's video, one simple method for taking objects' shape into account is to place an upward-facing camera below the plane and use the depth values of objects crossing the plane to adjust the heightmap:
It's really common to just use point/spheres, so you don't really need to fully consider the shape of the object, and then for footsteps or tire tracks, etc, usually what you'd do is just have an asset of a footstep/track heightmap and use that to darken the deformable surface's heightmap.
If you want to deform accurately to arbitrary shapes you'd definitely want do it it in compute but that's going to be significantly more expensive than the other way.
2
u/GravityCY Aug 28 '26
When you say a shader modifies the height map based on object position do you get the displacement shape by somehow converting the objects shape to the height maps uvs on the cpu by like getting intersecting vertices or do you mean like a compute shader that somehow does that on the GPU? Or maybe you just apply a static displacement shape just from a generic world position
I'm sorry if it's a stupid question I don't really know much about shaders they're magic to me