Draft Upgrade Notes for Aircraft

We've been working on a single comprehensive document for aircraft authors - everything that changed in X-Plane 11. Jennifer has posted a draft here. This is still a draft, and we still have work to do, but there's a lot already there, so we figured better to post it and let people comment and get started.

For entirely new features, we are creating separate articles on how to use them - it would be a little weird to have to look up "v11 aircraft checklist" to learn to use FMOD.  This means that this document refers to some unfinished (and unpublished) documents that will be coming soon.

Changing Blending

One of the changes listed in the document is that we changed the blending in X-Plane from blending in sRGB space to blending in linear color space. This is a universal change. It affects: all 3-d drawing, including everything drawn with an OBJ and the 3-d drawing of the panel texture.  It does not affect:

  • Plugin-based drawing in any 2-d drawing callback, including plugin UI drawing.
  • Drawing into the panel (either via Plane-Maker instruments or plugin code).

In other words, your panel is composited in 2-d as it was before, but the usage of the alpha channel of that final panel texture is different.

How Am I Different?

The notes say blending is now linear and not in sRGB space. What does that actually mean, and how does it affect you?

Take a look at the color gradients in this blog post.  (The whole post is really good, but the gradients show this issue).  When you have a surface with intermediate alpha, you're getting the intermediate gradient of the thing behind your surface and your surface's albedo, with some fraction determined by the alpha.

As you can see from the chart, the intermediate colors are all brighter with the new linear blending. This intermediate brightness is more like what you would really see when working with translucent materials; the old model was losing light energy.

(X-Plane 10 was linear in the entire rendering engine except blending - we kept blending in sRGB space - it was very complicated and messy to do and hurt performance. So it was a priority to make things both faster, more correct and less insane on the code side for X-Plane 11.*)

What Do I Have To Do To Tweak My Textures?

Let's get practical: textures with alpha will not look the same as in X-Plane 10, and while sometimes the new result is just better (light colored alpha-based lettering on panels almost always looks better in v11 out of the box), sometimes you'll need to retune your alpha channel.

In pretty much every case, the new blending is brighter in intermediate values than the old one, which was losing light. (When we stop losing light, the net result is an increase in light.)  So these cases will all involve ways to back off the brightness; you probably made things overly bright in X-Plane 10 to compensate for non-linear blending.

Here are a few typical examples we saw when exploring this feature with our art team.

Tinted Glass: tinted glass typically suffers from two problems:

  1. It's just not dark enough.
  2. The tint color itself is too bright and now "shows" a bit, e.g. non-colored tinted glass looks light gray.

First: make the RGB of your texture darker if possible. Dark tinted glass should almost certainly have a black RGB (and use alpha for "how much" tinting).

Then: adjust the alpha as needed - if darkening the RGB didn't do it, increase the opacity.

Painted Reflections: if you've painted reflections onto your glass, they may look too bright.

First: consider letting the engine be the reflection source - you may want to use BLEND_GLASS for cockpit glass and/or use metalness to increase reflectivity. Do these things first before editing albedo and alpha textures; they have a much bigger impact on your scene than the new blending mode.

Then: when done (or if you will not make these changes) decrease the opacity to turn down the reflections.

Dirt and Grunge: we found that our black markings on the ground looked too light - they were using alpha to anti-alias the edge of the marks and simulate pixels that contained a mix of dirt and the underlying surface in a single point. (This particularly matters when you zoom away from the marking and it becomes small on screen).

First: make sure your RGB channel contains correctly dark colors around the edges of the decal. (In what I've seen, artists pretty much always get it right in this case.)

Then: increase the opacity of the effect to make it darker (by emphasizing the dark decal more than the lighter pavement.

As a general rule of all of these, the RGB of a blended surface should be very dark (decals, tinting) or very light (fake reflections) and not be mid-range. Then the alpha can be made more opaque to darken darks or more transparent to darken lights.

 

* Nerd's Nook: If you known enough OpenGL to be dangerous, you might be asking "Ben you idiot, why don't you just turn sRGB blending off and on based on whether the content you are drawing is new to X-Plane 11 or old from X-Plane 10?  You can just use glEnable!"

Sadly we cannot. In the forward renderer we might be able to toggle the blending mode per object or something, but in the deferred renderer (HDR mode), we blend all albedos together, all lit textures together (during G-buffer setup) and then we add the total lit to the total albedo during the single lighting pass where we apply the sun.

Basically we're taking the math of the blending equation and rearranging the algebra. This rearrangement only works if the color space for adding the lit and albedo together is the same color space as every blending operation.

So for HDR to work, we have to pick a single blending equation sim-wide because we have to pick a single way to add lit and albedo together. For X-Plane 10 we picked sRGB color space and for X-Plane 11 we picked linear.  Linear is a total win here - besides looking better in a lot of cases, adding lit textures to albedos looks better when done in linear space too. After all, we are adding light.

 


  • Facebook
  • Reddit
  • Twitter
  • LinkedIn

About Ben Supnik

Ben is a software engineer who works on X-Plane; he spends most of his days drinking coffee and swearing at the computer -- sometimes at the same time.
This entry was posted in Development, Modeling. Bookmark the permalink.

12 Responses to Draft Upgrade Notes for Aircraft

  1. Fred says:

    I'm not sure if I understand, will this change still come on further updates or it's already present on current version?

  2. Tom Knudsen says:

    This is pure excellent news, thank you so so much Ben

  3. RD says:

    This means the aircraft systems are now “locked” and ready to go?
    Is there some open bug regarding APU datarefs?

    Was something related to the datarefs below returning zero:

    sim/cockpit/electrical/generator_apu_amps
    sim/cockpit2/electrical/APU_generator_amps

    I would like to know if it`s a bug or a redesign of the system, actually.

    Thanks!

    • Ben Supnik says:

      We are fixing bugs. The systems are locked for features. So for example, pb15 has a bug in its ITT calculations, causing ITT to spike. That will be fixed in pb16. But for example, Austin's new fuel introduction features system (new feature, lets you simulate auto-start realistically for a jet engine like in the A320) won't be until 11.10.

      Re: the APU generator, please file a bug and include the aircraft. The only 'bug' I know of is that those datarefs are INOP on the 747 due to crazy plugin coding - they work in the 737.

  4. Kristoffer says:

    Hi Ben, and thank you for all your hard work.
    Do you have an ETA for the FMOD document?

  5. John says:

    So all ITT problems (PC12/Kodiak etc.) will be fixed in PB16 ?
    I burned so many PT6 turbines in PB15...expensive 🙂

    Is there a chance for PB16 at the weekend ?

    Greetings

    • Ben Supnik says:

      You don't _have_ to pay Carenado again each time you burn out an engine - you can just pick "new flight". 😉

      Seriously, I think this may be fixed...there is a bug in b15 where the ITT jumps really fast, and Austin has fixed it for b16; I sent Carenado a build and I think this fixed their fire problem.

  6. John says:

    Perfect 🙂
    No panic...i don't pay Carenado twice. It was only a joke.
    In real life burning PT6 will be expensive.

    Cheers

  7. Dellanie B. says:

    Fantastic work!

    Quick question, is there any plans to increase the text size on the navigation displays (in which some cases are too small to be legible.) My opinion is that way point displays need to be white and have a taller defined font.

    Currently (rough depiction) : http://cdn.soft112.com/images/cc/47/xhsi-navigation-display-for-x-plane/pad_screenshot.jpg

    IRL 737 : http://forums.x-pilot.com/uploads/monthly_2016_12/584472d2436fe_IXEG737ND.JPG.9be36561a5f2e98ba290c5db2f739a5b.JPG

Comments are closed.