Home Technical Talk

Help With Skyboxes

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

  • Eric Chadwick
  • Zezeri
    Destiny had some awesome skies and the Last of Us too. Look at these games for reference.

    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.
  • Eric Chadwick
    Here's another example. http://ericchadwick.com/img/mmo_worldbuilding.html#volcanicbeach

    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.
  • Hofsta
    Thanks for the advice and links guys. I'm thinking that my best course of action would be to do a sky box with a cube map and to tessellate the box into a sphere? That way I could have a 360 degree sky sphere?

    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!
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Anyways, you not must use a cubemap or such thing. There are some fairly simple methods to render out to domes.
    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.
  • Eric Chadwick
    Obscura wrote: »
    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.

    There's a 3Dmotive tutorial for Max, on the wiki page I posted, maybe that one?
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    No its not that. It was text/image based, and he also used multiple domes, and the noise material with edited output curves, for making clouds.
  • Eric Chadwick
    If you want to create sky textures, Terragen is free http://www.planetside.co.uk/products/download-tg3
  • Hofsta
    I get how to make a sky dome and texture it now, but that method only works when the game takes place on the ground and the player can only look up. What's the best way to create a sky asset where the player is on a floating platform and can see sky both above and below him?

    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!
  • gnoop
    Online / Send Message
    gnoop sublime tool
    http://simul.co/truesky/ they do plugins for unity and u4. Looks not that real in actual games although

    Skybox term should be forbidden and forgotten long ago imo. Box is most texture ineffective way to do sky.
  • Eric Chadwick
    I've heard cubemaps are optimized to render fast on most GPUs. Also for fast IBL. Depends on your engine I think.

    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.
  • james01
    Hofsta wrote: »
    What's the best way to create a sky asset where the player is on a floating platform and can see sky both above and below him?

    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.
  • Eric Chadwick
    james01 wrote: »
    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?
  • Hofsta
    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.
  • Eric Chadwick
    Does the playable area look like Minecraft? You might want to make the skybox art match that style, using block-based cloud fx.

    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
    winter_sky_vue_7_5__atmosphere_by_dmaland-d82z7ae.jpg

    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
Sign In or Register to comment.