X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=demos%2Fdesertpillars%2Fsource%2Fdesertpillars.cpp;h=84583551a75d484ca9a2c52d55680897738c6873;hb=0b76663;hp=124df81cfb14e4cb41271c98ee9df943919bf7bd;hpb=b206e8ed328e63c0e3aef33e9aad61ce49496c8b;p=libs%2Fgl.git diff --git a/demos/desertpillars/source/desertpillars.cpp b/demos/desertpillars/source/desertpillars.cpp index 124df81c..84583551 100644 --- a/demos/desertpillars/source/desertpillars.cpp +++ b/demos/desertpillars/source/desertpillars.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -34,17 +35,25 @@ DesertPillars::DesertPillars(int, char **): 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("Sun.light"); - sky = make_unique(content, sun); + env_seq = make_unique(); + env_seq->set_clear_enabled(true); + env_seq->set_debug_name("Environment sequence"); + + global_env = make_unique(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("Sun.light"); + sky = make_unique(*global_env, sun); sky->set_debug_name("Sky"); - unsigned shadow_size = 8192; - shadow_seq = make_unique(shadow_size, shadow_size); + shadow_seq = make_unique(); + 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(shadow_size, *sky, sun, *shadow_seq); + shadow_map = make_unique(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); @@ -53,12 +62,9 @@ DesertPillars::DesertPillars(int, char **): seq_bld.set_debug_name("Main sequence"); sequence.reset(seq_bld.build(view)); - unsigned env_size = 256; - env_seq = make_unique(env_size, env_size); - env_seq->set_debug_name("Environment sequence"); step = &env_seq->add_step("", *shadow_map); step->set_lighting(&resources.get("Desert.lightn")); - step->set_depth_test(&GL::DepthTest::lequal()); + step->set_depth_test(GL::LEQUAL); env_map = make_unique(256, GL::RGB16F, 7, sphere, *env_seq); env_map->set_debug_name("Environment map");