After working on this project for well over 2 years, I finally finished my Procedural Planet Generator.
The generator was designed to create a large variety of realistic-looking planets in a very short amount of time. It is 100% procedural and the node groups that are connected to generate the planet materials have a large number of different input values that can be used to tune the appearance of the planet material. The generator is meant to be used in blender Cycles because most of the procedural materials are unfortunately too complex for Eevee and will not render.
The node groups can be used to generate all kinds of different planets, including desert, ocean, lava, ice and swamp planets, as well as gas giants and moons. Clouds, atmosphere and ring systems are also included.
I also wrote an add-on that allows for random generation of planet materials. The add-on has a large number of settings that can be used to limit the random generation to the type of planet that you want. The add-on only works when the node groups are present in the blend-file.
Here are some examples of planets generated with the add-on (no fine-tuning after generation):
While the generator was primarily designed to deliver renders of the whole planet as seen from space, moving the camera closer can also give great results:
Using Cycles’ true surface displacement and adaptive subdivision, you can, with some limitations, even position the camera very close to the surface or below the atmosphere and get results like this:
I just bought your plugin and it’s fantastic! Is it possible to export the generated textures? I’d like to use them in Unity for a game I’m making. Thanks!
Yes, you can easily export the textures by baking them to images textures. Because you are not the first person to ask, I made a tutorial video on how to export the procedural planets:
Thanks very much for the addon, it is one of the best procedural planet textures generators I’ve found. The only thing is, I need a good height map and the workaround from the video results in a very low quality height map.
I’ve been digging around in the nodes and tried to expose every height parameter that goes into a bump node. But the amount of nodes in each shader is very high.
Is this something you could add into the Generator?
With low quality do you refer to texture resolution or are you running into other issues?
The resolution of the height map should of course increase if you increase the texture resolution during baking of the normal map. I realize that the workaround of converting the normal map to the height map in external software is not ideal though.
For baking the height map directly in blender, you could combine the Height inputs of all the various Displacement nodes (I think it should be 10 in total) and multiply them each by their individual Scale input and then combine those into a black and white height map that you could then bake as a texture. As my node setup was never intended to be used like that you might however run into some issues combining all the individual maps to get an accurate representation of the displacement that you see in blender. The resulting texture would of course also still be dependent on your texure baking resolution.
Adding this by default into the node setup would probably complicate it too much for such a niche feature. Let me know if the above solution will work for you, maybe I can figure out a node setup that allows direct baking of a height map then.
I’ve done a bunch of tests with different software to create a heightmap from normal maps, but they all blur the results. I’m going to try again to find all the heightmaps! I’ll let you know if it works out!