I've finally made some time to write a little bit about how we wrapped up the Planet Generator in our Projects 1 course at the CDM at the end of 2016. Thomas Petitjean, Krishna Sriram, Yang Zhang, Marco Cermusoni, and myself put a ton of work into this project, and our final prototype was well reviewed by our peers and faculty. Feel free to shoot me an e-mail if you'd like to try the application :)
This is a bake of our planet generator so that we could showcase the potential of it through Sketchfab. Unfortunately Sketchfab is not able to render procedural textures yet, so a static bake will have to do for now.
The art style of our application was created to satisfy middle school kids, so we felt that a stylized realism was the best approach.
This is the master graph for the Substance that drives our procedural generator in Unity. Creating this graph was my main task for the semester. With it you can change many parameters that allow you to alter the surface of your planet. From a icy wastelands, to hot lava worlds, to Earth-like planets, the generator can dynamically change the planet based on the physical variables in Unity of the planet, and mathematical model we created to correspond with this generator.
For instance, if you move your planet to close to the sun, it will turn into a hot lava world. If you move it too far away, it gradually transforms into an icy wasteland. Our application focused on educating middle school students between the ages of 10-13 about the goldilocks zone, and the fine balance of what makes life on Earth possible.
In this Substance Graph in particular, I learned a lot about optimization. Because we needed the generator to perform well on relatively low-end computers, we needed it to be quick. To optimize Substance graphs, one key trick is to re-use the same noise nodes as many times as you can. In the bottom left of the Master graph you can see that I isolated 5 noise nodes that we used innumerable times through each section of the graph. This vastly improved the performance of the generator. When using Uniform Colour nodes, you can also set them to Absolute in terms of their hierarchy status, to reduce their draw size to 16*16 pixels. Because they are one solid colour, it is unnecessary to have a lot of resolution. Make sure that any subsequent node is set to "Relative to Parent," so that the 16*16 resolution is not propegated down to your output.