Tweaked time of day lighting equations. Don't draw stars during the day.
This commit is contained in:
parent
1ba17de9ba
commit
3b5f599f73
4 changed files with 58 additions and 28 deletions
|
@ -141,7 +141,7 @@ static void fgUpdateViewParams() {
|
||||||
struct FLIGHT *f;
|
struct FLIGHT *f;
|
||||||
struct fgTIME *t;
|
struct fgTIME *t;
|
||||||
struct VIEW *v;
|
struct VIEW *v;
|
||||||
double x_2, x_4, x_8;
|
double x_2, x_4, x_8, x_10;
|
||||||
double ambient, diffuse, sky;
|
double ambient, diffuse, sky;
|
||||||
GLfloat color[4] = { 1.0, 1.0, 0.50, 1.0 };
|
GLfloat color[4] = { 1.0, 1.0, 0.50, 1.0 };
|
||||||
GLfloat amb[3], diff[3], fog[4], clear[4];
|
GLfloat amb[3], diff[3], fog[4], clear[4];
|
||||||
|
@ -178,10 +178,19 @@ static void fgUpdateViewParams() {
|
||||||
x_2 = t->sun_angle * t->sun_angle;
|
x_2 = t->sun_angle * t->sun_angle;
|
||||||
x_4 = x_2 * x_2;
|
x_4 = x_2 * x_2;
|
||||||
x_8 = x_4 * x_4;
|
x_8 = x_4 * x_4;
|
||||||
|
x_10 = x_8 * x_2;
|
||||||
|
|
||||||
ambient = 0.4 * pow(1.5, -x_8 / 20.0);
|
ambient = 0.4 * pow(1.2, -x_10 / 30.0);
|
||||||
diffuse = 0.4 * cos(0.55 * x_2);
|
|
||||||
sky = 0.85 * pow(1.6, -x_4 / 2.0) + 0.15;
|
/* diffuse = 0.4 * cos(0.3 * x_2);
|
||||||
|
if ( t->sun_angle > FG_PI_2 + 0.05 ) {
|
||||||
|
diffuse = 0.0;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
diffuse = ambient;
|
||||||
|
|
||||||
|
sky = 0.85 * pow(1.2, -x_8 / 20.0) + 0.15;
|
||||||
|
|
||||||
if ( ambient < 0.1 ) { ambient = 0.1; }
|
if ( ambient < 0.1 ) { ambient = 0.1; }
|
||||||
if ( diffuse < 0.0 ) { diffuse = 0.0; }
|
if ( diffuse < 0.0 ) { diffuse = 0.0; }
|
||||||
|
@ -566,9 +575,12 @@ int main( int argc, char *argv[] ) {
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.17 1997/09/16 15:50:29 curt
|
/* Revision 1.18 1997/09/16 22:14:51 curt
|
||||||
/* Working on star alignment and time issues.
|
/* Tweaked time of day lighting equations. Don't draw stars during the day.
|
||||||
/*
|
/*
|
||||||
|
* Revision 1.17 1997/09/16 15:50:29 curt
|
||||||
|
* Working on star alignment and time issues.
|
||||||
|
*
|
||||||
* Revision 1.16 1997/09/13 02:00:06 curt
|
* Revision 1.16 1997/09/13 02:00:06 curt
|
||||||
* Mostly working on stars and generating sidereal time for accurate star
|
* Mostly working on stars and generating sidereal time for accurate star
|
||||||
* placement.
|
* placement.
|
||||||
|
|
|
@ -203,33 +203,42 @@ void fgStarsRender() {
|
||||||
t = &cur_time_params;
|
t = &cur_time_params;
|
||||||
v = ¤t_view;
|
v = ¤t_view;
|
||||||
|
|
||||||
printf("RENDERING STARS\n");
|
/* FG_PI_2 + 0.1 is about 6 degrees after sundown and before sunrise */
|
||||||
|
|
||||||
glDisable( GL_FOG );
|
if ( t->sun_angle > (FG_PI_2 + 0.1 ) ) {
|
||||||
glDisable( GL_LIGHTING );
|
printf("RENDERING STARS (night)\n");
|
||||||
glPushMatrix();
|
|
||||||
|
|
||||||
glTranslatef( v->view_pos.x, v->view_pos.y, v->view_pos.z );
|
glDisable( GL_FOG );
|
||||||
|
glDisable( GL_LIGHTING );
|
||||||
|
glPushMatrix();
|
||||||
|
|
||||||
angle = FG_2PI * t->lst / 24.0;
|
glTranslatef( v->view_pos.x, v->view_pos.y, v->view_pos.z );
|
||||||
/* warp += 1.0 * DEG_TO_RAD; */
|
|
||||||
warp = 15.0 * DEG_TO_RAD;
|
|
||||||
glRotatef( -(angle+warp) * RAD_TO_DEG, 0.0, 0.0, 1.0 );
|
|
||||||
printf("Rotating stars by %.2f + %.2f\n", -angle * RAD_TO_DEG,
|
|
||||||
-warp * RAD_TO_DEG);
|
|
||||||
|
|
||||||
glCallList(stars);
|
angle = FG_2PI * t->lst / 24.0;
|
||||||
|
/* warp += 1.0 * DEG_TO_RAD; */
|
||||||
|
warp = 15.0 * DEG_TO_RAD;
|
||||||
|
glRotatef( -(angle+warp) * RAD_TO_DEG, 0.0, 0.0, 1.0 );
|
||||||
|
printf("Rotating stars by %.2f + %.2f\n", -angle * RAD_TO_DEG,
|
||||||
|
-warp * RAD_TO_DEG);
|
||||||
|
|
||||||
glPopMatrix();
|
glCallList(stars);
|
||||||
glEnable( GL_LIGHTING );
|
|
||||||
glEnable( GL_FOG );
|
glPopMatrix();
|
||||||
|
glEnable( GL_LIGHTING );
|
||||||
|
glEnable( GL_FOG );
|
||||||
|
} else {
|
||||||
|
printf("not RENDERING STARS (day)\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.7 1997/09/16 15:50:31 curt
|
/* Revision 1.8 1997/09/16 22:14:52 curt
|
||||||
/* Working on star alignment and time issues.
|
/* Tweaked time of day lighting equations. Don't draw stars during the day.
|
||||||
/*
|
/*
|
||||||
|
* Revision 1.7 1997/09/16 15:50:31 curt
|
||||||
|
* Working on star alignment and time issues.
|
||||||
|
*
|
||||||
* Revision 1.6 1997/09/05 14:17:31 curt
|
* Revision 1.6 1997/09/05 14:17:31 curt
|
||||||
* More tweaking with stars.
|
* More tweaking with stars.
|
||||||
*
|
*
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
VERSION = 0.11
|
VERSION = 0.12
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Choose your weapons
|
# Choose your weapons
|
||||||
|
@ -120,6 +120,9 @@ FG_CFLAGS = $(GLOBAL_CFLAGS)
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# $Log$
|
# $Log$
|
||||||
|
# Revision 1.14 1997/09/16 22:14:47 curt
|
||||||
|
# Tweaked time of day lighting equations. Don't draw stars during the day.
|
||||||
|
#
|
||||||
# Revision 1.13 1997/09/04 02:17:19 curt
|
# Revision 1.13 1997/09/04 02:17:19 curt
|
||||||
# Shufflin' stuff.
|
# Shufflin' stuff.
|
||||||
#
|
#
|
||||||
|
|
|
@ -149,7 +149,6 @@ double sidereal_course(struct tm *gmt, time_t now, double lng) {
|
||||||
struct tm mt;
|
struct tm mt;
|
||||||
long int offset;
|
long int offset;
|
||||||
double diff, part, days, hours, lst;
|
double diff, part, days, hours, lst;
|
||||||
int i;
|
|
||||||
|
|
||||||
printf("COURSE: GMT = %d/%d/%2d %d:%02d:%02d\n",
|
printf("COURSE: GMT = %d/%d/%2d %d:%02d:%02d\n",
|
||||||
gmt->tm_mon, gmt->tm_mday, gmt->tm_year,
|
gmt->tm_mon, gmt->tm_mday, gmt->tm_year,
|
||||||
|
@ -201,10 +200,14 @@ double sidereal_course(struct tm *gmt, time_t now, double lng) {
|
||||||
|
|
||||||
void fgTimeUpdate(struct FLIGHT *f, struct fgTIME *t) {
|
void fgTimeUpdate(struct FLIGHT *f, struct fgTIME *t) {
|
||||||
double lst_precise, lst_course;
|
double lst_precise, lst_course;
|
||||||
|
static long int warp = 0;
|
||||||
|
|
||||||
/* get current Unix calendar time (in seconds) */
|
/* get current Unix calendar time (in seconds) */
|
||||||
|
/* warp += 120; */
|
||||||
|
warp = 0;
|
||||||
t->cur_time = time(NULL);
|
t->cur_time = time(NULL);
|
||||||
printf("Current Unix calendar time = %ld\n", t->cur_time);
|
t->cur_time += warp;
|
||||||
|
printf("Current Unix calendar time = %ld warp = %ld\n", t->cur_time, warp);
|
||||||
|
|
||||||
/* get GMT break down for current time */
|
/* get GMT break down for current time */
|
||||||
t->gmt = gmtime(&t->cur_time);
|
t->gmt = gmtime(&t->cur_time);
|
||||||
|
@ -249,9 +252,12 @@ void fgTimeUpdate(struct FLIGHT *f, struct fgTIME *t) {
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.4 1997/09/16 15:50:31 curt
|
/* Revision 1.5 1997/09/16 22:14:52 curt
|
||||||
/* Working on star alignment and time issues.
|
/* Tweaked time of day lighting equations. Don't draw stars during the day.
|
||||||
/*
|
/*
|
||||||
|
* Revision 1.4 1997/09/16 15:50:31 curt
|
||||||
|
* Working on star alignment and time issues.
|
||||||
|
*
|
||||||
* Revision 1.3 1997/09/13 02:00:08 curt
|
* Revision 1.3 1997/09/13 02:00:08 curt
|
||||||
* Mostly working on stars and generating sidereal time for accurate star
|
* Mostly working on stars and generating sidereal time for accurate star
|
||||||
* placement.
|
* placement.
|
||||||
|
|
Loading…
Add table
Reference in a new issue