#include <msp/fs/dir.h>
+#include <msp/gl/directionallight.h>
#include <msp/gl/sequencebuilder.h>
#include <msp/gl/renderer.h>
#include <msp/gl/tests.h>
window.signal_close.connect(sigc::bind(sigc::mem_fun(this, &DesertPillars::exit), 0));
keyboard.signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &DesertPillars::key_press), false));
- GL::Light &sun = resources.get<GL::Light>("Sun.light");
- sky = make_unique<GL::Sky>(content, sun);
+ env_seq = make_unique<GL::Sequence>();
+ env_seq->set_clear_enabled(true);
+ env_seq->set_debug_name("Environment sequence");
+
+ global_env = make_unique<GL::EnvironmentMap>(32, GL::RGB16F, 2, content, *env_seq);
+ global_env->set_fixed_position(GL::Vector3(0.0f, 0.0f, 0.0f));
+ global_env->set_debug_name("Global environment");
+
+ GL::DirectionalLight &sun = resources.get<GL::DirectionalLight>("Sun.light");
+ sky = make_unique<GL::Sky>(*global_env, sun);
sky->set_debug_name("Sky");
- unsigned shadow_size = 8192;
- shadow_seq = make_unique<GL::Sequence>(shadow_size, shadow_size);
+ shadow_seq = make_unique<GL::Sequence>();
+ shadow_seq->set_clear_enabled(true);
shadow_seq->set_debug_name("Shadow sequence");
GL::Sequence::Step *step = &shadow_seq->add_step("shadow", content);
- step->set_depth_test(&GL::DepthTest::lequal());
+ step->set_depth_test(GL::LEQUAL);
- shadow_map = make_unique<GL::ShadowMap>(shadow_size, *sky, sun, *shadow_seq);
+ shadow_map = make_unique<GL::ShadowMap>(8192, *sky, sun, *shadow_seq);
shadow_map->set_debug_name("Shadow map");
shadow_map->set_target(GL::Vector3(0.0f, 0.0f, 0.0f), 20.0f);
seq_bld.set_debug_name("Main sequence");
sequence.reset(seq_bld.build(view));
- unsigned env_size = 256;
- env_seq = make_unique<GL::Sequence>(env_size, env_size);
- env_seq->set_debug_name("Environment sequence");
step = &env_seq->add_step("", *shadow_map);
step->set_lighting(&resources.get<GL::Lighting>("Desert.lightn"));
- step->set_depth_test(&GL::DepthTest::lequal());
+ step->set_depth_test(GL::LEQUAL);
env_map = make_unique<GL::EnvironmentMap>(256, GL::RGB16F, 7, sphere, *env_seq);
env_map->set_debug_name("Environment map");