It would be nice if in the world DSL we had access to the derivative of the noise function.
This would allow one to distinguish between, say, the eastern shore (to place beaches) and western shore (to place trees) of a Perlin-generated lake.
It is apparently possible to compute the analytical derivative of Perlin noise, which obviates the need to use samples of neighboring coordinates.
Perhaps this would entail extending the hsnoise package with a new typeclass NoiseDerivative a (c.f. Noise a) of which Perlin would be an instance.
Since the ~derivative~ gradient is vector-valued, until/unless the DSL gains support for vector values, perhaps it could be exposed as a direction without a magnitude mapped to [0, 1] representing 0 to 360 degrees.
It would be nice if in the world DSL we had access to the derivative of the noise function. This would allow one to distinguish between, say, the eastern shore (to place beaches) and western shore (to place trees) of a Perlin-generated lake.
It is apparently possible to compute the analytical derivative of Perlin noise, which obviates the need to use samples of neighboring coordinates.
See:
Perhaps this would entail extending the
hsnoise
package with a new typeclassNoiseDerivative a
(c.f.Noise a
) of whichPerlin
would be an instance.Since the ~derivative~ gradient is vector-valued, until/unless the DSL gains support for vector values, perhaps it could be exposed as a direction without a magnitude mapped to
[0, 1]
representing 0 to 360 degrees.