From: Mikko Rasa Date: Wed, 20 Oct 2021 12:33:36 +0000 (+0300) Subject: Update desertpillars to define more things in Blender X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=commitdiff_plain;h=133ffb2c26dff240dbbda47c09b216951e07f5f5 Update desertpillars to define more things in Blender --- diff --git a/demos/desertpillars/data/exported/Desert.seq b/demos/desertpillars/data/exported/Desert.seq index be6377e9..e7d281f4 100644 --- a/demos/desertpillars/data/exported/Desert.seq +++ b/demos/desertpillars/data/exported/Desert.seq @@ -4,26 +4,76 @@ clear color 0.00000 0.00000 0.00000 0.00000; depth 1.00000; }; -step "" "content" +renderable "content" "Desert.scene"; +sequence "environment_sequence" "Desert_environment.seq" +{ + renderable "content" "sky"; +}; +effect "environment" +{ + type environment_map; + size 32; + roughness_levels 2; + fixed_position 0.00000 0.00000 0.00000; + content "content"; + environment "environment_sequence"; +}; +effect "sky" +{ + type sky; + sun "Sun.light"; + content "environment"; +}; +sequence "shadow_sequence" "Desert_shadow.seq" +{ + renderable "content" "content"; +}; +sequence "thsm_sequence" "Desert_thsm.seq" +{ + renderable "content" "content"; +}; +effect "shadow_map" +{ + type shadow_map; + size 8192 4096; + target 0.00000 0.00000 0.804577; + radius 10.4957; + content "sky"; + lighting "Desert.lightn"; + light "Sun.light" + { + size 4096; + shadow_caster "shadow_sequence"; + }; + light "Wisp.light" + { + size 2048; + shadow_caster "thsm_sequence"; + }; +}; +step "" "shadow_map" { depth_test LEQUAL; lighting "Desert.lightn"; - scene "Desert.scene"; }; -step "blended" "content" +step "blended" "shadow_map" { depth_test LEQUAL; lighting "Desert.lightn"; - scene "Desert.scene"; }; -ambient_occlusion +postprocessor { + type ambient_occlusion; occlusion_radius 0.500000; samples 32; }; -bloom; -colorcurve +postprocessor +{ + type bloom; +}; +postprocessor { + type colorcurve; exposure_adjust -1.50000; srgb; }; diff --git a/demos/desertpillars/data/exported/Desert_environment.seq b/demos/desertpillars/data/exported/Desert_environment.seq new file mode 100644 index 00000000..2c47a4fb --- /dev/null +++ b/demos/desertpillars/data/exported/Desert_environment.seq @@ -0,0 +1,16 @@ +clear +{ + color 0.00000 0.00000 0.00000 0.00000; + depth 1.00000; +}; +renderable "content"; +step "" "content" +{ + depth_test LEQUAL; + lighting "Desert.lightn"; +}; +step "blended" "content" +{ + depth_test LEQUAL; + lighting "Desert.lightn"; +}; diff --git a/demos/desertpillars/data/exported/Desert_shadow.seq b/demos/desertpillars/data/exported/Desert_shadow.seq new file mode 100644 index 00000000..f1a6dec5 --- /dev/null +++ b/demos/desertpillars/data/exported/Desert_shadow.seq @@ -0,0 +1,9 @@ +clear +{ + depth 1.00000; +}; +renderable "content"; +step "shadow" "content" +{ + depth_test LEQUAL; +}; diff --git a/demos/desertpillars/data/exported/Desert_thsm.seq b/demos/desertpillars/data/exported/Desert_thsm.seq new file mode 100644 index 00000000..25ebcae4 --- /dev/null +++ b/demos/desertpillars/data/exported/Desert_thsm.seq @@ -0,0 +1,9 @@ +clear +{ + depth 1.00000; +}; +renderable "content"; +step "shadow_thsm" "content" +{ + depth_test LEQUAL; +}; diff --git a/demos/desertpillars/scene.blend b/demos/desertpillars/scene.blend index e452b8b7..c23803f6 100644 Binary files a/demos/desertpillars/scene.blend and b/demos/desertpillars/scene.blend differ diff --git a/demos/desertpillars/source/desertpillars.cpp b/demos/desertpillars/source/desertpillars.cpp index 432c9166..542ade3b 100644 --- a/demos/desertpillars/source/desertpillars.cpp +++ b/demos/desertpillars/source/desertpillars.cpp @@ -42,43 +42,15 @@ 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)); - 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"); - - sky = make_unique(*global_env, sun); - sky->set_debug_name("Sky"); - - 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::LEQUAL); - - shadow_seq_thsm = make_unique(); - shadow_seq_thsm->set_clear_enabled(true); - shadow_seq_thsm->set_debug_name("Shadow sequence"); - step = &shadow_seq_thsm->add_step("shadow_thsm", content); - step->set_depth_test(GL::LEQUAL); - - shadow_map = make_unique(6144, 4096, *sky, lighting); - shadow_map->set_debug_name("Shadow map"); - shadow_map->add_light(sun, 4096, *shadow_seq); - shadow_map->add_light(resources.get("Wisp.light"), 2048, *shadow_seq_thsm); - shadow_map->set_target(GL::Vector3(0.0f, 0.0f, 0.0f), 20.0f); - GL::SequenceBuilder seq_bld(resources.get("Desert.seq")); - seq_bld.set_renderable("content", *shadow_map); + seq_bld.set_renderable("content", content); seq_bld.set_debug_name("Main sequence"); sequence.reset(seq_bld.build(view)); - step = &env_seq->add_step("", *shadow_map); - step->set_lighting(&lighting); - step->set_depth_test(GL::LEQUAL); + GL::SequenceBuilder env_bld(resources.get("Desert_environment.seq")); + env_bld.set_renderable("content", *sequence->get_steps().front().get_renderable()); + env_bld.set_debug_name("Environment sequence"); + env_seq.reset(env_bld.build()); env_map = make_unique(256, GL::RGB16F, 7, sphere, *env_seq); env_map->set_debug_name("Environment map"); diff --git a/demos/desertpillars/source/desertpillars.h b/demos/desertpillars/source/desertpillars.h index 18522a57..0a3f2f2e 100644 --- a/demos/desertpillars/source/desertpillars.h +++ b/demos/desertpillars/source/desertpillars.h @@ -77,13 +77,8 @@ private: Msp::GL::Camera camera; const Msp::GL::Lighting &lighting; - std::unique_ptr sky; - std::unique_ptr shadow_seq; - std::unique_ptr shadow_seq_thsm; - std::unique_ptr shadow_map; std::unique_ptr env_seq; std::unique_ptr env_map; - std::unique_ptr global_env; Msp::GL::OrderedScene content; MorphSphere sphere;