This is a WIP (and is yet still at an early stage of development) Spore like planet generator. It is intended as a demo for a nodal procedural texture generator.
This generator is based on a fork of ricardo mendez's libnoise port in unity and Siccity's Xnode project to provide an editor interface as well as a node's behavior foundation.
The following papers were used : http://www.twandegraaf.nl/Art/Documents/Procedural%20planets%20into%20detail,%20Twan%20de%20Graaf%202012.pdf
http://jacobkeane.co.uk/wp-content/uploads/2014/06/Procedural-Planet-Generation.pdf
Sebastian Lague's videos about procedural landmasses and planets where used for the mesh generation.
To work with this repository you will need :
- My fork of ricardo mendez's libnoise port.
- My repository about node's and graphs that comes on top of Xnode.
- XNode.
- ShaderGraph.
- Unity 2020.1.3.
Since this project is still a work in progress a lot of the code is subject to a deep refactoring in the upcoming commits.
There are two important scenes at the moment :
- PlanetTester It is mainly a quick way to test a planet using only a RGB splatmap (remember to alway tick the texture's "Read/write" checkbox).
- SolarSytemTest It is the main scene that you can try here. It generate a complete set of planets.
It is a Scriptable Object that contains all the data needed for the planet generation such as the libnoise graph used or the ground/water material.
It is a Xnode graph that contain the logic for the texture generation like the amount of generator / combiners / ... and how they combine their output.
Pull requests soon welcome as the code base is still subject to changes.
feel free to email me at [email protected] if you have any question or feedback !
The next commits will contain :
- A completely independant repository for the planet generation tool
- a character controller to move on the planet
- improved shaders (shader graphs)
- a rich environment (with asteroids, clouds and perhaps events happening in the solar system)
- more complex planets (with use of perlin / voronoi / ... blend and other libnoise modules)