Moisture is basically humidity.
Yeah I simulate that with the low frequency, so it does increase over time locally (by scrolling), somehow, when the noise gradient rise and fall in that point, it’s low frequency so that the surface covered is big enough. INstead of scrolling you can sample a slice of a 3D noise, but since you are not well verse in custom perlin, and it seem unity’s is 2D, scrolling is the best approximation, by combining multiple layer here, you could have more complex pattern too.
Basically what the various map does is increasing the likelihood of that, based on circumstance (the boost). Such as more rain in altitude, more rain in a mountain side, etc … you can add as many layer and stuff you want, for example have a map where certain part are always raining (for mood) OR mopre likely to rain by having more humidity, like forest or tropical forest map, have more region where it’s less likely to rain like desert, industrial landscape, etc …
For example the wind map is a way to have more cloud in that aggregate around mountain peak, so that it rain more on one side than another. You can just use the altitude to do the same (which I do so that only high altitude create cloud), but it won’t have a side, top will always have a cloud halo.
I use a separate cloud layer to have visual, basically the humidity low frequency dictate where cloud density are, but the cloud tell you where the actual cloud are, and only the cloud can rain. But it’s a humidity map too, it rain when cloud are dense enough.
------------------------------more explanation------------------------------------------------------
The derivative is simply doing a pass that sample the 8 neighbors of a points and compute the direction of the slope (just create vector to each point from the center, then average them, flat part will have a 0 length vector).
Dotproduct is function in
https://docs.unity3d.com/ScriptReference/Vector3.Dot.html
or
https://docs.unity3d.com/ScriptReference/Vector2.Dot.html
It takes two vectors (that you should normalized) and return a single number that tells you how much in the same direction they are (1 if they are in the same direction, 0 is they are perpendicular, -1 if opposite, and all in between)
https://docs.unity3d.com/ScriptReference/Vector2-normalized.html
We are looking for wind, of a certain altitude that goes against the slope, so we need negative number, we discard the positive (if positive then 0) and we take the absolute value (abs(result)) to turn that into a data in 0-1 range to mix with other data and noise.
Wind map are basically just two noise, one encoding the X basis, and the other the Y, you take bothe value as input for a vector, then normalized it. You can scroll the two noise independently to have random wind pattern.