The last days i worked on the terrain generator. I was not satisfied with the result of my unparameterized height-generator. Because there were no significant continents or mountains. So i decided to implement a node-based height-generator, which will gives me overall control of the generation process.
[/font][/color][color=#000000][font=arial, sans-serif]
Node based systems are easy to explain. You have a source (or n sources) and a destination. Between these two points, there can exist 0..n modifier nodes which are modifying the incoming value. So i am abled to mix two noise-functions for getting a combined height value. Actually there are no restrictions in the number of sources, but of course you just have one output node.
[/font][/color][color=#000000][font=arial, sans-serif]
In the screenshot below i used ridged-multifractal and perlin noise. They are scaled, got an negative offset and are added together in proportion 1 to 3.
[/font][/color][color=#000000][font=arial, sans-serif]
I oriented myself on the blender node-system, which was a great inspiration. So i can also do easy mathematical operations like mix, add, sub, mul, div or trigonometric operations, ...
[/font][/color][color=#000000][font=arial, sans-serif]
The whole power of this system can just be used, if there is a GUI like in blender. Today i tried to combine windows forms with the xna-GraphicsDevice. But unfortunately i have a design-lack on my planet-class, so i cannot use them in this windows form (yet). I will try to find a solution for that. Actually I'll need an xna-internal GUI, but thats very cumbersome and eats a lot of time. Because of finalizing my vacation tomorrow, i cannot really spend much time on that now. But i have to, because i need it.
[/font][/color][color=#000000][font=arial, sans-serif]
The last point of interesting is the simple terrain-colorizer. Its just a simple pixelshader which colorizes the surface in depency of the height. If there is a GUI for the node-stuff, i will also parameterize the colors and tresholds. Planets with sand, grass, mountains are quite boring.
[/font][/color][color=#000000][font=arial, sans-serif]
ToDos:
[/font][/color][color=#000000][font=arial, sans-serif]
- Implementing atmospheric scattering
[/font][/color][color=#000000][font=arial, sans-serif]
- Implementing frustum-dependent LoD (my current algorithm is slow and doesnt work quite well)
[/font][/color][color=#000000][font=arial, sans-serif][/font][/color]