void WorldWeather::update_sky() { float frac_cycle = time * 1.0f / time_per_day; float frac_day = 0.5f + 0.5f * cosf(frac_cycle * 2 * M_PI); float frac_night = 0.5f + 0.5f * sinf(frac_cycle * 2 * M_PI); Rotation* tilt = skybox->get_angle(); tilt->set_angle(glm::angleAxis((float)(frac_cycle * 2 * M_PI), fvec3(0,0,1))); dir_light.direction = fvec3(0.5f - frac_day, 0.4f, 0.2f); dir_light.direction = glm::normalize(dir_light.direction); float sun_x; if (frac_cycle < 0.5f) { // daytime sun_x = 0.5f; } else { sun_x = 0.0f; } }