Making a gathering-mask (question for the math boffins)

So I have a nice thing going on in my heightmesh w/regards to bumplies and the like:

I am wondering how I can get to a place where those parts of the slope that would gather water, snow, etc (marked w/red dots) could be isolated as a mask?

In the landscape material I can get to the VertexNormalWS but that is at the resolution of the landscape. Unsure how to extrapolate the height-math such I can get the angle of those pockets and create a depth mask. Currently only running height-math, no basecolor, normals, or whatnot. Everything about where the landscape stuffs are is in the landscape pass, and everything for how the landscape stuffs looks is in the heightmesh path. Height, of course, has to be in the landscape path.

The reason I want to do this in the landscape is I ultimately want to (try) and have them fill-in dynamically, affecting the heightmesh itself. I can already do this off the VertexNormalWS for puddles, w/snow and a wind-mask, but only in really, low-lying, flat areas. On walls, not so much. Since the heightmesh is so much more dense than the landscape, not sure how to get to the density/slopes/angles the heightmesh would be expressing…or if there (likely?) is, I cannot seem to see it.

Anyone savvy? Ideas, direction to point me to?

Could you implement some sort of editor niagara system that could simulate rain, and have the particles traverse the enviroment, and after a certain threshold of not moving enough (found a static pocket) write their position to a render target?

That is something I am currently looking at.

Looking into fluidninja. As well it would be nice if i could integrate well with Ultra Dynamic Weather.

I’m currently on a kick where I can cram as much I can into the heightmesh. Being able to isolate said gathering-spots would be a nice boost to the rain/puddle/snow system I have. Also it would extend well to trails and whatnot.

I know fluidninja does quite well with detail, I might be able to use something there, but for collision, it’s not at the granularity of the heightmesh, but the landscape. I just made it to 5.x and I know there is a landscape option for per-pixel-height but it doesn’t seem to affect collision:
image

Collision always seems to be at the resolution of the landscape and I would be concerned that anything I do based on that would look off.

What I am doing currently is just taking the calculated height, getting the different between it and the fill-height of the water/fluid gets me the water-line and depth-mask but that only really works in the XY. I can’t bend it along the slope, or at least I don’t currently know how…

I suspect DDX/DDY might be required to look at neighboring pixels but that’s when my train of thought runs to Busan, so… :confused: