David Megginson writes:
>
> Curtis L. Olson writes:
> 
>  > We artifically raise the lights a bit to attempt to avoid zbuffer
>  > fighting.  The formula is based on the altitude above ground and the
>  > distance away ... however, it's rough and imperfect ...
> 
> I'm still working on understanding the code.  First, you have
> 
>         point_list geod_light_nodes
>             = calc_elevations( root, light_nodes.get_node_list(), 0.5 );
> 
> That means that the base elevation for each light is already 0.5m
> above the runway.  Does FlightGear have ssg do further elevation
> adjustments at runtime?

void FGTileEntry::prep_ssg_node(
{
........
    if ( gnd_lights_transform ) {
......
        if ( general.get_glDepthBits() > 16 ) {
            sgScaleVec3( lift_vec, 10.0 + agl / 100.0 + dist / 10000 );
        } else {
            sgScaleVec3( lift_vec, 10.0 + agl / 20.0 + dist / 5000 );
        }
...
    if ( rwy_lights_transform ) {
...
        if ( general.get_glDepthBits() > 16 ) {
            sgScaleVec3( lift_vec, 0.0 + agl / 500.0 + dist / 10000 );
        } else {
            sgScaleVec3( lift_vec, 1.0 + agl / 20.0 + dist / 5000 );
        }
....
    if ( lightmaps_transform ) {
..
            if ( general.get_glDepthBits() > 16 ) {
                sgScaleVec3( lift_vec, 0.0 + agl1 / 2000.0 + dist1 / 10000 );
            } else {
                sgScaleVec3( lift_vec, 0.0 + agl1 / 20.0 + dist1 / 5000 );
            }
...
}

HTH

Norman


_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to