Redesigning the height generator

posted in necros devblog
Published July 08, 2012
Advertisement
[color=#000000][font=arial, sans-serif]

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]

1aaa.png

[/font][/color]
1 likes 1 comments

Comments

HabitueGames
Always found interest in planetary generation, looks good so far. Be great to see more of this
July 12, 2012 02:41 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement