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