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.
Name | Use |
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_1 | In combination with "-Region_Seed_2"and "-Region_Seed_3" Create Regions 1,2,3, and 4 |
-Region_Seed_2 | In combination with "-Region_Seed_1"and "-Region_Seed_3" Create Regions 1,2,3, and 4 |
-Region_Seed_3 | In combination with "-Region_Seed_1"and "-Region_Seed_2" Create Regions 1,2,3, and 4 |
-Region_Control_Warper | Distortion 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
Richard
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 ...