   Atmospheric effects without using shaders
  Hi! I'm developing an iPhone game in an outer space setting where I have the following two graphical requirements:1) I need to render the Earth as seen from outer space (including the "atmospheric glow" effect). Something similar to this:2) I need to be able to make transitions from the ground all the way to outer space and viceversa.I've been searching through the web and found lots of references that explain how to do atmospheric scattering effects in the GPU but, since I'm targeting the lowest common denominator (ie. OpenGL ES 1.1), I'm afraid I cannot use them.So I've decided to come here and ask: do you know of any technique that I can use in order to achieve the effects I've mentioned without using shaders? I think that maybe I can use some kind of "dynamic skybox" in order to achieve the second requirement, but I'm not sure if that's a very primitive solution.Thanks in advance for your input!--Nacho   
  I never really studied the atmospheric effects because I never needed that level of accuracy.Could you just fake it? That sphere halo looks pretty easy to do, then I'm thinking once you've broken through the clouds, the sky will be pretty consistent.   ;  You probably want to look at Alex Peterson's technique to cheaply fake atmospheric effects with textures. It is one of the simplest techniques I have seen, and looks pretty good for what it is.   ;  Thanks for your replies!@DWN: Yes, I can totally fake it, as long as it looks neat. How would you implement the atmospheric halo around the Earth? I thought about rendering an impostor with a glow image between the camera and the planet. Does it sound reasonable?@swiftcoder: I've read the article you mentioned but -and correct me if I'm wrong- the only thing the author does is replace all the expensive scattering calculations with a few simple operations and a texture lookup. How can I use that technique in a fixed-function environment?Cheers,--Nacho   ;  For #2 you could make use of the MIP map functionality but not as it's supposed to work originally. Be aware that you can place your own mipmaps as you wish them to be (by indirectly specifying, or using a DDS texture) - so in the end you have a different texture for every ounce of distance from the camera.You can make the mipmaps for the terrain represent a slightly bluer shade, the smaller they get (so as to fake the sky piling up on them the farthest you are from the terrain). This way you don't need to have a transparent blue sky mesh. You just need one for the clouds (with which you can also use a similar technique: the top-level mip-maps have a very blurry cloud, the top-level being the blurriest and the bottom level being the most defined one - this will make the clouds blur as you move into them, like when you are on an airplane).It's fixed-function trouble solving, so you are sure to have some fun with it. Developers have been doing this for a while with old consoles.EDIT: Also, make sure to know all the extensions and blending modes your API supports. Even some fixed-function can handle DOT3 blending and other advanced features (taking Dx6 and 7, for instance).   ;  Essentially the only thing I really see in that image is a curved band of light blue around the globe.My first thought would be to blend in an overlay color function, maybe with intensity like this:"   _______""  /  \"" /    \ __   ______ ________""| |    /  \=/    x\""|X-----|--- _________/    \___    _______/  \___""| |"" \    /""  \_______/"and then shift the sigmoid functions based on how close the cam is to the sphere centroid, eventually blending into a simple gradient once close enough to the Earth. With added basic diffuse lighting, it might work okay? but would take some tinkering. dunno, just a thought.[Edited by - DWN on July 30, 2010 5:05:32 PM];  Sorry for my late reply. Thank you all for your advice. I'll see what I can do based on your suggestions.Cheers,--Nacho   