First WIP of scatter object displacement for MinerMancers. This will be for objects I don't want to destroy as you walk over / too near to them.

I'm using grass to test with for now simply because it's the easiest to make look OK - you can just flatten it and it looks fine. It'll get trickier for more substantial objects which will need to bend but not completely flatten - but the base principle is working at least

I'm not 100% sure I like this yet, but I'm trying to avoid having actual bones in these larger mushrooms and keep them in the instanced mesh. I don't want them to go pop like the smaller ones, and if I want them to bend out the way and animate properly I have to switch them for full skeletal meshes, and I really don't wanna. Push-aside is tough to look right with anything more complex than grass, so I give you: marshmallowy mushrooms that go flomp when you walk over them? πŸ€”

Yay, this is much better: big mushrooms getting pushed aside as a whole now using shader position offset. The problem I had with doing this before was the caps folding and crushing because per-vertex the calculation was non-uniform (fine for thin grass, no good for big mushies), but I realised I could use per-instance location data, so all the vertices in an instance can move by the same amount (scaled by height so they bend)

Thanks to @runevision and @bnut for prodding my brain yesterday

@sinbad looks great! Maybe a little elastic ease out so it’s bouncier?
@bnut tricky because this whole thing is pulling from a RTT, so that within the area it's almost free to add more displacers. The displacement itself is a particle system rendered into that RTT which decays out. To customise the easing I'd have to make the particle material decay differently over time which his tricky, I'm already using all the particle channels: RG = direction, B=flatten (important when larger things are directly on top), A = intensity. Maaaybe I could fake A to be signed πŸ€”