Hello,
I'm not sure if this is the right place to throw this up, but I'm looking for some expert advice about skyboxes/domes for use in game.
I'm currently working on a mod project with a small team. We have an environment that is essentially a floating island so the player would be able to see sky both above and below the ground they are standing on.
I don't know much about creating these types of assets in general, besides a standard box or open half sphere. I'm wondering what types of options I have for creating something like this.
I also know that we are interested in having animated clouds and weather effects layered over, which might dictate the kind of approach that would work best.
If anyone here has done something like this or knows where I can find some decent info on the process it would be a huge help.
Thanks.
Replies
http://wiki.polycount.com/wiki/Skies
Otherwise, the standard process atm is probably a skydome, with clouds on it. Add another, larger one, so you have some cloud-parrallax. Depending on the engine, you can then drive the Color(-gradients) through a dynamic shader or just paint it on the dome. On top of this, you can have various types of individually placed "cloud-objects", which are usually sprites with a special shader. Some engines also have some kind of volumetric cloud technology, although this is often not really needed for most usecases, as clouds are too far away to really benefit from the volumetric tech, at least in the use cases I've seen.
It was done for a custom engine, but certainly the same ideas could be replicated in other game engines. One of our graphics programmers wrote the sky system, which rendered four layers of meshes in one pass. I could only use one light source, and only use scrolling textures. But a lot can be done with scrolling if you think about it some. The lightning for example.
Not sure if that's the best option, but the resources of this mod project are fairly limited, and the engine is fairly basic.
I know there are a few tools out there for creating cube maps, does anyone have one they really like that's reliable, easy to use and cheap/free?
Again, thanks for the help!
https://juarez3d.files.wordpress.com/2011/06/tutorial_animated_skydome_v1-3.pdf
You can even make it animated relatively simply...But if you don't want that, then you can use the baked/composited image.
This can also use moving layers, option to change the color/opacity of any layer etc.
There was an another link that showed you how to do in a certain way with Max, but unfortunately I don't find it now.
We made skydome textures similarly at work. We placed 2 domes, one was a bit smaller than the another, and was inside the another also it was scaled a bit vertically. Then we added a basic sky texture to the outer dome (the dome is uv'd to fit the texture). Then we had a tiling noise/cloud texture on the inner dome, and used transparency on them. They were moving (adding a value to the x or y texture coordinate in a loop). A few layers of the cloud texture were moving with a bit different speed, and the alpha of them were added together so when they are overlapping each other, you get a less transparent cloud. The good side of such solution is that you can control everything (cloud speed/direction/opacity/sky-cloud color etc...) fully dynamically, and even you can use just 3-4 texture for every time of the day/every level.
Probably a lot of new games (even older games) use such technique for skies, because this give you much more control, its fully dynamic, and you get way better resolution without a need of huge textures.
For doing this in a static way (baked down into one single image), you can still place the 2 dome, and add some materials with the clouds/sky... You can place some unique clouds with hand (tiny plane - placed to the place where you want) and then place a baker cube, dome, or sphere, or whatever you want, and simply bake the whole thing to that. And then you can use the baked texture on a mesh in your engine.
There's a 3Dmotive tutorial for Max, on the wiki page I posted, maybe that one?
As for the weather/ time of day changes, thanks for the tips Obscura. Some of those techniques will come in handy, although I think I'm even more limited than that. I have only 2 meshes to work with, a main sky layer and a cloud layer.
@Eric, thanks for the free tool, I'll check that out.
Thanks for the continued advice guys!
Skybox term should be forbidden and forgotten long ago imo. Box is most texture ineffective way to do sky.
For full sky coverage, with only two layers, a cubemap is a good way to go. Best pixel density in every direction.
Then add alpha planes on top (side clouds, upper clouds, lower clouds). If you're limited to a single mesh per layer, then attach all the planes, and use rotation or UV scroll.
To render an in-the-clouds cubemap, in Terragen or Vue, move the camera up high and render from there.
If you have watched the 3d motive UDK skydome tutorial you will have noticed that a hemisphere was used.
If you wanted to look down, then you would use a complete sphere, or duplicate the hemisphere and flip it vertical in the games editor.
I've tried this, and it looks terrible. You get a Rorschach seam on the horizon. You can try painting it out, or rotating one of the shells, but those tend to look crappy too.
I think it's better to build an actual sky scene, then either render it to a cubemap, or extract into layers.
What engine is the OP using?
The playable area is on a floating island in the sky. It's floating over land, so if possible we want to create a skyscape where the player can look down and see the distant ground obscured by moving clouds. Meaning I couldn't just duplicate a hemisphere and flip it anyhow.
As for the engine, the mod is being done using minecraft as the engine. It sounds odd, but it works for our style of game. We have a fair amount of flexibility with creating custom assets and effects, but we do have some limitations. One of the main ones being performance impacts and I can't go crazy with adding a large amount of custom meshes for clouds and weather effects.
Anyhow, I would approach it by making a 3d sky scene and placing the camera at a high altitude. For example (created by someone else in Vue):
http://dmaland.deviantart.com/art/Winter-Sky-Vue-7-5-Atmosphere-488731046
Then I would put a cloud texture on a plane below, and another on a plane above, and animate them to scroll by very slowly. There's a video on my website of the volcano sky, which was created basically the same way. It shows the wireframe too.
If you're able to use a parallax shader, that can really help give the flat cloud planes some depth.
http://wiki.polycount.com/wiki/Parallax_Map