For example if my generated levels look roughly like this:
But once in a while I would like to have the "amplitude" rise say 10 times than the rest of the level, so that it would look something like:
That is, once in a while there are deep "trenches" in the level. Now I know that my terrain's Y values are always between for example 200 and 1000 pixels. I there a way for them to mostly be in that range, but once in a while there is a drop to for example 10000 pixels?
scalefac * perlin1D(x/scalefac) + perlin1D(x)
. Also, if only "once in a while" is a requirement you can doscalefac * min(perlin1D(x/scalefac),cutoff) + perlin1D(x)
– PeterT Sep 03 '13 at 00:07min
function is a good idea, as it would just use regular noise until the scaled value was "strong" enough to start using the altered value. Probably a more predictable alternative to applying the changes exponentially. – House Sep 03 '13 at 00:20tilePosition.Y = (float)Math.Pow(Math.Abs(pNoise.GeneratePerlinNoise(noiseXValue)) * scale, Math.Abs(pNoise.GeneratePerlinNoise(noiseXValue * 0.5f))) * someOtherScaling;
Not sure if that's right or by which amount I should scale things. I sometimes get negative values from my perlin noise function, that's why I'm using absolute values. Not sure if that's a problem. – radioprotector Sep 03 '13 at 02:05