Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 2 3 [4] 5 6 7

Author Topic: The World is Just Awesome - Advanced Terrain Generation Thread  (Read 21595 times)

Normandy

  • Bay Watcher
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #45 on: February 11, 2011, 06:37:02 pm »

In hindsight, you're probably right about that. I'm really having a difficult time wrapping my head around plate densities. As much as I love geophysics, it can be awfully vague at times.

As far as I've read, the mechanics are as such: When the denser basaltic oceanic plates subduct, partial melting (it's called the something-or-other cycle, I forgot what it was called. Anybody with a degree in geology remember its name?) causes the more felsic magma to erupt to the surface of the overriding (i.e. continental) plate. But then how does the entire continental plate come to be covered in granite? Or is that just a high school abstraction?

On the one hand, getting plate tectonics right would allow for an immense amount of geology that simply can't be placed through an RNG. For example, the Grand Canyon was formed by crustal uplift; when the crust was uplifted, the meandering Columbia River then downcut to form a huge canyon, while maintaining its canyon-like shape. This is a personal project, so I don't really feel compelled to meet any release dates or schedules, and I wouldn't be satisfied with anything less. On the other hand, I may simply not have enough knowledge of geology, chemistry, and physics to create even a simplistic working model.

Hrm...
Logged

Siquo

  • Bay Watcher
  • Procedurally generated
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #46 on: February 11, 2011, 07:19:44 pm »

From my current read (The Earth Machine - Mathez & Webster, and the best book on the subject I found so far in our public library) and what I read before: Granite is like a primal "mixture", that gets diversified later, and relatively light, forming the continents. Gabbro and basalt are more mafic (more magnesium and iron) and heavier, and can be found more often on the oceanic plates. So, in order: Primary crust: Gabbro, secondary: Basalt, and tertiary (through the subduction-refining cycle with a name) the Granite. All continents have mostly granite because that's what actually makes continents :) Without granite there would be no continents.
The original layers of gabbro and basalt that would have covered the entire earth has long since eroded...

Gabbro does appear in continents however (the Alps, for instance), usually pushed up by volcanism or mountainranges, but is a lot more rare.


Edit: Disclaimer: I am not a geologist!

Edit 2: Here, simulate this: http://www.youtube.com/watch?v=QDqskltCixA the funny dance starts at 1:20....
« Last Edit: February 11, 2011, 07:25:32 pm by Siquo »
Logged

This one thread is mine. MIIIIINE!!! And it will remain a happy, friendly, encouraging place, whether you lot like it or not. 
will rena,eme sique to sique sxds-- siquo if sucessufil
(cant spel siqou a. every speling looks wroing (hate this))

malimbar04

  • Bay Watcher
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #47 on: February 12, 2011, 12:51:43 am »

<snip>
Edit 2: Here, simulate this: http://www.youtube.com/watch?v=QDqskltCixA the funny dance starts at 1:20....

Awesome Video.

As far as I've read, the mechanics are as such: When the denser basaltic oceanic plates subduct, partial melting (it's called the something-or-other cycle, I forgot what it was called. Anybody with a degree in geology remember its name?) causes the more felsic magma to erupt to the surface of the overriding (i.e. continental) plate. But then how does the entire continental plate come to be covered in granite? Or is that just a high school abstraction?
google search lead me to the term "fractional crystallization". Found here: http://answers.yahoo.com/question/index?qid=20070330134828AAIh4nr

other sites:
http://en.wikipedia.org/wiki/Fractional_crystallization_(geology)
http://jersey.uoregon.edu/~mstrick/AskGeoMan/geoQuerry11.html

As I read, it's not much different than hot sugar water. Hot water can absorb more sugar than cold water, so as highly-sugary water cools, sugar drops out of the solution and forms crystals. The only difference is that there are a LOT of different minerals that drop out of the magma solution under different conditions. Some types drop out first, then other types, and then other types, resulting in a different end-solution altogether.

Quote
On the one hand, getting plate tectonics right would allow for an immense amount of geology that simply can't be placed through an RNG. For example, the Grand Canyon was formed by crustal uplift; when the crust was uplifted, the meandering Columbia River then downcut to form a huge canyon, while maintaining its canyon-like shape. This is a personal project, so I don't really feel compelled to meet any release dates or schedules, and I wouldn't be satisfied with anything less. On the other hand, I may simply not have enough knowledge of geology, chemistry, and physics to create even a simplistic working model.

interesting, and lead me to this: http://www.bobspixels.com/kaibab.org/geology/gc_geol.htm

And by the way, no one knows enough about geology, chemistry, and physics to make decent working models. If they achieve anything noteworthy, they do something not far off of what you / we are doing. They do research and figure it out as they go along.
Logged
No! No! I will not massacre my children. Instead, I'll make them corpulent on crappy mass-produced quarry bush biscuits and questionably grown mushroom alcohol, and then send them into the military when they turn 12...

Siquo

  • Bay Watcher
  • Procedurally generated
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #48 on: February 12, 2011, 05:32:08 am »

google search lead me to the term "fractional crystallization". Found here: http://answers.yahoo.com/question/index?qid=20070330134828AAIh4nr
I don't think that's it. That's about how magma diversifies during cooling, here it's about diversification (splitting the minerals) during melting.
My book says it's also due to the water that this happens only when subducting (emphasis mine):
Quote
The process of formation of continental crust begins in the mantle above the subduction zones, which is where oceanic crust and the top of the mantle dive into the mantle. As the subducted rocks descend and heat up, water and other compounds that readily form fluids, along with some silicate melt, are expelled. The fluids and silicate melt rise to penetrate and mix with the overlying mantle, where they cause more extensive melting because water dramatically lowers the temperature at which rocks begin to melt.
And a pic:


As you can see in the picture from left to right (which is kinda chronological): magma becomes oceanic plate, oceanic plate remelts to become continental crust, and continental crusts can collide into mountains, giving you two types of mountain ranges. New continents can form by one oceanic plate subducting beneath another. The Rockies belong to the second category, I believe.
Logged

This one thread is mine. MIIIIINE!!! And it will remain a happy, friendly, encouraging place, whether you lot like it or not. 
will rena,eme sique to sique sxds-- siquo if sucessufil
(cant spel siqou a. every speling looks wroing (hate this))

malimbar04

  • Bay Watcher
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #49 on: February 12, 2011, 11:58:12 am »

<snip>

Huh... that is really awesome.

Doing more reading and found another website to explain the origin of granite:
http://geology.about.com/od/more_igrocks/a/granite.htm

The kicker:
Continents are relatively hot because they contain most of the planet's uranium and potassium, which heat up their surroundings through radioactive decay. Anywhere that the crust is thickened tends to get hot inside (for instance in the Tibetan Plateau).

And the processes of plate tectonics, mainly subduction, can cause basaltic magmas to rise underneath the continents. In addition to heat, these magmas release CO2 and water, which helps rocks of all kinds melt at lower temperatures. It is thought that large amounts of basaltic magma can be plastered to the bottom of a continent in a process called underplating. With the slow release of heat and fluids, a large amount of continental crust could turn to granite at the same time.

Underplating in wikipedia http://en.wikipedia.org/wiki/Underplating
Spoiler (click to show/hide)
It's not the word you were looking for, but I think it solves the problem of why it forms so much of the crust. Heat and fluids from the underplate turn crust into granite.

Note you only get granite on continents.
Logged
No! No! I will not massacre my children. Instead, I'll make them corpulent on crappy mass-produced quarry bush biscuits and questionably grown mushroom alcohol, and then send them into the military when they turn 12...

Normandy

  • Bay Watcher
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #50 on: February 12, 2011, 06:45:40 pm »

Haha, thanks for the research. There are often incomplete and conflicting terms, definitions, and theories in geology (moreso then even biology). malimbar04 isn't wrong when he says fractional crystalization, that's one part of the whole cycle. I'm just sure that if I could remember the name, then I could google it and get more information on it. Ill have some free time week from now for winter recess, so I'll definitely get a lot of work one then.

I'm probably going to make an isolated simulation to see precisely how any sort of interactions between magmas would work, since trying to do that right off the bat is probably project suicide. I might just be thinking in too small of a timescale; the fact that continental plates are mainly granitic may have resulted from geologic processes acting over billions of years, so it may not require one "end-all" reason as to why they're so granitic. It's not like there's much we can do to confirm/disprove this.
Logged

Captain Mayday

  • Bay Watcher
  • A Special Kind of Terrible
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #51 on: March 04, 2011, 01:06:51 pm »

Interested on the status of this. How's it coming along?
Logged
Why not join us on IRC? irc.newnet.net #bay12games

Normandy

  • Bay Watcher
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #52 on: March 04, 2011, 09:07:33 pm »

Well, as it turns out, my vacation was spent away from home and away from my computer and textbooks, probably for the better. I'm just biding my time currently, thinking about my next few steps.

I've been grappling with fluid mechanics in the meanwhile, since it will be necessary to have at least a rudimentary understanding of them to proceed. Given that I've only recently finished learning single-variable calculus (damn you high school education system), it's understandably not going all too well. If anyone could point me to an online resource that gives a good basic overview of how fluid mechanics words, that'd be helpful =D.
Logged

breadbocks

  • Bay Watcher
  • A manacled Mentlegen. (ಠ_ృ)
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #53 on: March 11, 2011, 01:36:28 am »

Now to add another curve ball. If you want to do this, do it DF style.

You need more Coriolis Effect. Make it happen.
Logged
Clearly, cakes are the next form of human evolution.

Erior

  • Escaped Lunatic
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #54 on: June 17, 2011, 09:42:50 am »

I was googling for a terrain generator including tectonics and I found this post. I just had to register...  ;D
So, first of all, hi to you all folks.

Back to serious things:
I noticed that the project (which is of great interest) was quite active until not too long ago and then presumably something happened. If I can throw my 2 cents in, I think Normandy slowly lowered his interest because of huge development problems. I'm completely wrong? Don't think so... (of course there are so many things to be done in life that a terrain generator should not be a priority, but if the project advances it's easier to keep working on it)

Now, let me be clear... I'm absolutely no developer (even if I try something sometimes), but I had some geology courses at the university and, exactly ad many of you, I am never satisfied with the results of normal terrain generators. This project could be the holy graal for many people, but I think to started too far away.

Some suggestions:
- skip the mantle convection and magma dynamics... those are way too complicated and don't bring much
- concentrate on the evolution of the plates. In a first phase I think it will be good to have the surface divided into plates with a voronoi+some noise, then assign to each plate contact one of the three main movements: divergent; convergent or transform (sliding). This could be more tricky than expected. One here, the time dimension must be implemented. A point on a plate must be able to start at the divergent boundary, move towards a convergent boundary and then stop.
- If you acheve this, you're good to implement continental and oceanic crust and plate interactions...

I know it sounds as a lot of blabla and nothing more, but I would be glad to help in any way you can think of. Just tell me  :)

Cheers

P.S. mapping on a plane is good, but the earth is a shpere... a true shperical map generator would be more than awesome!

Logged

Normandy

  • Bay Watcher
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #55 on: June 17, 2011, 10:55:52 am »

Haha, that's interesting, I wasn't expecting this to end up as a top google search. Goes to tell you something, eh?

I actually hit two major snags, both of which I was woefully underequipped to solve. The first one was how to actually make a plate move as a unified unit. I wanted to try and keep all simulations local - that is, there would be no "global" interactions (such as assigning an entire plate contact a type of movement, as you suggest); this would greatly simplify the programming of interactions on my part (i.e. all interactions would be emergent), but brings in issues with actually getting the plate to move together as a unified unit. Any change in plate speed would need to "quickly" propagate throughout the rest of the plate, otherwise the plates would be less like a tectonic plate and more like soft clay. Propagate them too fast, and your simulation slows to a crawl (it's basically the complexity as doing a gaussian blur). Propagate them too slow, and your plates will have a disturbing tendency to make strange oscillatory motions.

The second major snag was that I lack a thorough enough understanding of continuum mechanics. I was having difficulty figuring how the relative velocity, mass, density, elasticity, etc... all come together to actually give rise to deformation in an area of a plate.
Logged

Erior

  • Escaped Lunatic
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #56 on: June 19, 2011, 06:24:26 am »

It wasen't really a top result but quite high nevertheless  ;)

As for your problems, please excuse me if I'm saying something programming-wise a little stupid but...
- can't you assign to each pixel in a given plate the movement vector of the plate itself? If the plate changes it vector, it is automatically assigned to every pixel in that plate.
- simulating density, elasticity and everything would be great, but maybe too complicated. Could you not simplify things a little? something like assigning to each pixel a certain amount of "crust" on it. This amount would be moved around by the movement vector of the plate and eventually reach a plate boundary. Here the crust amount could stack (in a first phase I would not implement tectonic carriages, so a crust element would not be allowed to shift from one plate to another) and a part of it be washed away (displaced again) by erosion. This will create mountain ranges at collision boundaries, which is exactly what you (we) are looking at.

Again, I'll be glad to help if I could. Just send a word :)

Cheers!
Logged

Normandy

  • Bay Watcher
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #57 on: June 19, 2011, 10:32:20 am »

I'm kind of iffy about writing any sort of algorithm that detects plates: say a plate is beginning to rift. What happens then? I could just not have plates rifting, but then the system of stresses and strains which I intended to drive mountain-building and rifting would end up being pretty useless.

As for the other part, simply stacking the values of pixels on top of one another is not enough to fully describe what is happening. Say two plates of two different masses are traveling towards each other with constant velocity, propelled by a constant force. How high is the mountain that they raise? How much force does the mountain raising put back on the plates? And in turn, how much does that slow down the plates?
Logged

malimbar04

  • Bay Watcher
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #58 on: June 19, 2011, 11:15:41 pm »

"terrain generator using tectonics" does indeed give a top google search right now. Holy cow, I suddenly feel like I'm part of something special. of course "part of something" translates to "a forum I posted in a few times, with who knows what results".

Quote
If anyone could point me to an online resource that gives a good basic overview of how fluid mechanics words
http://en.wikipedia.org/wiki/Computational_fluid_dynamics
http://cowboyprogramming.com/2008/04/01/practical-fluid-mechanics/
the second one looks better at first glance.
Quote
I wanted to try and keep all simulations local - that is, there would be no "global" interactions (such as assigning an entire plate contact a type of movement, as you suggest); this would greatly simplify the programming of interactions on my part (i.e. all interactions would be emergent), but brings in issues with actually getting the plate to move together as a unified unit. Any change in plate speed would need to "quickly" propagate throughout the rest of the plate, otherwise the plates would be less like a tectonic plate and more like soft clay. Propagate them too fast, and your simulation slows to a crawl (it's basically the complexity as doing a gaussian blur). Propagate them too slow, and your plates will have a disturbing tendency to make strange oscillatory motions.
I am beyond my capabilities, but I can use google to find things that might be relevant. As I see it, there are only specific times you need to worry about plates changing shape/size: plate divergence (with a plume of magma under an existing plate), and subduction. If the plume of magma happens to start a plate divergence, it would effectively crack a plate in two, correct? Then we could form a crack, make two plates with newly calculated velocities, and everything is happy. The second link is a google book, and I didn't read it all. However, it does seem extremely relevant and highly technical. Maybe you could find a better answer there if you want to read (or someone else does).

http://www.moorlandschool.co.uk/earth/tectonic.htm
http://books.google.com/books?id=uRE7JXwyxHIC&pg=PA337&lpg=PA337&dq=what+holds+tectonic+plates+together&source=bl&ots=hN190rqSt3&sig=c_lrXQYKiiydFa6-nyp75rDWmc4&hl=en&ei=grv-TZ64J4bY0QHolPG5Aw&sa=X&oi=book_result&ct=result&resnum=4&ved=0CDMQ6AEwAw#v=onepage&q&f=false

Quote
The second major snag was that I lack a thorough enough understanding of continuum mechanics. I was having difficulty figuring how the relative velocity, mass, density, elasticity, etc... all come together to actually give rise to deformation in an area of a plate.
http://en.wikipedia.org/wiki/Continuum_mechanics#Kinematics:_deformation_and_motion
http://en.wikipedia.org/wiki/Stress_%28physics%29
http://en.wikipedia.org/wiki/Deformation_%28mechanics%29
Unfortunately it says "One type of irreversible deformation is plastic deformation, which occurs in material bodies after stresses have attained a certain threshold value known as the elastic limit or yield stress, and are the result of slip, or dislocation mechanisms at the atomic level". I assume all deformations in tectonic plates are plastic, so... yields and such might have to be determined separately for each rock? That might seem extreme though, and make the program far slower with lots of effort.
http://en.wikipedia.org/wiki/Plastic_deformation_in_solids

I wonder (for those more knowledgable in physics, math, or programming), if it's easier to simply add a bit of fractal-ish deformation when certain things happen. The code would be less elegant, but I'd imagine far more efficient. As a magma plume of certain heat comes under a tectonic plate, perhaps we would create a fracture line, recalculate velocity vectors, and create new plate (extend both plates while they move, ala the game worms) while the plume still has sufficient heat to fuel the creation. During a sublimation, the wrinkles would be created not by physics calculations, but by detecting collision of above-water continents and adding a random fractalish texture to the upper plate. I'm rambling now, and barely coherent to myself, so I'll stop there for someone else to finish/fix my thoughts.
Logged
No! No! I will not massacre my children. Instead, I'll make them corpulent on crappy mass-produced quarry bush biscuits and questionably grown mushroom alcohol, and then send them into the military when they turn 12...

Erior

  • Escaped Lunatic
    • View Profile
Re: Project: The World is Just Awesome - Advanced Terrain Generator
« Reply #59 on: June 20, 2011, 01:44:40 am »

I'm kind of iffy about writing any sort of algorithm that detects plates: say a plate is beginning to rift. What happens then? I could just not have plates rifting, but then the system of stresses and strains which I intended to drive mountain-building and rifting would end up being pretty useless.

You can if you implement in each iteration a very sligth probability of a new divergent boundary to be created inside a plate. But you are perfectly right, that's an incredible simplification of the reality.

As for the other part, simply stacking the values of pixels on top of one another is not enough to fully describe what is happening. Say two plates of two different masses are traveling towards each other with constant velocity, propelled by a constant force. How high is the mountain that they raise? How much force does the mountain raising put back on the plates? And in turn, how much does that slow down the plates?

Again, you're right. It does not fully describes the processes involved in building/destroying mountain ranges. But that's a model and as every model (even the most sophisticated ones) it's a simplification of the reality. You have to find a compromise between your lust of recreating the processes to the best, or search for a simpler, but better doable, model. In addition, stacking mass is not that bad of a model for orogenesis. The mountain ranges will simply be as high as the mass stacked minus the erosion (minus the isostatic adjustment if you want to implement it), driven by the relative velocity of the plates for each iteration step of the model. Clear, no effects on the plates there, but well...

I fear that you could read my posts as only critique. That's absolutely not the point, believe me. I have a high opinion of your effort (which, to be clear, I'm absolutely unable to follow because of lack of programming skills) but I fear you are thinking too big/complicated. I personally would prefer a less exact model which works and is published than a wonderful, all-comprehensive, over-the-top model which is too complicated to be really doable and will never see the day.
Am I too simplistic? Maybe  :)
But you have my support for the complicated project too, if I can help. Keep up the good work!
Cheers
Logged
Pages: 1 2 3 [4] 5 6 7