Jump to content
  • Advertisement
Sign in to follow this  
adoado

Sky and Clouds

This topic is 3541 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello all ^^ I am in need of some advice. Currently I have a hemisphere covering my game world with atmospheric scattering applied, and it looks great so far, but it lacks clouds. I tried applying a simple cloud texture over the hemisphere for a test, but the clouds look terrible and lack the perspective feeling of depth.. Does anyone have any suggestions on what method of clouds I should use? I have read up on volumetric/grid and perlin noise methods, but I am not sure what would be best with the sky hemisphere.. Cheers, Adrian ;)

Share this post


Link to post
Share on other sites
Advertisement
You can get quite far with perlin noise effects applied to 2d plane.
Here's a really good sky system described by Yann L.
=> http://www.gamedev.net/community/forums/topic.asp?topic_id=86024
I'd suggest going this route first.

Clouds modeled with a bunch of particles are quite good for general purpose use.
( ie, you can fly around them, they can interact with mountains/geometry etc..)
Microsoft published a paper on one of their old systems.
Crytek stil use this kind off approach too.
=> http://ofb.net/~niniane/clouds/

Here's a cool middleware system
=> http://www.simul.co.uk/weather
Looks pretty sweet. They apply some hardcore atmospheric math to get realism.
( primary and secondary scattering in clouds )
But you don't have to go that far. Single scattering is enough for most systems.
They essentially model their clouds in a large 3D texture.
Then render it via slices through the texture.
Detail appears to be added via texture sprites (as like in microsoft system) and via fractal noise.

Share this post


Link to post
Share on other sites
Quote:
Original post by adoado
I tried applying a simple cloud texture over the hemisphere for a test, but the clouds look terrible and lack the perspective feeling of depth..

Any screenshots? :)

Share this post


Link to post
Share on other sites
Quote:
Original post by adoado
I tried applying a simple cloud texture over the hemisphere for a test, but the clouds look terrible and lack the perspective feeling of depth.
A little normal mapping on the clouds can do wonders for the feeling of depth (usually with a fake light angle).

Share this post


Link to post
Share on other sites
While cloud textures on a flat plane can do a fair job of simulating cirrus clouds, and even other kinds of clouds, it will generally lack the depth for more rounded cloud types. Also, it prevents any significant possibilities for interaction of clouds and the rest of the game world (cloudy mountain tops, etc).

Numerous solutions exist that improve on a flat cloud plane. Aside from normal mapping and parallax mapping, one could use some form of steep parallax mapping to give a more 3D look.

However, why restrict things to a flat plane? One major method involves rendering multiple clustered billboards with some form of simple volume lighting. For instance one could render a cloud-sprite cluster with a defined centroid from which to calculate normals, giving the lighting a volumetric appearance. To avoid rendering large numbers of overlapping semi-transparent sprites every frame, billboard imposters can be used.

Some variation of the above is used for volumetric clouds in the later MS Flight Simulators, and Crysis. Some demos of similar methods exist as well.

Also there is an interesting method in which geometric "cloud" primitives are rendered with lighting, then blurred and offset by projected noise as a post process; I've implemented such a system and found it quite convincing.

In genenal a hybrid system is probably best, as is often the case with realtime rendering. Use a cloud plane for high cirrus (done with noise), and some volumetric method for other cloud types. This a wide open field with no clear winners and lots of potential for research.

Share this post


Link to post
Share on other sites
Quote:
Original post by Matt Aufderheide
This a wide open field with no clear winners and lots of potential for research.

BTW,what's better in your sight-to present such things like a cloud rendering
methods here ,or in "Image gallery" part?
I also need a kind of feedback:)

Share this post


Link to post
Share on other sites
Quote:
Original post by Matt Aufderheide
Also there is an interesting method in which geometric "cloud" primitives are rendered with lighting, then blurred and offset by projected noise as a post


A similar (identical, Matt?) approach that I have bookmarked is to do something along the lines of http://www.inframez.com/events_volclouds_slide01.htm ?



Share this post


Link to post
Share on other sites
Yes that's the general idea I used, but I didnt use seperate noise boxes for each cloud area because alignment was difficult; instead I used a dome around the camera, mapped with a noise texture and rendered to a screen-sized texture...this then offsets the final blurred image (there are tradeoffs though).

Share this post


Link to post
Share on other sites
Quote:
Original post by Matt Aufderheide
Yes that's the general idea I used, but I didnt use seperate noise boxes for each cloud area because alignment was difficult; instead I used a dome around the camera, mapped with a noise texture and rendered to a screen-sized texture...this then offsets the final blurred image (there are tradeoffs though).

Right approach.But it may cause some efects when camera move with relatively fast speed.
I'm shure you now about ideas of special kind blending for skybox and terrain.
It looks great in static camera position,and simple clouds on skybox seems volumetric.
But "deillusion" disappear when camera move.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!