After a week of working in the Irrlicht engine and porting/optimizing features from the old engine to the new, the graphics side of rendering Aero Empire in Irrlicht is almost done (everything but cloud rendering). I've been careful to make sure everything works on older graphics cards (any card that supports basic OpenGL 1.1 and above), and this is true now for all effects except the moon.
I couldn't think of any good way to render the moon well on older graphics cards. Without per pixel lighting, it would be obvious that the moon was flat. I could sort of fix this by rendering the moon as a real sphere, however, the aerial perspective approximation using glFog on old cards looks pretty bad for objects like the moon that are very far away (and the aerial perspective calculation I have that works requires shader support). The other celestial objects get around this problem by using additive blending. So, for old cards, I decided that the moon will not be rendered at all - pending any future ideas or changes.
One thing I have not added back, and am not sure if I will or not, is shadow mapping. The current images you see are using Irrlicht's implementation of shadow volumes. Shadow volumes have their benefits and their downsides over shadow mapping, however, more cards support them, and they are already included in Irrlicht. Shadow volumes look very crisp, having no pixelation artifacts that occur in shadow mapping algorithms, but also no easy way to add soft shadows. I may add PSSM (Parallel Split Shadow Maps) later for an alternative shadowing technique in the engine, depending how the shadow volumes work out. There's also a question of efficiency when rendering lots of objects, as shadow volumes are tied to the complexity of the scene, however, this will probably not be an issue in the earlier games that have smaller battles.
Running on my Geforce 280 graphics card at 1440x900 resolution with all features enabled at full quality, I get around 300 fps (with the one airship scene). Without shadows and godrays (which are the main performance bottlenecks), I get around 1100 fps.
In addition to the features the engine had before, I also added the following:
Line caps, which cover the gaps between the lines (you can see them in some of the older images).
A slight glow around the moon depending how bright it is.
And, as the topic of this news post says, Planetary Rings.
The planetary rings were actually quite simple to render. They are rendered as a textured ring rotated about a point slightly below the camera. The slight offset from the center of rotation takes into account the fact that the camera is not at the equator of the planet (if it was, we would not need to add any offset, and the rings would look infinitely thin). This creates the effect of looking down (or up if I flip the offset) at the rings as though you were viewing them from above or below the equator.
The resulting effect is quite nice:
Now, I'm going to work on integrating physics, game logic, controls and AI into the Irrlicht engine. There might also be another release of the ModelViewer using this engine so that people can test out the new engine and see how it works on their computer.
In other news, we have now set up an IRC chat room where developers and fans can chat. Feel free to stop by and check it out. You can see the details here: Ae.aerosphere-studios.com.
Look forward to more updates!