Generated Planet

Fig 1 - Biomes
After the endless terrain project I worked on I wanted to continue research into generated terrain but needed a little change up. That is were this project comes in, similar in concept but different enough to be interesting. My goal was to incorporate all the important things from terrain generation and also add some more aesthetic additions. The new features planned include biomes, a system for different types of noise, and planet surface structures. The structures have not made it in yet but I might come back for them later.

To start with the biomes are handled by having a struct that keeps track of a set of gradients for each distinct biome. A shader graph then looks at the y axis in relation to the min and max, how high the biome covers to and some extra factors to blend biomes. Even with such a simplistic approach it works quite well, a render of the biomes shaded as a single color can be seen in figure 1.

Fig 2 - Ridge Noise
As far as noise based terrain generation goes I think the layering of multiple noise types made the planet look pretty good. I have started to realize though that no matter how many types of noise are used it inherently won't look as natural as I would like without incorporating more algorithms to generate natural structures. For what it is though this is a pretty good attempt. As of now it uses a more linear noise and a mountain noise which can be seen alone in figure 2.

For the mesh itself it is all very similar to the endless terrain, 6 meshes are used in total each in a different direction. The vertex on each mesh ar calculated to wrap 1/6th of the sphere, that point is passed to a script to generate 3d perlin noise which I did not hand code. That value is then manipulated by a noise filter an layered with any additional noise filters we have applied.

I definitely still have more to learn about noise terrain generation but I think the next project I do in this area is going to be to do with hydraulic erosion so for now this project ends here.

2019 Justin Granger All rights reserved