Visual Improvements Galore

D2X-XL v1.14 works pretty well and the torrent of bug reports from the beta and release phase has slowed down to a trickle, so I found some time to add a few bells and whistles as well as some improvements to D2X-XL I had on my mind for a long time already.


Lightmaps

Lightmap calculation had always been somewhat of a hack. Light source handling generally is a problem in Descent, as there are no distinct light sources, but they are composed of entire faces having a light emitting texture glued to them. That means that depending on a level author's ambitiousness (or lack thereof), light sources often are rather big and irregularly shaped. Until now I worked around this by giving each light source a radius within which the brightness wouldn't decay. Particularly for huge and distorted faces this didn't work very well. The power of today's (and even yesterday's) hardware gives me enough headroom to improve on this and compute the actual closest distance of a point to be lit from the light sources shining at it, and this is now employed in light calculation. Having started to fiddle with the lighting I also took another look into visibilty culling and improved it significantly. Lightmap supported lighting should therefore look (even) better in D2X-XL than before. Isn't this gorgeous:


Zoom View

D2X-XL supports zooming in for Gauss and Vulcan cannons, and I thought throwing in a new reticle showing that off would be a nice addition. That reticle even has function: It will light up in red if a target is in the line of fire of your guns (that means you can target even if your sight is obscured, e.g. by smoke). A new zoom sound makes the sniping experience complete.


Shield Effect

Not everybody likes it when the entire shield sphere around a hit robot lights up, and I had been asked whether I couldn't have the shield only light up around the point where it had been hit. So far I had rejected that as being to complicated, but yesterday a simple idea struck my mind: If I would handle that in a pixel shader, doing this effect would actually be quite simple. So that's what I did: Wrote a shield effect shader program, found it didn't work, got upset, fiddled for hours and hours, getting more upset, finally found a solution but wanted more, so asked around in a forum, and in the end had all I wanted - and I hope you, too. A shield can register up to three hits from different directions, so the effect should really look quite realistic.


Ship Thrusters

Yeah, believe it or not: I did even more! Some time ago someone had provided me with a texture for the 3D thruster flames, and recently I thought that they should look way better if they only were textured. So I checked the code, and texturing the thruster flames was already in there ... it just didn't work. That's something I could change, and as I was on it I tweaked the thruster flame appearance, and I have to say that I really like the result of my efforts here.