Monday, July 14, 2008

HUD Hell

For X-Plane 920, I modified the HUD code to draw the HUD into the 3-d cockpit's panel texture. This turned out not to be such a good idea.  The problem is one of opting in: if we change the behavior of the sim without authors being able to "opt in" to that new behavior, we break old planes.

The first plane we've seen with this problem is the F-22.  The F-22 uses a 3-d object for the cockpit all the time (even in 2-d), and uses the 2-d panel simply for texturing.  (In this sense, the F-22 is ahead of its time - this structure gives some of the advantages of the new 3-d panel texture).

The problem is that the F-22 uses the panel texture to map the 2-d HUD to the 3-d HUD, with the expectation that only the HUD background (and not the writing) will appear.  The sim then draws the HUD on top.  When we start burning the HUD into the panel texture, we get two HUDs.

To fix this, we won't draw the HUD to the panel texture if you have a real 3-d cockpit object. This change will go into beta six or seven.

I may eliminate the HUD on the default 777 as well...the problems with this feature are numerous:
  • As discussed above, for any plane with an existing 3-d object, adding the HUD is more likely to break the plane than add value..authors could not plan for this.
  • For a plane with no cockpit object like the 777 the HUD may not be very well aligned with anything - it's just a 2-d drawing.
  • Even if the HUD texture is useful, because the HUD is drawn to a texture, the result is blurry and unfocused due to texture filtering.
In other words, even for new authors I don't think that drawing the HUD to a texture is a good way to make a HUD.

1 comment:

Matthew Shoemaker said...

I was just curious, how does one go about making a custom HUD? I have been playing around with X-Plane 9 and the SDK for a few weeks but have not come across anything that looks like it could help.