A hybrid approach for procedural planetsPart III - Ice worlds

The universe is not populated entirely with Earth like planets, so we had better add some more planet types.The first one I want to consider is the ice planet. We can generate an ice planet completly trivially from our existing code by just supplying a new palette texture. Using something like this will give a reasonable result.

Create a new class IcePlanet and just copy the code from WaterPlanet. Change the palette texture and you should get something like this.

Not bad for two minutes work, but we can do better.Take a copy of the water shader and save it as Ice.fx and add it to the project. Don't forget to change the shader in IcePlanet.cs as well.In my mind, ice planets will be smoother than water planets. No running water to erode the land. So we need to smooth out the terrain a little.In the pixel shader we have a power function. Simply change the 0.5 in that to a smaller value, I used 0.25, and the terrain will smooth out.