// ssg variables
ssgRoot *scene = NULL;
+ssgBranch *terrain = NULL;
ssgTransform *penguin = NULL;
// 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
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() ) {
// xglMaterialfv (GL_FRONT, GL_DIFFUSE, white);
}
- global_tile_mgr.render();
+ // global_tile_mgr.render();
- xglDisable( GL_TEXTURE_2D );
- xglDisable( GL_FOG );
+ // ssg test
- // display HUD && Panel
- xglDisable( GL_CULL_FACE );
- fgCockpitUpdate();
+ xglMatrixMode( GL_PROJECTION );
+ xglLoadIdentity();
+ ssgSetFOV( current_options.get_fov(), 0.0f );
- // We can do translucent menus, so why not. :-)
- xglEnable ( GL_BLEND ) ;
- xglBlendFunc ( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ) ;
- puDisplay();
- xglDisable ( GL_BLEND ) ;
- xglEnable( GL_FOG );
+ double agl = current_aircraft.fdm_state->get_Altitude() * FEET_TO_METER
+ - scenery.cur_elev;
- // ssg test
+ // 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 );
+ }
- xglMatrixMode(GL_PROJECTION);
- xglLoadIdentity();
- ssgSetFOV(60.0f, 0.0f);
- ssgSetNearFar(1.0f, 700.0f);
sgMat4 sgTRANS;
-
sgMakeTransMat4( sgTRANS,
current_view.view_pos.x()
+ current_view.view_forward[0] * 20,
sgMat4 sgVIEW;
sgMultMat4( sgVIEW, current_view.sgVIEW, sgTRANS );
ssgSetCamera( sgVIEW );
- // ssgSetCamera( current_view.sgVIEW );
- // ssgCullAndDraw( scene );
+
+ global_tile_mgr.prep_ssg_nodes();
+ ssgCullAndDraw( scene );
+
+ xglDisable( GL_TEXTURE_2D );
+ xglDisable( GL_FOG );
+
+ // display HUD && Panel
+ xglDisable( GL_CULL_FACE );
+ fgCockpitUpdate();
+
+ // We can do translucent menus, so why not. :-)
+ xglEnable ( GL_BLEND ) ;
+ xglBlendFunc ( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ) ;
+ puDisplay();
+ xglDisable ( GL_BLEND ) ;
+ xglEnable( GL_FOG );
}
// 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;
+ terrain->setName( "Terrain" );
penguin = new ssgTransform;
ssgEntity *tux_obj = ssgLoadAC( "tuxedo.ac" );
ssgFlatten( tux_obj );
ssgStripify( penguin );
+ scene->addKid( terrain );
scene->addKid( penguin );
// pass control off to the master GLUT event handler