#include "sphere.hxx"
#include "oursun.hxx"
+static double sun_exp2_punch_through;
+
// Set up sun rendering call backs
static int sgSunOrbPreDraw( ssgEntity *e ) {
/* cout << endl << "Sun orb pre draw" << endl << "----------------"
if (prev_sun_angle != sun_angle) {
prev_sun_angle = sun_angle;
- float sun_factor = 4*cos(sun_angle);
+ double nv = (new_visibility > 5000.0) ? new_visibility : 5000.0;
+ double vis_factor = 10000.0 / (nv - 5000.0);
+ if ( vis_factor < 0.25 ) {
+ vis_factor = 0.25;
+ } else if ( vis_factor > 1.0) {
+ vis_factor = 1.0;
+ }
+
+ float sun_factor = 4 * (cos(sun_angle) + cos(sun_angle)/2) * vis_factor;
if (sun_factor > 1) sun_factor = 1.0;
if (sun_factor < -1) sun_factor = -1.0;
- sun_factor = sun_factor/2 + 0.5;
+ sun_factor = (sun_factor/2) + 0.5;
sgVec4 color;
color[1] = sqrt(sun_factor);