]> git.mxchange.org Git - flightgear.git/commitdiff
Working on tweaking lighting.
authorcurt <curt>
Tue, 9 Dec 1997 05:11:54 +0000 (05:11 +0000)
committercurt <curt>
Tue, 9 Dec 1997 05:11:54 +0000 (05:11 +0000)
Main/GLUTmain.c
Scenery/moon.c
Scenery/sun.c
Time/fg_time.c

index 89873966344e5b84545c8a834ba47439febd7a33..d8c14344376b5150f1d972b70d34afb88bafc317 100644 (file)
@@ -144,10 +144,11 @@ static void fgUpdateViewParams() {
     struct fgLIGHT *l;
     struct fgTIME *t;
     struct VIEW *v;
+
     double x_2, x_4, x_8, x_10;
     double ambient, diffuse, sky;
     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]; */
 
     f = &current_aircraft.flight;
     l = &cur_light_params;
@@ -203,31 +204,32 @@ static void fgUpdateViewParams() {
 
     if ( sky < 0.0 ) { sky = 0.0; }
 
-    amb[0] = color[0] * ambient;
-    amb[1] = color[1] * ambient;
-    amb[2] = color[2] * ambient;
+    l->scene_ambient[0] = color[0] * ambient;
+    l->scene_ambient[1] = color[1] * ambient;
+    l->scene_ambient[2] = color[2] * ambient;
 
-    diff[0] = color[0] * diffuse;
-    diff[1] = color[1] * diffuse;
-    diff[2] = color[2] * diffuse;
+    l->scene_diffuse[0] = color[0] * diffuse;
+    l->scene_diffuse[1] = color[1] * diffuse;
+    l->scene_diffuse[2] = color[2] * diffuse;
 
     /* set lighting parameters */
-    glLightfv(GL_LIGHT0, GL_AMBIENT, amb );
-    glLightfv(GL_LIGHT0, GL_DIFFUSE, diff );
+    glLightfv(GL_LIGHT0, GL_AMBIENT, l->scene_ambient );
+    glLightfv(GL_LIGHT0, GL_DIFFUSE, l->scene_diffuse );
 
     /* set fog color */
-    fog[0] = fgFogColor[0] * (ambient + diffuse);
-    fog[1] = fgFogColor[1] * (ambient + diffuse);
-    fog[2] = fgFogColor[2] * (ambient + diffuse);
-    fog[3] = fgFogColor[3];
-    glFogfv (GL_FOG_COLOR, fog);
+    l->scene_fog[0] = fgFogColor[0] * (ambient + diffuse);
+    l->scene_fog[1] = fgFogColor[1] * (ambient + diffuse);
+    l->scene_fog[2] = fgFogColor[2] * (ambient + diffuse);
+    l->scene_fog[3] = fgFogColor[3];
+    glFogfv (GL_FOG_COLOR, l->scene_fog);
 
     /* set sky color */
-    clear[0] = fgClearColor[0] * sky;
-    clear[1] = fgClearColor[1] * sky;
-    clear[2] = fgClearColor[2] * sky;
-    clear[3] = fgClearColor[3];
-    glClearColor(clear[0], clear[1], clear[2], clear[3]);
+    l->scene_clear[0] = fgClearColor[0] * sky;
+    l->scene_clear[1] = fgClearColor[1] * sky;
+    l->scene_clear[2] = fgClearColor[2] * sky;
+    l->scene_clear[3] = fgClearColor[3];
+    glClearColor(l->scene_clear[0], l->scene_clear[1], 
+                l->scene_clear[2], l->scene_clear[3]);
 }
 
 
@@ -581,9 +583,12 @@ int main( int argc, char *argv[] ) {
 
 
 /* $Log$
-/* Revision 1.26  1997/12/09 04:25:29  curt
-/* Working on adding a global lighting params structure.
+/* Revision 1.27  1997/12/09 05:11:54  curt
+/* Working on tweaking lighting.
 /*
+ * Revision 1.26  1997/12/09 04:25:29  curt
+ * Working on adding a global lighting params structure.
+ *
  * Revision 1.25  1997/12/08 22:54:09  curt
  * Enabled GL_CULL_FACE.
  *
index 56788d65692b048b6345f696070f497f4c8552fe..d8c82cdd38742d9c276b92c2254eea23250941f7 100644 (file)
 #include "../Main/views.h"
 #include "../Time/fg_time.h"
 
-struct CelestialCoord
-    moonPos;
+struct CelestialCoord moonPos;
 
 float xMoon, yMoon, zMoon;
+GLint moon;
 
 /*
 static GLfloat vdata[12][3] =
@@ -52,8 +52,6 @@ static GLuint tindices[20][3] =
    {6,1,10}, {9,0,11}, {9,11,2}, {9,2,5}, {7,2,11}
 };*/
 
-GLint moon;
-
 /* -------------------------------------------------------------
       This section contains the code that generates a yellow
       Icosahedron. It's under development... (of Course)
@@ -226,57 +224,53 @@ struct CelestialCoord fgCalculateMoon(struct OrbElements params,
 }
 
 
-void fgMoonInit()
-{
+void fgMoonInit() {
 //   int i;
-//   moon = glGenLists(1);
-//   glNewList(moon, GL_COMPILE );
-
-   fgSolarSystemUpdate(&(pltOrbElements[1]), cur_time_params);
-   moonPos = fgCalculateMoon(pltOrbElements[1], pltOrbElements[0], cur_time_params);
-   #ifdef DEBUG
-   printf("Moon found at %f (ra), %f (dec)\n", moonPos.RightAscension, moonPos.Declination);
-   #endif
-   glColor3f(1.0, 1.0, 0.0);
+    moon = glGenLists(1);
+    glNewList(moon, GL_COMPILE );
 
-   /* xMoon = 90000.0 * cos(moonPos.RightAscension) * cos(moonPos.Declination);
-   yMoon = 90000.0 * sin(moonPos.RightAscension) * cos(moonPos.Declination);
-   zMoon = 90000.0 * sin(moonPos.Declination); */
+    fgSolarSystemUpdate(&(pltOrbElements[1]), cur_time_params);
+    moonPos = fgCalculateMoon(pltOrbElements[1], pltOrbElements[0], 
+                             cur_time_params);
+#ifdef DEBUG
+    printf("Moon found at %f (ra), %f (dec)\n", moonPos.RightAscension, 
+          moonPos.Declination);
+#endif
 
-   xMoon = 60000.0 * cos(moonPos.RightAscension) * cos(moonPos.Declination);
-   yMoon = 60000.0 * sin(moonPos.RightAscension) * cos(moonPos.Declination);
-   zMoon = 60000.0 * sin(moonPos.Declination);
+    /* xMoon = 90000.0 * cos(moonPos.RightAscension) * cos(moonPos.Declination);
+       yMoon = 90000.0 * sin(moonPos.RightAscension) * cos(moonPos.Declination);
+       zMoon = 90000.0 * sin(moonPos.Declination); */
 
-//   glPushMatrix();
-//   glBegin(GL_TRIANGLES);
-   /*
-   for (i = 0; i < 20; i++)
-      subdivide(&vdata[tindices[i][0]][0],
-                &vdata[tindices[i][1]][0],
-                &vdata[tindices[i][2]][0], 3);*/
-//     glutSolidSphere(1.0, 25, 25);
+    xMoon = 60000.0 * cos(moonPos.RightAscension) * cos(moonPos.Declination);
+    yMoon = 60000.0 * sin(moonPos.RightAscension) * cos(moonPos.Declination);
+    zMoon = 60000.0 * sin(moonPos.Declination);
 
-//   glEnd();
-//   glPopMatrix();
-//   glEndList();
+    glColor3f(1.0, 1.0, 1.0);
+    glutSolidSphere(1.0, 10, 10);
+
+    glEndList();
 }
 
 
 /* Draw the moon */
 void fgMoonRender() {
+    struct fgLIGHT *l;
     GLfloat color[4] = { 1.0, 1.0, 1.0, 1.0 };
 
+    l = &cur_light_params;
+
     /* set lighting parameters */
-    glLightfv(GL_LIGHT0, GL_AMBIENT, color );
+    glLightfv(GL_LIGHT0, GL_AMBIENT, l->scene_clear );
     glLightfv(GL_LIGHT0, GL_DIFFUSE, color );
-    glMaterialfv(GL_FRONT, GL_AMBIENT, fgClearColor);
-    glMaterialfv(GL_FRONT, GL_DIFFUSE, color);
 
     glPushMatrix();
     glTranslatef(xMoon, yMoon, zMoon);
     glScalef(1400, 1400, 1400);
+
+    /* glColor3fv(color); */
     /* glutSolidSphere(1.0, 25, 25); */
-    glutSolidSphere(1.0, 15, 15);
+    glCallList(moon);
+
     glPopMatrix();
 }
 
index 92e022f6e7068de4d5cdca98ca47b1a8cc571b8b..f4ae4e9b014df8a5bb6278a19bf81930f1972fef 100644 (file)
@@ -30,8 +30,7 @@
 
 GLint sun;
 
-static struct CelestialCoord
-    sunPos;
+static struct CelestialCoord sunPos;
 
 float xSun, ySun, zSun;
 
@@ -95,15 +94,20 @@ struct CelestialCoord fgCalculateSun(struct OrbElements params, struct fgTIME t)
 void fgSunInit()
 {
 //   int i;
-//   sun = glGenLists(1);
-//   glNewList(sun, GL_COMPILE );
+
+    sun = glGenLists(1);
+    glNewList(sun, GL_COMPILE );
+
 //     glBegin( GL_POINTS );
-   fgSolarSystemUpdate(&(pltOrbElements[0]), cur_time_params);
-   sunPos = fgCalculateSun(pltOrbElements[0], cur_time_params);
-   #ifdef DEBUG
-   printf("Sun found at %f (ra), %f (dec)\n", sunPos.RightAscension, sunPos.Declination);
-   #endif
-   /* give the moon a temporary color, for testing purposes */
+
+    fgSolarSystemUpdate(&(pltOrbElements[0]), cur_time_params);
+    sunPos = fgCalculateSun(pltOrbElements[0], cur_time_params);
+#ifdef DEBUG
+    printf("Sun found at %f (ra), %f (dec)\n", sunPos.RightAscension, 
+          sunPos.Declination);
+#endif
+
+    /* give the moon a temporary color, for testing purposes */
 //   glColor3f( 0.0, 1.0, 0.0);
 //   glVertex3f( 190000.0 * cos(moonPos.RightAscension) * cos(moonPos.Declination),
  //              190000.0 * sin(moonPos.RightAscension) * cos(moonPos.Declination),
@@ -114,6 +118,7 @@ void fgSunInit()
    //xMoon = 190000.0 * cos(moonPos.RightAscension) * cos(moonPos.Declination);
    //yMoon = 190000.0 * sin(moonPos.RightAscension) * cos(moonPos.Declination);
    //zMoon = 190000.0 * sin(moonPos.Declination);
+
    xSun = 60000.0 * cos(sunPos.RightAscension) * cos(sunPos.Declination);
    ySun = 60000.0 * sin(sunPos.RightAscension) * cos(sunPos.Declination);
    zSun = 60000.0 * sin(sunPos.Declination);
@@ -129,8 +134,12 @@ void fgSunInit()
 //     glutSolidSphere(1.0, 25, 25);
 
 //     glEnd();
-   //glPopMatrix();
-//   glEndList();
+    //glPopMatrix();
+
+    glColor3f(0.85, 0.65, 0.05);
+    glutSolidSphere(1.0, 10, 10);
+
+    glEndList();
 }
 
 
@@ -176,22 +185,28 @@ void fgSunRender() {
     glMaterialfv(GL_FRONT, GL_DIFFUSE, diff); */
 
     glDisable( GL_LIGHTING );
+
     glPushMatrix();
     glTranslatef(xSun, ySun, zSun);
     glScalef(1400, 1400, 1400);
-    glColor3fv( color );
+
+    /* glColor3fv( color ); */
     /* glutSolidSphere(1.0, 25, 25); */
-    glutSolidSphere(1.0, 10, 10);
-    //glCallList(sun);
+    glCallList(sun);
+
     glPopMatrix();
+
     glEnable( GL_LIGHTING );
 }
 
 
 /* $Log$
-/* Revision 1.2  1997/11/25 19:25:39  curt
-/* Changes to integrate Durk's moon/sun code updates + clean up.
+/* Revision 1.3  1997/12/09 05:11:56  curt
+/* Working on tweaking lighting.
 /*
+ * Revision 1.2  1997/11/25 19:25:39  curt
+ * Changes to integrate Durk's moon/sun code updates + clean up.
+ *
  * Revision 1.1  1997/10/25 03:16:11  curt
  * Initial revision of code contributed by Durk Talsma.
  *
index d7bc63e7e911f26ea6573df39f4d5aa45d9b7326..0c040a22a3ff0f613acfbf047238bab84244249f 100644 (file)
@@ -233,7 +233,7 @@ void fgTimeUpdate(struct FLIGHT *f, struct fgTIME *t) {
     /* get current Unix calendar time (in seconds) */
     warp += 60; 
     /* warp = 0; */
-    t->cur_time = time(NULL) + (0) * 60 * 60;
+    t->cur_time = time(NULL) + (12) * 60 * 60;
     t->cur_time += warp;
     printf("Current Unix calendar time = %ld  warp = %ld\n", t->cur_time, warp);
 
@@ -285,9 +285,12 @@ void fgTimeUpdate(struct FLIGHT *f, struct fgTIME *t) {
 
 
 /* $Log$
-/* Revision 1.12  1997/12/09 04:25:37  curt
-/* Working on adding a global lighting params structure.
+/* Revision 1.13  1997/12/09 05:11:56  curt
+/* Working on tweaking lighting.
 /*
+ * Revision 1.12  1997/12/09 04:25:37  curt
+ * Working on adding a global lighting params structure.
+ *
  * Revision 1.11  1997/11/25 19:25:40  curt
  * Changes to integrate Durk's moon/sun code updates + clean up.
  *