Hey guys,
Been having this idea in my head for a while to build a planet shader for the unreal 3 engine using height maps as an input, and generating other details and masks procedurally. In my shameful joblessness, I was able to find some time to do this.
And because i don't want to type a 2000 page description of the functionality, i thought i'd just demo it and put it on the interwebz for all to gawk at.
************VIDEO***************
http://www.vimeo.com/7323255
************VIDEO***************
And for you fools who are too busy to watch a demonstration, here are some screenshots to entice you into clicking the link. :-D
this is the result, after a good 3-4 hours work.
Replies
Good job!
The planet is lacking actual glow around its edge and water/terrain transitions look a bit too sharp to me.
Great job on that anyways, i wouldn't be able to do that complex thing myself, just sharing aesthetical thoughts
Converting to a height map then showing the water on the low points spilling in I thought was pretty cool. NASA could probably use something like this to simulate what mars might have looked like eons ago...
As for the if statement, the if statement actually creates the alpha input of a lerp statement that blends the ground and vegetation layers with the water layer. The same mask also feeds into the alpha channel of a lerp expression between the detail normal of the water, and the normal map of the planet's surface. So these maps are dynamically updating. The masks update dynamically depending on what you want the water level to be. I would love to learn how to blend the sharp transition tho. I admit i don't know as much about shader tech as i would like to know, so i want to learn more. If you want to fiddle in the shader i'll be happy to supply you with the UPK. I'm not using it for anything, but wouldn't mind making it the best that it could be, and slapping a CC liscence on it for the mod community, but before i do that i need it to look good.
Also i want to point out that although it seems like an excuse, the shader was never intended to be used for close ups... it was designed to be more of an approximation of what a planet could look like from a geosynchronous orbit (22,000 miles out, depending on the radius of the planet.) If you were to get any closer the map files would have to be alot bigger and use alot more resources (mix maps, height maps, etc. Right now the shader is using heightmaps that are 1024x512.
I was thinking of trying to create a procedural cloud system that has some noise maps flowing through the UV coordinates to create a dynamic "Flow" as you were saying, but am not sure the best method to do this. I would love to get some input on this or maybe some reference.
I really want to make this shader awesome, so any help and critique i can get would be awesome.
Thanks guys :-)
Its no real random, but basicly it does the trick.
We should get together and develop some new material expressions that can be added to the editor. That would be pimpin.
Davision i understand your random Seed idea and i think it's cool.
If i understand correctly i could mask each channel of a Texture Coordinate expression, then have a constant 10, multiplied by a scaler paramater, and then add that to the masked texture coordinate, then append both inputs back together and plug it in to the UVs of the noise channel.. i'm te sting it now.
Some vids
http://www.jodygallagher.co.uk/Files/Demo2.mp4
http://www.jodygallagher.co.uk/Files/Demo.mp4
And pics
I have sent you a message, any possibility of explaining a little bit more, how you have integrated the heightmaps? Or maybe some sample of the map?
Regards,
M.
Reason im asking is because im working on a planet thats basically cube mapped, with 6 different textures for a high resolution result.
Im thinking though that it would probably be better to create seperate SM's, one for the clouds and one for the atmosphere.