Terrain

FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Terrain

Post by FluffyFreak »

It's not just Earth like planets, take your favourite activity of scooping jovian class worlds :)
At the moment it's a right royal pain in the bum because the "clouds" are just coloured vertices on the "surface" of the world - and if you get that low then you smack into it and die.
There's no cloud texture to paint onto a separate layer to mark the different layers of the atmosphere which would be a decent first step alone.

I've mostly listed things that you might find on an Earth-like world because they're the most complex so you have to take them into account when designing the system. Everything else you can do by customising or removing parts. So design for Earth and you get the rest if not free then a lot cheaper.

That's the idea anyway. You set the bar high so that if you fall short you've still done well.
Tichy
Posts: 132
Joined: Tue Jul 02, 2013 12:00 pm

Re: Terrain

Post by Tichy »

@NeuralKernel: But Earth-like planets are probably the most popolous (and probably rich) ones, and that's good to know if you like to trade or seek for work. :)

Just a suggestion/request: if you are rewriting the terrain generator, make sure that it could generate the terrain on different kind of "surfaces", not just spheorids. It will be useful for artificial habitats (cilinders, torus, domes...).
/me whispers "Vavatch"... :)

As for clouds, in flightgear there are some very beautyful 3d clouds. Maybe there are some information about how they did them.
Last edited by Tichy on Fri Dec 13, 2013 5:34 pm, edited 1 time in total.
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Terrain

Post by FluffyFreak »

That `Vavatch` branch will be etched onto my gravestone :D with the words: "Is it done yet?"

References for cloud generation and rendering:
http://www.gamedev.net/page/resources/_ ... ting-r2273
http://hal.archives-ouvertes.fr/inria-00402100_v1
http://johnwhigham.blogspot.co.uk/2011/ ... iants.html
http://jwhigham.wordpress.com/2010/05/2 ... the-issue/
http://vterrain.org/Packages/IUE/
Also NevilClavain of XFrontier was kind enough to give my some links and describe his Cloud system.
http://spacesimcentral.com/ssc/topic/25 ... entry40528
PDF = http://ofb.net/~niniane/clouds-jgt.pdf

So... some light bedtime reading!
Tichy
Posts: 132
Joined: Tue Jul 02, 2013 12:00 pm

Re: Terrain

Post by Tichy »

FluffyFreak wrote:That `Vavatch` branch will be etched onto my gravestone :D with the words: "Is it done yet?"
It was a screenshot of your Vavatch branch, posted by Geraldine on the Oolite forum, that made me know Pioneer. :D
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Terrain

Post by FluffyFreak »

@Tichy it's still on my todo list (literally: https://github.com/fluffyfreak/pioneer/issues/2) but it does need a new terrain generation system really.

I could get it better nowadays, for one thing I'm a better coder and also I understand the code base better now. However there's still a lot of things that would need some attention, and then there's getting it approved for inclusion :)

There's no one small part of something like the `Vavatch` branch, it'd just be a mega-commit and quite wide ranging. Something I'd really like to avoid since we're very heavily review-bound on pull requests already.
Tichy
Posts: 132
Joined: Tue Jul 02, 2013 12:00 pm

Re: Terrain

Post by Tichy »

Don't worry. I wrote it as a joke, not to push you to do it soon. ;)
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Terrain

Post by FluffyFreak »

That's ok, I just thought it deserved an explanation :)
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Terrain

Post by FluffyFreak »

I've been thinking about this on and off for a while, about how using noise to generate the landscape is very much a bottom-up approach.
You put together some noise and parameters and you hope that it produces something with the topography that looks sort of like you want.
If you want to do anything with that terrain then things get more complicated because now you have to analyse it to work out what features it has and whether or not they're suitable for what you'd like to use it for.

Some of this is because of the classic article by AmitP (http://www-cs-students.stanford.edu/~am ... eneration/), of which there is an updated demo http://www-cs-students.stanford.edu/~am ... /demo.html.

In that article, well worth taking some time to read by the way, he discusses his goals and reasons but I think the important part for me (/us) is simply the fact that we want to make interesting worlds full of things and full of properties for the world. Where applicable we want seasons, biomes, weather, deserts, rivers, mountains, islands, volcanoes, coastlines, clouds, cities, forests, roads (maybe?), and so on. All of those are hard to do by working upwards from the bottom, from the raw heightmap of the terrain.
Going the bottom-up route requires simulating erosion, flow and flood fills to create rivers and lakes.
Getting nice coastlines means tweaking, tuning and smoothing the terrain at certain heights.
Placing cities means sampling a location to see if it's at an acceptable altitude, without even knowing if that place is near mountains/river/sea then trying to dump a city onto it - give up if anything is wrong and try again at another random location. That's pretty much how Pioneers current city placement works. Haphazard would be a good description.

There's still the same psuedo randomness involved in a top down approach, it's just used differently. There's more feedback and passes to extract information.

By the way I'm typing these things up straight from my notepad where I've been scribbling notes on the bus or whilst making a cup of tea.

What do we want it to create?
A series of maps for heightmap, moisture, heat, roughness/friction, clouds, biomes, etc.
Generate vector/graph data describing it in coarse detail.
Create rivers, coastlines, major highways, craters, volcanoes, cities.

Problems?
Not all worlds need or want all inputs or map types. Moons/Asteroids might airless so no Biome, moisture, clouds etc.
Gas giants are heat, moisture, clouds but no land (that will require a lot of work in Pioneer anyway).
So will it need many version for many world types?
Already have something like that with the many noisey heightmap generators but could it be done using a node graph system like http://lithosphere.codeflow.org/, not exactly like it since it's another noise system but using nodes to control processing steps?

This is me brain dumping so probably not very well written but what do people think to the basic idea?
Do you want me to elaborate a bit more?
Would a sort of story describing the top-down generation of a world help explain better what I'm thinking?
robn
Posts: 302
Joined: Mon Jul 01, 2013 1:11 am
Location: Melbourne, Australia

Re: Terrain

Post by robn »

FluffyFreak wrote:This is me brain dumping so probably not very well written but what do people think to the basic idea?
Its good. Ask for the characteristics you want up front. This is where I intend to take the system generator eventually - you say "I want a single/binary/X star system with a population of X, some habitable planets, etc" and you get something. And then handle realistic distribution of system types outside of that.
Do you want me to elaborate a bit more?
Would a sort of story describing the top-down generation of a world help explain better what I'm thinking?
I think that's a good idea, if you feel so inclined :)
NeuralKernel
Posts: 36
Joined: Tue Jul 02, 2013 1:42 am

Re: Terrain

Post by NeuralKernel »

Anyone looked at FracPlanet? I played around with it a while back, might have some useful ideas or code...
http://www.bottlenose.demon.co.uk/share/fracplanet/
Post Reply