Generic Earth?

Started by Rob Allen, January 29, 2007, 06:58:38 PM

Previous topic - Next topic

Rob Allen

The default planet in TG2 is pretty much just a ball of grey rock with a blue sky.  I've been tossing around the idea of creating a kind of "generic earth", that is a full-featured earthlike planet, complete with continents, mountain ranges, forests, biomes/climate zones, polar ice caps, cloud systems, and maybe even procedural weather systems.  By randomizing various seeds, it should be possible to use TG2 as an "earth generator", to create random terrestrial planets on the fly.  This could speed up the process of creating all kinds of planets and space scenes.  Although I'm fairly certain this should all be possible, to do it right it will take some time, and I'm still not all that experienced with TG2.  So I was wondering if perhaps someone more experienced is already working on this, has already done this, or has some tgd files that I could use as a basis to start from.  No sense in reinventing the wheel, right?

Will

well if you just want space orbital stuff you could try the planet shader and just play around with the cloud setting  but it would be neat if it had weather systems.

Regards,

Will
The world is round... so you have to use spherical projection.

Rob Allen

Well the idea is to create a complete planet simulator, that could be used for any kind of render, from space scenes to landscapes.  Sort of an "all-purpose earth".  Plus it would be kinda fun to just randomly generate planets and then explore them.  And of course, certain shaders and such could be disabled for certain scenes in order to speed up render time.  But it's faster to have the scenes available and then disable them when neccessary than to hand-make a planet each time you want to start a new render series.

Will

so you mean like a more realistic version of mojoworld then that would be neat.

Regards,

Will
The world is round... so you have to use spherical projection.

old_blaggard

I've talked to a few people who have played around with it.  It's very difficult and complicated, but it could be extremely useful.  I don't have time myself, but I would definitely be interested to see what you come up with.
http://www.terragen.org - A great Terragen resource with models, contests, galleries, and forums.

Cyber-Angel

Rob,

I have some ideas for this but it depends how far down the road of realism you're wanting-to take this project which we can talk about in privet on PM if you like.

Some of the ideas I have would require considerable R & D and would mean going into literature outside of the CG field such as physical hydrology, physical geography, geomorphology and geochemistry, mineralogy, crystal optics, metrology and physical oceanography. In other words the research would have to be cross disciplinary in nature.

Would you be prepared in such a system to have land, water bodies and atmospheric models are interactive with one another as they are in nature? That is to say for example that waves on the ocean are produced by air pressure on the surface of that ocean causing that are of ocean to be depressed combined with the rotation of the planet creating waves.

The planet generator would need to consider the slope and angle of the ocean floor as it rises to the beach, the beach slope angel would also be of importance as would the nature of the beach its self (Shingle vs. Sand etc) as part of the model, the model would need to be aware enough of the terrain that sea cliffs and other protrusions in the surf zone would automatically produce spray (Note: that sea spray is a source of cloud condensation nuclei).

Regards to you.

Cyber-Angel  

Oshyan

C-A, I'd say your aims are probably *significantly* more ambitious than Rob's and wouldn't be possible to implement in TG2 currently. But the fundamental idea of a pre-set randomizable planet is a great one and no doubt very familiar to MojoWorld users. I'm not aware of anyone seriously tackling that sort of project and I encourage you to pursue it. You may even want to find people to work with on it, each person tackling different areas.

Fundamentally just about everything you want to do is possible, but there will be many challenges. I would suggest starting with a desert planet with no cloud systems, implement continental-scale features, mountain ranges, canyons, etc. then perhaps put some latitude variation in (ice caps, etc.). Then texture it all realistically - a very long-term task if you want to include proper locational variation.

After that you can spend time working on a complex, realistic cloud system that works from orbit and ground level (very challenging to mix the different scales properly). Once you're done with all that I think the water system may have matured to the point where you could reasonably implement planetary oceans with real underwater topology, transparency, etc.

I hope you make some headway on this. I'd love to see the results. :)

- Oshyan

Rob Allen

#7
Maximum realism would be great but my concerns are that too complex a system could needlessly inflate render times, even though stuff could be disabled to increase render time, i don't want to create a system whereby it's neccessary to turn stuff off for every render, especially since this is to be used as a sort of foundation upon which to build.  If your foundation alone takes a day to render, imagine how bad it would be once you actually did something with it.  So, there is a threshold.  That said, I don't really know exactly where that threshold would be, and it would be different for different users and different machine specs.

I would want something relatively simplistic, but also capable of simulating complex realistic nature systems acceptably enough to make it universally useful.  Impossible?  Not sure yet.  I think we can get pretty close though.

The way I intended to approach this is to start with the bare essentials.  Implement the most basic system as a goal, and do it really well, such as the hydrosphere, and then call that a version.  Then, the next version includes continents, and so forth.  I think it might be really interesting to do this as a community project.  If someone out there is really good at making a full-planet hydrosphere, then they should do that and submit it.  If someone can do really realistic continents, then they do that, and so forth.  As long as the contributors work with the understanding of keeping render times manageable, and there is someone to oversee the entire project, it could probably be done quite rapidly and the results would be quite good.

The big problem with any project like that is management.  When enough people are working on something, it becomes a seperate job entirely just to make sure everyone is on the same page and the work being done doesn't end up clashing with the work that needs to be done.  And so the question becomes, is a multi-contributor approach neccessary?

This is why I started the thread in the first place; to see if anyone else had already done some work of thier own that could help.  But there is definately room for discussion, and I am starting to see that this is a project worth doing, which will help to motivate me.

JimB

Instead of looking at Mojo only, there is a 2D plugin for Photoshop that creates planets called Lunar Cell, including Earthlike ones, seen from space but entirely procedural and very detailed for closeups.
http://www.flamingpear.com/lunarcell.html
http://www.flamingpear.com/products.html

As a 2D solution it's very good indeed, and I suspect the interface and modus operandi might be useful to look at.
Some bits and bobs
The Galileo Fallacy, 'Argumentum ad Galileus':
"They laughed at Galileo. They're laughing at me. Therefore I am the next Galileo."

Nope. Galileo was right for the simpler reason that he was right.

Will

jimb thats pretty neat find there.

Regards,

Will
The world is round... so you have to use spherical projection.

MeltingIce

Quote from: JimB on January 30, 2007, 04:56:42 AM
Instead of looking at Mojo only, there is a 2D plugin for Photoshop that creates planets called Lunar Cell, including Earthlike ones, seen from space but entirely procedural and very detailed for closeups.
http://www.flamingpear.com/lunarcell.html
http://www.flamingpear.com/products.html

As a 2D solution it's very good indeed, and I suspect the interface and modus operandi might be useful to look at.
I love Lunar Cell, its how I made orbiting planets for TG 0.9 renders  :P

MeltingIce Network | Wii Number: 3881 9574 8304 0277

Jane

Ive been using Lunar Cell for a while too, I make the planet, then put it into my TG image.
(I love FlamingPear products.)
I am not too good at this yet, but it works.  I would imagine some of you experts here really could do some amazing images with LunarCell.
Jane

edlo

A "generic earth" from space its  very easy to achieve with the fantastic planet surface shader and a global weather system can be obtained using global weather infrared satellite images and apply those as distribution.
Now a planet that emulates even medium detail to earth its extremely difficult and the power needed for this just to populate several billion trees and plants its out of our hands.
Now to emulate the vast diversity of geological formations, I think that the best way to do it its by collecting and importing all of earth surface with DEM ´S; but again cpu power required will be to great.
What I think its attainable its building up a procedural network that more or less behaves as earth and presents different features according to geographical location. For this we need a wizard that handles the node network as well as his/her own hands. :P

Rob Allen

An interesting idea might be to see if TG2 can use a link as an image source for a shader.  Link directly to one of the infrared satellite images, and the planet's clouds will update in real-time with Earth (theoretically).  I have used Lunarcell quite extensively and use Solarcell for the sun effects as post-processing of my renders.  I like to have the "spikes" coming off my suns, plus I use Glitterato to generate starfields for backgrounds (now that I know how to do this).

What I would consider as a goal for this project is to create a kind of TG2 Lunarcell.  That is, capable of creating realistic-looking detailed planets with modifiable parameters, so they look good from orbit, but with TG2's ability to go down to the planet and generate equally realistic landscape scenes.  To accomplish this while maintaining a respectable usage of CPU resources and a decent target render time would be the ultimate goal.  Difficult yes, but I think with some skill and a little "thinking outside the box", it should be possible.

My rendering computer is working on a particularly long render at the moment so I'm not going to start on this project until it is done.  It has been rendering for about a day now and looks like it may still have another day or two to go.  Just to reassure everyone, this is NOT what I consider to be an ideal render time.  The scene in question is particularly experimental, but I think the end result will be worth the time.  My target render time for the generic earth would ultimately be less than 30 minutes on a high-end machine, with all details/shaders turned on.  I'd like for it to weigh in at around 15 minutes, but I'm not sure that will be possible, and I can't promise 30 minutes either.  Until I get some progress on it, every estimate I make is going to be a ballpark figure.

swiftstream

Populating billions of plants is, as somebody pointed out, unreasonable. However, it may be possible to make clever use of the distance shader to avoid this, and only populate plants when the camera is close to the ground, and only in the area near the camera.

Obviously, if you had a camera a very long way away with a very very high zoom, this effect would break down. But the distance shader could be manually modified for this situation.

This is one case where the ability to alter any parameter of any shader with scalar nodes, ala World Machine, would work wonders. Even better if you could access the value of any parameter, which IIRC World Machine does not do. Then you could get the size of an object, and use a distance shader to calculate the angular size of each object, from which, with the camera zoom parameter and the image size, you could calculate how large the object will be in pixels. Then you create a shader based on this which is white where the size is above a certain threshold and black below, which is then used as a distribution shader for the population, so you only have objects where they are large enough to be seen. Every else where the object would be can be replaced with an appropriate surface layer.