Added some quick and dirty colors. Also pushed the quality to 1024×1024, just to see how it would look. Turns out to look amazingly-detailed…too bad it takes about a minute to generate (this is still CPU-side).
When I say quick and dirty, I mean it. Height colormap + perlin dirt map computed per pixel. Ouch. 5 KB pixelshader. Bigger ouch. But that’s the beauty of prototyping! You don’t have to be efficient about it. Took all of 5 minutes to write the shader for this.
The last image is only a 512 grid, for reference. The others are 1024.



5 ResponsesLeave a comment ?
Looks nice ! But one minute for the generation seems pretty long time, specially if you’re using perlin just for detail. How many times do you call your perlin noise function at the generation ?
BTW if you’re planning to use perlin at higher dimensions, you should look simplex noise, it’s an improvement (made by Ken Perlin himself) of perlin noise, and needs a lot less computations, doesn’t present artifacts, etc…But i’m not sure it’s really lot faster in 2D.
Cheers !
Thanks! It’s probably not as fast as it could be, and I’m looking into a simplex implementation as well.
Still, it’s a really high quality noise, and it’s not just for the detail. The noise generates the whole terrain, and if I recall correctly it’s something like 20 octaves. It’s also not just a single call, there are at least 3 separate noise contributions to each cell, which allows me to get a lot of cool shapes, so it’s a really expensive height function any way you slice it.
Whoa 20 octaves, actually one minute for the generation is a pretty good score… But you don’t only use Perlin noise as source noise for this, do you ? Because a I don’t usually get that kind of result by combining octaves of Perlin (I guess it’s called fractionnal brownian noise), or maybe you use an other way to combine octaves together, like ridged multifractal ? In that case I have to look into this, not sure my basic planetary engine will support it in real time though.
Yes, this is just Perlin noise. Of course, I’m doing some interesting transformations and such, but the source is still just Perlin.
To be fair, I’m not sure what the technical term for what I do would be.
It’s slow, but, as my more recent posts show, it’s definitely feasible in a realtime planetary engine. Also – do you have a blog or page? I’m always interested in keeping up with anyone doing planetary stuff
Nope, not yet, but as soon as I find some time, i’ll make a short video to show you my work, nothing revolutionnary or far advanced, but still a nice real time dynamic terrain
Cheers !