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.
Terrain
-
- Posts: 1343
- Joined: Tue Jul 02, 2013 1:49 pm
- Location: Beeston, Nottinghamshire, GB
- Contact:
Re: Terrain
@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.
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.
-
- Posts: 1343
- Joined: Tue Jul 02, 2013 1:49 pm
- Location: Beeston, Nottinghamshire, GB
- Contact:
Re: Terrain
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!
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!
Re: Terrain
It was a screenshot of your Vavatch branch, posted by Geraldine on the Oolite forum, that made me know Pioneer. :DFluffyFreak wrote:That `Vavatch` branch will be etched onto my gravestone :D with the words: "Is it done yet?"
-
- Posts: 1343
- Joined: Tue Jul 02, 2013 1:49 pm
- Location: Beeston, Nottinghamshire, GB
- Contact:
Re: Terrain
@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.
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.
Re: Terrain
Don't worry. I wrote it as a joke, not to push you to do it soon. ;)
-
- Posts: 1343
- Joined: Tue Jul 02, 2013 1:49 pm
- Location: Beeston, Nottinghamshire, GB
- Contact:
Re: Terrain
That's ok, I just thought it deserved an explanation :)
-
- Posts: 1343
- Joined: Tue Jul 02, 2013 1:49 pm
- Location: Beeston, Nottinghamshire, GB
- Contact:
Re: Terrain
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?
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?
Re: Terrain
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.FluffyFreak wrote:This is me brain dumping so probably not very well written but what do people think to the basic idea?
I think that's a good idea, if you feel so inclined :)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?
-
- Posts: 36
- Joined: Tue Jul 02, 2013 1:42 am
Re: Terrain
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/
http://www.bottlenose.demon.co.uk/share/fracplanet/