those square icons are horrible. i tried to make a 3d shield icon for my own cockpit but never got it to work. but i have an idea for how to draw a shield icon in 2d with only a base image of the ship.

1: first you render the ship (i used an actual image from an icon to save time) centered on the image and taking up a square equivalent to 1/4 the total area of the image anc centered in the middle.
2: then you divide the image into quadrants.
3: iterate through the pixels in each quadrant along the edge and scanning towards the center until the first non-black pixel is encountered.
4: do the same for the remaining quadrants until you have 4 points to create a polygon.
5: copy the polygon and mirror it down the middle
6: re sequence the points of both polygons into one polygon
7: use an algorithm to convert the straight lines to curves, using the length and angle of the lines relative to each-other as input.
8: once you have a rounded source polygon enlarge it (175% here) to create an outer boundary. you only need to do this and all previous steps once for each shield icon at game start.
9: create a line between the top-left corner and the image center and trace it to find the point of intersection between it and the big and small polygons to create 2 points in 2d space. draw a gradient line between them. rotate the line a bit and repeat, do this until the entire image is circled. as you begin drawing each quadrant, set a different brightness based on the shield strength for that quadrant.
10: an example of different brightness levels representing different shield strength. (also using some blur here to improve the quality)
i drew the example in photoshop, so any flaws are because of that. im also not sure how fast this would be. perhaps it would be possible to do this with a shader applied to a source texture (a one time rtt job). this would still use a texture but 1 instead of 5, easing up the demand on bmpman.
*edit*
did not really consider asymmetric ships like the dragon or scorpion. a variation on steps 2-6 would be tweaked a little. split the quadrants down the middle so you have 8 half-quadrants, and scan the pixels from the corner to the split and down towards the image center until a non-black pixel is encountered, so that each quadrant should generate a point. this also simplifies steps 4,5,and 6.
*edit again*
another idea is that you can simplify the maths by using only the inner boundry. when encountered on the center to corner trace draw a gradient line of a set length along the trace vector outwards starting from the intersection. you can also vary the line length with shield integrity and use some ratio of varying thickness and intensity to possibly produce a shield more closely resembling the stock shield icons.
another draw technique involves masking the non-working area and drawing a non-filled polygon at varying scale and brightness to create concentric rings. this might be faster since you dont need to find any polygon-line intersections to draw the effect and use a mask and pixel maths which should be kinda fast-ish.