# include <windows.h>
#endif
-#include <GL/gl.h>
-
#include <simgear/compiler.h>
+#include SG_GL_H
+
#ifdef SG_MATH_EXCEPTION_CLASH
# define exception c_exception
#endif
_diffuse_tbl( NULL ),
_specular_tbl( NULL ),
_sky_tbl( NULL ),
- _sun_rotation( 0.0 ),
_prev_sun_angle(-9999.0),
+ _sun_rotation( 0.0 ),
_dt_total( 0.0 )
{
}
void FGLight::update_sky_color () {
// if the 4th field is 0.0, this specifies a direction ...
- const GLfloat white[4] = { 1.0, 1.0, 1.0, 1.0 };
- const GLfloat base_sky_color[4] = { 0.39, 0.50, 0.74, 1.0 };
+ // const GLfloat white[4] = { 1.0, 1.0, 1.0, 1.0 };
+ const GLfloat base_sky_color[4] = { 0.31, 0.43, 0.69, 1.0 };
const GLfloat base_fog_color[4] = { 0.84, 0.87, 1.0, 1.0 };
SG_LOG( SG_EVENT, SG_INFO, "Updating light parameters." );
float avf = 0.87 - (45000 - av) / 83333.33;
float sif = 0.5 - cos(_sun_angle*2)/2;
+ if (sif < 1e-4)
+ sif = 1e-4;
+
float rf1 = fabs((rotation - SGD_PI) / SGD_PI); // 0.0 .. 1.0
float rf2 = avf * pow(rf1 * rf1, 1/sif);
float rf3 = 0.94 - rf2;