Overgrowth takes place in the savage world of Lugaru where rabbits, wolves and other animals are forced to use paws, claws and medieval weaponry to engage each other in battle. Combining 3rd person adventure platforming with intricate melee combat, Overgrowth achieves a unique feel. Overgrowth also benefits from Wolfire's brand new Phoenix Engine which has been built from the ground up to allow the use of cutting edge graphics, animation, and physics. Add to these exciting features Overgrowth’s realistic artificial intelligence and streamlined control system and the result is an astoundingly immersive experience.
Since Overgrowth mostly takes place outdoors, we put a lot of effort into making the sky look nice. We've already talked about the sun placement tools and atmospheric haze, but now I would like to talk about how we achieve smooth transitions between the land and the sky.
Posted by jeffr on Jul 22nd, 2009
Since Overgrowth mostly takes place outdoors, we put a lot of effort into making the sky look nice. We've already talked about the sun placement tools and atmospheric haze, but now I would like to talk about how we achieve smooth transitions between the land and the sky. Let's start at the beginning, with the panoramic sky texture:
Here is how that looks when we wrap it around a scene:
As you can see, the bottom half of the sky looks stretched and unrealistic. It doesn't match the terrain at all, so the edge of the terrain is clearly visible. To make it blend in better, we stretch out the terrain texture onto a large, slightly-indented plane that reaches to the horizon:
Now the scene look more complete. However, the horizon still has a harsh line between the land and the sky. To cover this, we use what I call a 'horizon band' or 'fog band', a fuzzy strip that is colored by a heavily blurred version of the sky texture. Here is what that looks like by itself.
When we put it all together, it all fits together pretty well, and the process is entirely automated in a fraction of a second! Here is the final result again:
Here are some other skies using the same technique, to show that it works for a variety of sky types:
This technique allows us to render convincing vistas very efficiently -- in terms of both development time and run-time resources. Do you have any ideas about how we could make the land and sky fit together even better? (permalink)