Monday, June 16, 2008

I Hate It When My Padding's Not Integral

"Warning: padding is not integral" is a warning message that the airport sign code renderer can spit out when your airport is loaded.  Unlike all of the other warnings that you might see, this one doesn't actually tell you that there's a problem with your sign.  It's actually telling you that there's a problem with my code, and today I finally fixed it.  (The fix will ship in X-Plane 920, not X-Plane 902.)

The problem is that the official FAA sizes (0.76 meters, for example) suffer from tiny rounding errors when put through the sign creation process.  (Use 0.33 as a proxy for 1/3rd.  Divide something in thirds  and add it up.  You lose a tiny sliver, right?)  That warning message was the renderer noticing that it was being asked to fill in a really tiny sub-pixel area (which it then did, hence you can't see a problem from your airplane).

With 920, the sign heights are changed ever so subtly (by less than 0.1%!) so that they don't cause rounding errors.  This is the equivalent of calling the sign 0.33 meters instead of 1/3rd meter.

If this all seems like decimal point hell, well, welcome to my world!

Bottom line: you can ignore this warning, it'll go away in 920.

No comments: