diff --git a/test/shadow-demo/main.cpp b/test/shadow-demo/main.cpp index fe5651e..ccae6da 100644 --- a/test/shadow-demo/main.cpp +++ b/test/shadow-demo/main.cpp @@ -37,10 +37,10 @@ void renderQuad() { glBindVertexArray(0); } -class mesh3 : public Gedeng::Application { +class ShadowDemo : public Gedeng::Application { public: - mesh3(unsigned long ms_per_update, unsigned int window_size_x, unsigned int window_size_y, - Gedeng::String window_name) + ShadowDemo(unsigned long ms_per_update, unsigned int window_size_x, unsigned int window_size_y, + Gedeng::String window_name) : Application(ms_per_update, window_size_x, window_size_y, window_name), particle_interval(0.2), number_of_steps(10.0), number_of_refinement_steps(10.0), bump_depth(0.1), render_shader(Gedeng::Shader("Shader/bump.vs", "Shader/bump.fs")), @@ -54,8 +54,8 @@ class mesh3 : public Gedeng::Application { particle_tex3("Resources/Textures/Particles/smoke.png", Gedeng::Texture::Settings()), quad_mesh(Gedeng::QuadMesh(10.0)), light(glm::vec3(0.57735, -0.57735, 0.57735)), mesh1("Resources/Meshes/Monkey.obj", Gedeng::ObjMesh::Settings()), - mesh2("Resources/Meshes/Monkey.obj", Gedeng::ObjMesh::Settings()), - mesh3("Resources/Meshes/Monkey.obj", Gedeng::ObjMesh::Settings()) { + mesh2("Resources/Meshes/bench.obj", Gedeng::ObjMesh::Settings()), + mesh3("Resources/Meshes/ring.obj", Gedeng::ObjMesh::Settings()) { particles.set_position(glm::vec3(0.0f, 0.0f, -10.0f)); particles.set_velocity(glm::vec3(-2, 4, -2), glm::vec3(2, 6, 2)); particles.set_gravity(glm::vec3(0, -4, 0)); @@ -70,9 +70,12 @@ class mesh3 : public Gedeng::Application { // camera.rotate(30, glm::vec3(1.0, 0.0, 0.0)); mesh1.translate(glm::vec3(2.0, 3.0, -2.0)); + mesh2.translate(glm::vec3(-3.0, 0.0, -3.0)); + mesh3.translate(glm::vec3(5.0, 0.0, 5.0)); + mesh3.rotate(45.0, glm::vec3(0.0, 1.0, 0.0)); } - ~mesh3() = default; + ~ShadowDemo() = default; void fixed_update(double delta) override { camera.update(delta); @@ -90,6 +93,8 @@ class mesh3 : public Gedeng::Application { // Shadows light.clear_shadows(); light.render_shadow(mesh1); + light.render_shadow(mesh2); + light.render_shadow(mesh3); light.render_shadow(quad_mesh); glViewport(0, 0, 1920, 1080); @@ -127,6 +132,8 @@ class mesh3 : public Gedeng::Application { // Props render_shader.use(); mesh1.render(render_shader); + mesh2.render(render_shader); + mesh3.render(render_shader); /* // Render the light's depth map to a quad for debugging debug_shader.use(); @@ -161,6 +168,7 @@ class mesh3 : public Gedeng::Application { Gedeng::ParticleSystem particles; Gedeng::DirectionalLight light; + Gedeng::ObjMesh mesh1; Gedeng::ObjMesh mesh2; Gedeng::ObjMesh mesh3; @@ -168,5 +176,5 @@ class mesh3 : public Gedeng::Application { Gedeng::Application *Gedeng::create_application() { GG_CLIENT_INFO("Creating Application"); - return new mesh3(20, 1920, 1080, String("Parallax Demo")); + return new ShadowDemo(20, 1920, 1080, String("Parallax Demo")); }