1
0
Fork 0

Lighting fixes.

Warning fixes.
Typo in configure.in
This commit is contained in:
curt 2001-03-28 00:39:29 +00:00
parent 96a9152b02
commit 7aa5e0a4eb

View file

@ -561,26 +561,24 @@ void fgRenderFrame( void ) {
glFogfv( GL_FOG_COLOR, l->adj_fog_color ); glFogfv( GL_FOG_COLOR, l->adj_fog_color );
} }
// set lighting parameters // set sun/lighting parameters
ssgGetLight( 0 ) -> setPosition( l->sun_vec );
// GL_LIGHT_MODEL_AMBIENT has a default non-zero value so if
// we only set GL_AMBIENT we will never get a completely dark
// scene. Thus instead of playing with GL_AMBIENT, we just
// set that to black and instead modify GL_LIGHT_MODEL_AMBIENT.
GLfloat black[4] = { 0.0, 0.0, 0.0, 1.0 }; GLfloat black[4] = { 0.0, 0.0, 0.0, 1.0 };
ssgGetLight( 0 ) -> setColour( GL_AMBIENT, black );
glLightModelfv( GL_LIGHT_MODEL_AMBIENT, l->scene_ambient ); glLightModelfv( GL_LIGHT_MODEL_AMBIENT, l->scene_ambient );
glLightfv( GL_LIGHT0, GL_AMBIENT, black ); ssgGetLight( 0 ) -> setColour( GL_DIFFUSE, l->scene_diffuse );
glLightfv( GL_LIGHT0, GL_DIFFUSE, l->scene_diffuse ); // ssgGetLight( 0 ) -> setColour( GL_SPECULAR, l->scene_white );
// glLightfv(GL_LIGHT0, GL_SPECULAR, white );
// texture parameters // texture parameters
// glEnable( GL_TEXTURE_2D ); // glEnable( GL_TEXTURE_2D );
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ) ; glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ) ;
glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ) ; glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ) ;
// set base color (I don't think this is doing anything here)
// glMaterialfv (GL_FRONT, GL_AMBIENT, white);
// (GL_FRONT, GL_DIFFUSE, white);
// glMaterialfv (GL_FRONT, GL_SPECULAR, white);
// glMaterialfv (GL_FRONT, GL_SHININESS, mat_shininess);
sgVec3 sunpos;
sgSetVec3( sunpos, l->sun_vec[0], l->sun_vec[1], l->sun_vec[2] );
ssgGetLight( 0 ) -> setPosition( sunpos );
// glMatrixMode( GL_PROJECTION ); // glMatrixMode( GL_PROJECTION );
// glLoadIdentity(); // glLoadIdentity();
@ -756,7 +754,7 @@ void fgUpdateTimeDepCalcs() {
multi_loop = (long)(((double)elapsed * 0.000001) / multi_loop = (long)(((double)elapsed * 0.000001) /
cur_fdm_state->get_delta_t() ); cur_fdm_state->get_delta_t() );
cur_fdm_state->set_multi_loop( multi_loop ); cur_fdm_state->set_multi_loop( multi_loop );
long remainder = elapsed - ( (multi_loop*1000000) * long remainder = elapsed - (long)( (multi_loop*1000000) *
cur_fdm_state->get_delta_t() ); cur_fdm_state->get_delta_t() );
cur_fdm_state->set_remainder( remainder ); cur_fdm_state->set_remainder( remainder );
// cout << "remainder = " << remainder << endl; // cout << "remainder = " << remainder << endl;
@ -1655,8 +1653,7 @@ void fgLoadDCS(void) {
// int j=0; // int j=0;
char obj_filename[25]; char obj_filename[25];
for (int k=0;k<32;k++) for ( int k = 0; k < 32; k++ ) {
{
ship_pos[k]=NULL; ship_pos[k]=NULL;
} }
@ -1666,62 +1663,64 @@ void fgLoadDCS(void) {
sg_gzifstream in( tile_path.str() ); sg_gzifstream in( tile_path.str() );
if ( ! in.is_open() ) { if ( ! in.is_open() ) {
SG_LOG( SG_TERRAIN, SG_ALERT, "Cannot open file: " << tile_path.str() ); SG_LOG( SG_TERRAIN, SG_ALERT, "Cannot open file: " << tile_path.str() );
} else {
SGPath modelpath( globals->get_fg_root() );
modelpath.append( "Models" );
modelpath.append( "Geometry" );
SGPath texturepath( globals->get_fg_root() );
texturepath.append( "Models" );
texturepath.append( "Textures" );
ssgModelPath( (char *)modelpath.c_str() );
ssgTexturePath( (char *)texturepath.c_str() );
ship_sel = new ssgSelector;
char c;
while ( ! in.eof() ) {
in >> ::skipws;
if ( in.get( c ) && c == '#' ) {
in >> skipeol;
} else {
in.putback(c);
in >> obj_filename >> obj_lat[objc] >> obj_lon[objc] >> obj_alt[objc];
/* cout << endl << obj_filename << " " << obj_lat[objc] << " " << obj_lon[objc] << " " << obj_alt[objc] << endl;
int chj=getchar();*/
obj_lon[objc] *=SGD_DEGREES_TO_RADIANS;
obj_lat[objc] *=SGD_DEGREES_TO_RADIANS;
ship_pos[objc] = new ssgTransform;
// type "repeat" in objects.txt to load one more
// instance of the last object.
if ( strcmp(obj_filename,"repeat") != 0) {
ship_obj = ssgLoadOBJ( obj_filename );
}
if ( ship_obj != NULL ) {
ship_pos[objc]->addKid( ship_obj ); // add object to transform node
ship_sel->addKid( ship_pos[objc] ); // add transform node to selector
} else {
SG_LOG( SG_TERRAIN, SG_ALERT, "Cannot open file: "
<< obj_filename );
}
objc++;
if (in.eof()) break;
}
} // while
SG_LOG ( SG_TERRAIN, SG_ALERT, "Finished object processing." );
ship_sel->clrTraversalMaskBits( SSGTRAV_HOT );
scene->addKid( ship_sel ); //add selector node to root node
} }
SGPath modelpath( globals->get_fg_root() );
modelpath.append( "Models" );
modelpath.append( "Geometry" );
SGPath texturepath( globals->get_fg_root() );
texturepath.append( "Models" );
texturepath.append( "Textures" );
ssgModelPath( (char *)modelpath.c_str() );
ssgTexturePath( (char *)texturepath.c_str() );
ship_sel = new ssgSelector;
char c;
while ( ! in.eof() )
{
in >> ::skipws;
if ( in.get( c ) && c == '#' )
{
in >> skipeol;
}
else
{
in.putback(c);
in >> obj_filename >> obj_lat[objc] >> obj_lon[objc] >> obj_alt[objc];
/* cout << endl << obj_filename << " " << obj_lat[objc] << " " << obj_lon[objc] << " " << obj_alt[objc] << endl;
int chj=getchar();*/
obj_lon[objc] *=SGD_DEGREES_TO_RADIANS;
obj_lat[objc] *=SGD_DEGREES_TO_RADIANS;
ship_pos[objc] = new ssgTransform;
// type "repeat" in objects.txt to load one more instance of the last object.
if ( strcmp(obj_filename,"repeat") != 0)
ship_obj = ssgLoadOBJ( obj_filename );
if ( ship_obj != NULL )
{
ship_pos[objc]->addKid( ship_obj ); // add object to transform node
ship_sel->addKid( ship_pos[objc] ); // add transform node to selector
}
else
SG_LOG( SG_TERRAIN, SG_ALERT, "Cannot open file: " << obj_filename );
if (in.eof()) break;
objc++;
}
} // while
ship_sel->clrTraversalMaskBits( SSGTRAV_HOT );
scene->addKid( ship_sel ); //add selector node to root node
return; return;
} }
@ -1740,15 +1739,13 @@ void fgUpdateDCS (void) {
// Deck should be the first object in objects.txt in case of fdm=ada // Deck should be the first object in objects.txt in case of fdm=ada
if (fgGetString("/sim/flight-model") == "ada") if (fgGetString("/sim/flight-model") == "ada") {
{ obj_lon[0] = fdm->get_aux5()*SGD_DEGREES_TO_RADIANS;
obj_lon[0] = fdm->get_aux5()*SGD_DEGREES_TO_RADIANS; obj_lat[0] = fdm->get_aux6()*SGD_DEGREES_TO_RADIANS;
obj_lat[0] = fdm->get_aux6()*SGD_DEGREES_TO_RADIANS; obj_alt[0] = fdm->get_aux7();
obj_alt[0] = fdm->get_aux7();
} }
for (int m=0; m<=objc; m++) for ( int m = 0; m < objc; m++ ) {
{
//cout << endl << obj_lat[m]*SGD_RADIANS_TO_DEGREES << " " << obj_lon[m]*SGD_RADIANS_TO_DEGREES << " " << obj_alt[m] << " " << objc << endl; //cout << endl << obj_lat[m]*SGD_RADIANS_TO_DEGREES << " " << obj_lon[m]*SGD_RADIANS_TO_DEGREES << " " << obj_alt[m] << " " << objc << endl;
//int v=getchar(); //int v=getchar();
@ -1790,9 +1787,10 @@ void fgUpdateDCS (void) {
sgSetCoord(&shippos, sgTUX ); sgSetCoord(&shippos, sgTUX );
ship_pos[m]->setTransform( &shippos ); ship_pos[m]->setTransform( &shippos );
} }
if ( ship_sel != NULL ) if ( ship_sel != NULL ) {
ship_sel->select(0xFFFFFFFF); ship_sel->select(0xFFFFFFFF);
} }
}
// $$$ end - added VS Renganathan, 15 Oct 2K // $$$ end - added VS Renganathan, 15 Oct 2K
// added Venky , 12 Nov 2K // added Venky , 12 Nov 2K