backdrop_shprog(Resources::get_global().get<Program>("_sky_backdrop.glsl.shader")),
sampler(Resources::get_global().get<Sampler>("_linear_clamp.samp")),
wrap_sampler(Resources::get_global().get<Sampler>("_linear_clamp_v.samp")),
backdrop_shprog(Resources::get_global().get<Program>("_sky_backdrop.glsl.shader")),
sampler(Resources::get_global().get<Sampler>("_linear_clamp.samp")),
wrap_sampler(Resources::get_global().get<Sampler>("_linear_clamp_v.samp")),
renderer.set_framebuffer(&transmittance_lookup.get_framebuffer());
renderer.set_shader_program(&transmittance_shprog);
renderer.set_framebuffer(&transmittance_lookup.get_framebuffer());
renderer.set_shader_program(&transmittance_shprog);
renderer.set_framebuffer(&distant.get_framebuffer());
renderer.set_shader_program(&distant_shprog);
renderer.set_texture("transmittance_lookup", &transmittance_lookup.get_target_texture(0), &sampler);
renderer.set_framebuffer(&distant.get_framebuffer());
renderer.set_shader_program(&distant_shprog);
renderer.set_texture("transmittance_lookup", &transmittance_lookup.get_target_texture(0), &sampler);
renderer.set_shader_program(&backdrop_shprog, &shdata);
renderer.set_texture("distant", &distant.get_target_texture(0), &wrap_sampler);
fullscreen_mesh.draw(renderer);
renderer.set_shader_program(&backdrop_shprog, &shdata);
renderer.set_texture("distant", &distant.get_target_texture(0), &wrap_sampler);
fullscreen_mesh.draw(renderer);
Renderable *content = get_item(renderables, content_name);
if(!content || !sun)
throw invalid_operation("Sky::Template::create");
Renderable *content = get_item(renderables, content_name);
if(!content || !sun)
throw invalid_operation("Sky::Template::create");