Creating alpha gauge images

Warning: I'm not a technical writer. I just play one on TV. There are no guarantees that the following instructions will work for you.  

 

Sometimes a gauge author/developer will want to add a (static) shadow element to a gauge. This is pretty easy to do, especially with XML gauges. With C gauges, it’s easy but there appears to be a bug with the system in the virtual cockpits.  So if you have special gauges for the 2D cockpit, you can safely use an image that has alpha.  Otherwise you’ll have to wait for the next version of Flight Sim.

 

Creating an image that will alpha blend in the panel system requires the use of Photoshop.  The RGB channel can contain whatever colors you wish, although it will typically be black (for a shadow) or white (for a highlight).  In my example, I’ve used a red & white checkerboard pattern to illustrate the point.

 

Now there must be another channel that specifies the how to blend this with the elements below it in the Z order.  My simple example uses vertical stripes of black, white, and varying shades of gray:

[Missing image]

 

The name that you give this channel doesn’t matter.  There should only be one alpha channel in the file.

 

After creating the .psd, the next step is to run imagetool on the file.  Unfortunately, this step must be run from the command line; the menus don’t have an option for creating a bitmap-with-alpha.  Run the following from the commandline if the file is named “foo.psd”:

 

imagetool -gauge -gaugealpha -nogui -nobeep foo.psd

 

Now we should have a bitmap that flight sim and imagetool will interpret as having an alpha channel.  To test this theory, open the resulting .bmp with imagetool and click on the “View”…”Alpha Channel” menu item. 

 

To see this image in-game, add it to your favorite gauge.  Add the image as you would any other image (how to do this is out of the scope of this tutorial, as it’s one of the basics of gauge creation), but make sure that you indicate that the image should be alpha blended.  In the case of XML gauges, this would mean adding “Alpha=True” as an attribute.  In the case of C gauges, this would mean adding the IMAGE_USE_ALPHA flag in the DRAW_FLAGS parameter for the STATIC_IMAGE macro.

 

When I created a gauge with a white background and added the above image, I get the following result:

[Missing image]

 

In other words, black = transparent, white=opaque, and grey = everything in between.

 

So, try using the 3 easy steps (create psd, run imagetool, modify XML/C) to add alpha to your gauge!  Let me know how it goes.

Comments

  • Anonymous
    November 03, 2005
    Nice explanation! That answers a question that has been bugging a number of people at the AVSIM "Aircraft & Panel Design" forum... ;)
  • Anonymous
    November 05, 2005
    The comment has been removed
  • Anonymous
    November 05, 2005
    Hi there, I got this to work nicely. I have noticed an age-old problem that in the 2D view, the shadow is 'banded' (not evenly blended) but looks nice in 3D (VC) view. I tend to normally restrict the 'width' of a shadow around the outside of a gauge to minimise 'banding'. Something else we have problems with is getting these bitmaps to rotate. For example, in a standby attitude indicator that has a drum rather than a ball, it's nice to add shadow to the top and bottom of the drum, but it needs to rotate with the drum when banking. You can write the XML code to rotate the bmp, but it will not. Any fixes for the 2 above comments?
    cheers,
    nick
  • Anonymous
    November 07, 2005
    Re. Nick's comment, no, I really did mean what I wrote in my post. Black = transparent, white = opaque. The background that I blended against was white. On the left side, the image is mostly white, meaning that the background is most visible, and thus the image is most transparent.
  • Anonymous
    November 07, 2005
    The comment has been removed