]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/main.cxx
Ssg tweaks.
[flightgear.git] / src / Main / main.cxx
index c26b29d7644198021631066f5a156cb59363dfb9..19d796e1bf1c82784f9d92e6afe1648f675cb0aa 100644 (file)
@@ -182,8 +182,6 @@ static void fgInitVisuals( void ) {
 
     // xglFogi (GL_FOG_MODE, GL_LINEAR);
     xglFogi (GL_FOG_MODE, GL_EXP2);
-    // Fog density is now set when the weather system is initialized
-    // xglFogf (GL_FOG_DENSITY, w->fog_density);
     if ( (current_options.get_fog() == 1) || 
         (current_options.get_shading() == 0) ) {
        // if fastest fog requested, or if flat shading force fastest
@@ -354,11 +352,12 @@ static void fgRenderFrame( void ) {
        xglEnable( GL_DEPTH_TEST );
        if ( current_options.get_fog() > 0 ) {
            xglEnable( GL_FOG );
-           xglFogfv (GL_FOG_COLOR, l->adj_fog_color);
+           xglFogi( GL_FOG_MODE, GL_EXP2 );
+           xglFogfv( GL_FOG_COLOR, l->adj_fog_color );
        }
        // set lighting parameters
-       xglLightfv(GL_LIGHT0, GL_AMBIENT, l->scene_ambient );
-       xglLightfv(GL_LIGHT0, GL_DIFFUSE, l->scene_diffuse );
+       xglLightfv( GL_LIGHT0, GL_AMBIENT, l->scene_ambient );
+       xglLightfv( GL_LIGHT0, GL_DIFFUSE, l->scene_diffuse );
        // xglLightfv(GL_LIGHT0, GL_SPECULAR, white );
        
        if ( current_options.get_textures() ) {
@@ -379,16 +378,29 @@ static void fgRenderFrame( void ) {
            // xglMaterialfv (GL_FRONT, GL_DIFFUSE, white);
        }
 
-       global_tile_mgr.render();
+       // global_tile_mgr.render();
 
        // ssg test
 
-       xglMatrixMode(GL_PROJECTION);
+       xglMatrixMode( GL_PROJECTION );
        xglLoadIdentity();
-       ssgSetFOV(60.0f, 0.0f);
-       ssgSetNearFar(10.0f, 14000.0f);
-       sgMat4 sgTRANS;
+       ssgSetFOV( current_options.get_fov(), 0.0f );
+
+       double agl = current_aircraft.fdm_state->get_Altitude() * FEET_TO_METER
+           - scenery.cur_elev;
 
+       // FG_LOG( FG_ALL, FG_INFO, "visibility is " 
+       //         << current_weather.get_visibility() );
+           
+       if ( agl > 10.0 ) {
+           // ssgSetNearFar( 10.0f, current_weather.get_visibility() );
+           ssgSetNearFar( 10.0f, 100000.0f );
+       } else {
+           // ssgSetNearFar( 0.5f, current_weather.get_visibility() );
+           ssgSetNearFar( 0.5f, 100000.0f );
+       }
+
+       sgMat4 sgTRANS;
        sgMakeTransMat4( sgTRANS, 
                         current_view.view_pos.x() 
                         + current_view.view_forward[0] * 20,
@@ -413,7 +425,8 @@ static void fgRenderFrame( void ) {
        sgMat4 sgVIEW;
        sgMultMat4( sgVIEW, current_view.sgVIEW, sgTRANS );
        ssgSetCamera( sgVIEW );
-       // ssgSetCamera( current_view.sgVIEW );
+
+       global_tile_mgr.prep_ssg_nodes();
        ssgCullAndDraw( scene );
 
        xglDisable( GL_TEXTURE_2D );
@@ -1067,10 +1080,10 @@ int main( int argc, char **argv ) {
     // distribution) specifically from the ssg tux example
     //
 
-    // ssgModelPath( "/stage/pinky01/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
-    // ssgTexturePath( "/stage/pinky01/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
-    ssgModelPath( "/h/curt/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
-    ssgTexturePath( "/h/curt/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
+    ssgModelPath( "/stage/pinky01/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
+    ssgTexturePath( "/stage/pinky01/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
+    // ssgModelPath( "/h/curt/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
+    // ssgTexturePath( "/h/curt/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
 
     scene = new ssgRoot;
     terrain = new ssgBranch;