Sign in to follow this  
  • entries
    2
  • comment
    1
  • views
    2710

Redesigning the height generator

Sign in to follow this  
necro1895

885 views

[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]
Sign in to follow this  


1 Comment


Recommended Comments

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now