VG_STATIC void world_prerender( world_instance *world )
{
- static double g_time = 0.0;
- g_time += vg.time_delta * (1.0/(k_day_length*60.0));
+ world->time += vg.time_delta * (1.0/(k_day_length*60.0));
struct ub_world_lighting *state = &world->ub_lighting;
- state->g_time = g_time;
+ state->g_time = world->time;
state->g_realtime = vg.time;
state->g_debug_indices = k_debug_light_indices;
state->g_light_preview = k_light_preview;
state->g_debug_complexity = k_debug_light_complexity;
- state->g_time_of_day = vg_fractf( g_time );
+ state->g_time_of_day = vg_fractf( world->time );
state->g_day_phase = cosf( state->g_time_of_day * VG_PIf * 2.0f );
state->g_sunset_phase= cosf( state->g_time_of_day * VG_PIf * 4.0f + VG_PIf );
state->g_sun_dir[2] = 0.2f;
v3_normalize( state->g_sun_dir );
-
world->probabilities[ k_probability_curve_constant ] = 1.0f;
-
float dp = state->g_day_phase;
world->probabilities[ k_probability_curve_wildlife_day ] =
world->probabilities[ k_probability_curve_wildlife_night ] =
1.0f-powf(fabsf((state->g_time_of_day-0.5f)*5.0f),5.0f);
-
glBindBuffer( GL_UNIFORM_BUFFER, world->ubo_lighting );
glBufferSubData( GL_UNIFORM_BUFFER, 0,
sizeof(struct ub_world_lighting), &world->ub_lighting );