The luminous entry in the panel.cfg affects only gauge bitmaps that have the LUMINOUS attribute rather than the BRIGHT attribute applied.
As it happens, I frequently make use of that to provide three-level lighting in a gauge: Off/Dim/Bright.***
Remember that in a VC a gauge
MUST have a backlight source that's provided by a model's Material attribute. Think of VC gauge polys like you would an LCD monitor. If the "backlight" in an LCD monitor burns out, you will still see an image on the screen, but it will be very, very dark!
As I explained in my white paper, there are currently three basic modes of backlighting available to the FSX modeler, and each one has very different behaviors!
Additive mode = adds the RGB of the daytime and nightime texture. What is important to understand is that the lightmap
ADDS TO the existing daytime texture.
Blend mode = gradually replaces the RGB of the daytime with the RGB of the nightime texture. What is important to understand is that the lightmap’s color and luminosity is
BLENDED with the existing daytime texture.
MultiplyBlend = multiplies the RGB of the daytime by the RGB of the nightime texture. What is critical to understand at this juncture is that the first two emissive modes described apply for the most part to the “surface” of the daytime texture, whereas the new emissive mode applies
behind the daytime texture, in one word: backlighting!
*** Note: using LUMINOUS/BRIGHT in a set of gauge callbacks for three-level lighting:
Code:
//---------------------------------------------------------------------------
FLOAT64 FSAPI asi_needle_hi_cb (PELEMENT_NEEDLE pelement)
{
lookup_var(&curr_asi);
asi_ret = curr_asi.var_value.n;
if ( asi_ret > GAUGE_MAX_AIRSPEED ) asi_ret = GAUGE_MAX_AIRSPEED;
if ( asi_ret < GAUGE_MIN_AIRSPEED ) asi_ret = GAUGE_MIN_AIRSPEED;
if (panel_lights == 2)
{
SHOW_IMAGE(pelement) ; LIGHT_IMAGE(pelement) ;
}
else
{
HIDE_IMAGE(pelement) ;
}
return asi_ret;
}
//---------------------------------------------------------------------------
FLOAT64 FSAPI asi_needle_cb (PELEMENT_NEEDLE pelement)
{
lookup_var(&curr_asi);
asi_ret = curr_asi.var_value.n;
if ( asi_ret > GAUGE_MAX_AIRSPEED ) asi_ret = GAUGE_MAX_AIRSPEED;
if ( asi_ret < GAUGE_MIN_AIRSPEED ) asi_ret = GAUGE_MIN_AIRSPEED;
if (panel_lights == 1)
{
SHOW_IMAGE(pelement) ; DARKEN_IMAGE(pelement); LUMINOUS_IMAGE(pelement) ;
}
else
{
DARKEN_IMAGE(pelement); HIDE_IMAGE(pelement) ;
}
return asi_ret;
}
//---------------------------------------------------------------------------
FLOAT64 FSAPI asi_needle_off_cb (PELEMENT_NEEDLE pelement)
{
lookup_var(&curr_asi);
asi_ret = curr_asi.var_value.n;
if ( asi_ret > GAUGE_MAX_AIRSPEED ) asi_ret = GAUGE_MAX_AIRSPEED;
if ( asi_ret < GAUGE_MIN_AIRSPEED ) asi_ret = GAUGE_MIN_AIRSPEED;
if (panel_lights == 0)
{
SHOW_IMAGE(pelement) ;
}
else
{
HIDE_IMAGE(pelement) ;
}
return asi_ret;
}