Fully Procedural Planet ~ BETA release

Started by cyphyr, August 15, 2009, 10:16:49 AM

Previous topic - Next topic


After far too much tweaking I'm releasing a BETA version of my Fully Procedural Planet system.

It contains:

  • A system for creating Continents (can be turned off for planets that don't have "seas")

  • A system for defining regions within the continents (dose not need continents)

  • A system for adding terrains and landscapes within these regions.

  • North Pole and South Pole with variable size and large scale Fractal Breakup

  • Equatorial Region with variable size and large scale Fractal Breakup

It is designed so that any previously built terrain and shader networks can be simply dropped in with very little modification to the original.

The version released here has 4 distinct regions spread in many places across the entire planet. The regions overlap and merge with each other creating even more varieties of landscape. As long as you follow the network structure there is no reason however why you could not add as many regions as you like. These regions are also warped to create a more "flowing" landscape. They are "warped" by the same seed as the continents so they flow with the continent. In each case where a region is warped it is warped through a distribution shader; by changing the coverage of the distribution shader the amount of warp can by increased or reduced.

You can of course change any parameter you like but given the complexity of the system (I have hidden most of the machinery) I have made the main setup controls easy to get at and use. Everything you need is in (or on) the "+Continent+Landmass" group.

(by the way 1 ... Naming is very important, adding a "+", "-" or a numeral to the beginning of a shader or group name brings it to the top of the right click shader list, makes it easier to find)

Within the "+Continent+Landmass" group (not internal network, we'll get to that later...) there are 9 seed fractals.

1Cont_Warp_Seed_Low:Low Frequency small scale distortions to 4Cont_Seed
2Cont_Warp_Seed_High:Higher Frequency larger scale distortions to 4Cont_Seed
3Land_Seed_(use_value_from_Cont_Seed):Forms the basis of the land distribution constraints (slightly smaller than 4Cont_Seed)
4Cont_Seed:Forms the basis of the Continental Distribution (Single octave Very Large scale)
5Land_Warp_Seed_(use_value_from_Cont_Warp_Seed):Distorts the 3Land_Seed to conform to the warped Cont_Seed
-Region_Seed_1In combination with "-Region_Seed_2"and "-Region_Seed_3" Create Regions 1,2,3, and 4
-Region_Seed_2In combination with "-Region_Seed_1"and "-Region_Seed_3" Create Regions 1,2,3, and 4
-Region_Seed_3In combination with "-Region_Seed_1"and "-Region_Seed_2" Create Regions 1,2,3, and 4
-Region_Control_WarperDistortion for Regions (Can use 5Land_Warp_Seed or other)

Region_Seed_1 (2 & 3) control the distribution of the regions across the planet. Giving them new random seeds and scales will set you up with new regions. Region_Control_Warper is the seed by which all the regions are "warped" .

(by the way 2 ... If you go into the internal network of the "Region_Control" group you can set the warper to something other that Region_Control_Warper, try using the same warp seed as used on your Continents)

Ok so to make a new planet all you need to do is setup new seed fractals in the "+Continent+Landmass" group. Note that in two cases they share the basic seed values from other fractals. Pull your camera back far enough to see your planet. Now turn off all but the SeaSand shader and the Region_1_Surface_Red, Region_2_Surface_Green, Region_3_Surface_Orange and Region_4_Surface_Yellow and set them all to "enable test colour" Now you should be able to see your changes as you make them. Change the fractal seed, the Noise type the scale and clumping, buoyancy etc until you have a "proto" planet you are happy with.

Note where the different coloured test colours are on your planet. These define where your real textures, terrains and displacements go . I'm not going into how you build up your own terrains, many have already done this much better than I could so I'll pass on that for now. There are working terrains within the Region groups but they are nothing special, really they are just there to show it works :) I will say that once you have a terrain your happy with simply open up one of the Region groups and drop in your shader/terrain network and make sure its final output goes into the "Region_?_Output"

I think that it in a nut shell but I'm sure I've left something out. Its by no means perfect, its not really even finished and it is BETA but hopefully it will be a small help to someone.

Please let me know if I've made any glaring errors or horrible mistakes and all C&C are very welcome

Have fun


ps: I'll try to update this thread with new beta versions (named accordingly) as I squash bugs :)

pps: This is by no means a perfect solution and doubtless any use will require some serious tweaking. I think this is an inevitable consequence of the complexity of all the displacement interactions ...

Ryzen 9 5950X OC@4Ghz, 64Gb (TG4 benchmark 4:13)


thanks this is a great job you share here...
I didn't work in any Procedural Planet yet ; and I think it's time to begin with your helpful file of course...
Le peu que je sais, c'est à mon ignorance que je le dois.


adamans rebellis quod iustus nos


This looks awesome!  I will have to quit my job in order to have enough time to explore this!  ;D
-MATRIX2003-      ·DHV·  ....·´¯`*



Are you kidding me?!  This is too much!!!  Thanks doesn't quite do it, but thank you.
So this is Disney World.  Can we live here?


What a work! I will download your file right to see what you did and how.
To say how I will use it seems to me pretentious too complicated moreover the directions for use is in English, but I will test! Finally though I make some it is really large work!


You Sir ...

Are undoubtedly a true gentleman.

Many thanks..



Amazing work Richard, and thanks very much for sharing it. ;D
I just need to tweak that texture a bit more...

Henry Blewer

I bookmarked this thread for when I think I am ready to tackle planets. (or just want to do one) Thanks, it looks set up for easy tweaking.
Forget Tuesday; It's just Monday spelled with a T


Wow I can't believe you got it working...
Must download this and try it out. :D
Hmmm... wonder what this button does....

Shield Wulf

Thanks for your work and sharing this file with us.... Really appreciate it.
To resist the influence of others, knowledge of oneself is of utmost importance.

You are he who directs the sun ship of millions of years.......


Thanks very much for sharing this fine piece !