Procedural Planet



Download it here from Google Drive:

It is licenced under Creative Commons Attribution 4.0 International (CC BY 4.0)

You are free to:

  • Share — copy and redistribute the material in any medium or format
  • Adapt — remix, transform, and build upon the material
  • for any purpose, even commercially.

Under the following terms:

I have posted many updates in below posts.

The following is the original post I made and is what I originally did to achieve it. See my final post on this thread to see what it currently looks like and where the above most recent image came from.

Procedural Planet Material

This is the current progress of my attempt at a procedural planet. It still has a lot of work to do.

Currently, the node setup is still a mess, but is readable and can easily be modified to produce other planets.

Node Setup: (Image is large, click to see it all)


UPDATE: I have remade the entire setup to accomodate for a custom nodegroup. You can see it here:

This version of the procedural planet allows for a better terrain generation. It can generate a procedural heightmap, which is then fed into the colours of the terrain as well as a mask for where water should be.

Here is a render of a planet with the new procedural setup:

And here is the node setup (I will later share a larger picture and probably the file as well)

Seems awesome bro! What size planet to you have? And how well can it generate per say 2 or 3 nig continents

Here is the scene:
As you can see, the planet is quite big, however in the image below, you can see that it is the object itself that is scaled up, and not the mesh. The mesh is 2x2x2 blender units in size (which I have set to metres)


Here is a setup with larger continents: (clouds removed)

My node setup also works fine on flat surfaces too! (for all those flat-earthers out there)

UPDATE: The nodegroup now supports snow & ice!

Here you can see one of the polar ice caps! They are customisible, with the ice cover controlled by one of the inputs to the nodegroup, and colour by another. All ice and snow colour can be set.

Also, here is a render of a desert planet, to show the capabilities of the planet generation:

What you have looks really good so far, but I suggest you use some reference images to keep it looking realistic. For example Jupiter, Saturn, Uranus, Neptune,… all have ring-like latitudinal details. Also, your clouds look very thin compared to actual cloud cover on the earth-like planet.

God bless, man!

Looking very good bro!

Here is another update:

The clouds have been improved, and terrain colours fixed up so that the nodes are cleaner and more organised, as well as being more realistic in colours (e.g. snow-capped mountains)

I decided to take a look back at my planet shader. It still works well, but I made some tweaks to get it a bit better.

Currently, it is yet to be imported into Blender 2.8. I haven’t figured out how to set up node groups yet. I also have to get my graphics card to be detected first - for some reason Blender 2.8 cannot detect my GTX 1060. I am going to reinstall the drivers and see if that works.

1 Like

this looks great! how fine is the detail? can you zoom in and see the mountains? now i’m very curious about this project!

I would love to see your current node setup for these materials if possible

The detail is not as fine as it should be at the moment for that distance. I have to debug it to get closer details as some of the noise nodes are not working properly.

You can see in this image that the transition of land to water is still very sharp and detailed, however the actual terrain texture hasn’t got enough patterns in it at this distance. I must also say that the planet is powered completely by node setups, so mountains would still appear flat as there is no displacement, only bump. Also, the clouds look a bit weird and not cloud-like. Maybe that is the weather on this alien planet?

Edit: The reason it looks like that is because the colour hasn’t been made detailed enough. What you see is the limit for the detail.

1 Like

Here is the node setup in Blender 2.79. Haven’t put it into 2.8… yet. As I said before I have to fix up a few things, especially get my graphics card to be detected. For some reason Blender 2.8 will not, so I am going to reinstall the drivers first to see if it works.

Unfortunately it becomes way too pixelated when zooming in to see the actual nodes so no details are visible. If it’s not too much trouble, would it be possible to share the blend file ? I’ll open it in 2.8 and see if it works.

I was planning on sharing the file anyways, but here it is at its current progress:

Procedural Planet Material - unyxium - 1.blend (2.5 MB)


It seems like it’s working just fine. I made this sweet render with no modifications from your original file.

Btw you mentioned you have a GTX 1060. I also have the same gpu and looks like after lowering the render tiles to 64x64 from 256x256 like you had them set up in the file, it lowers the rendering time considerably, from 20 minutes to 7.
Thanks a lot for this node setup, it is amazing !

i see, still, awesome what you’re doing. thank you for sharing and sharing the file!

The node setup that I had became very complicated to work with, and there were many aspects of it that I wanted to improve on. Additionally, with Blender 2.8 released, I wanted to use it instead and get used to the new UI.
I decided to rewrite the procedural planet material taking what I had already learnt to see if I can get a better result. In a much shorter time than before (~3 days), I have now got a much nicer planet! Still needs some changes to it, but majority of it is working.

The clouds haven’t been added in this one, and I have exaggerated the terrain roughness to show it off a bit.
You can see how I have managed to get a much more realistic result with the terrain, and this time, is much more detailed than the previous.
Other things that have been added include,

  • Support for vector inputs (to allow for more unique results with the procedural noise, as well as the ability to rotate and shift it around plus map it to UV rather than the default “Generated” mapping)
  • More detail in the colours which was severely lacking previously which caused closeups to not look nice (see one of the previous posts)
  • Organisation with more node groups to separate the terrain roughness with the terrain colour generation (now the terrain is generated first, and the colours semi-depend on the shape of that terrain)
  • Principled shaders

I hope to get more done with this nodegroup!
My future plans include better mountain snow, the ability to set snow cover, 3d clouds (volumetrics?), and of course, bug fixes.

Awesome material!
I’ve used similar material for my Budwiser Frogs parody:

PH Bob
Minion World