From ad3c0666e2680ab2b8b6029e5fdd9b2dbd98921b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9?= <noe.artru@polytechnique.org> Date: Tue, 25 Apr 2023 11:09:58 +0200 Subject: [PATCH] Bigger terrain with mountain features Speed with ctrl --- .../camera_controller_first_person_euler.cpp | 4 ++-- .../camera_controller_first_person_euler.hpp | 2 +- projet-code/scenes_inf443/base/base.exe | Bin 2062848 -> 2062848 bytes projet-code/scenes_inf443/base/src/scene.cpp | 17 ++++++++++++----- projet-code/scenes_inf443/base/src/scene.hpp | 5 +++-- .../scenes_inf443/base/src/terrain.cpp | 10 +++++----- 6 files changed, 23 insertions(+), 15 deletions(-) diff --git a/projet-code/cgp/library/cgp/graphics/camera/camera_controller/camera_controller_first_person_euler/camera_controller_first_person_euler.cpp b/projet-code/cgp/library/cgp/graphics/camera/camera_controller/camera_controller_first_person_euler/camera_controller_first_person_euler.cpp index 3e55f24..99c18b7 100644 --- a/projet-code/cgp/library/cgp/graphics/camera/camera_controller/camera_controller_first_person_euler/camera_controller_first_person_euler.cpp +++ b/projet-code/cgp/library/cgp/graphics/camera/camera_controller/camera_controller_first_person_euler/camera_controller_first_person_euler.cpp @@ -59,14 +59,14 @@ namespace cgp } - void camera_controller_first_person_euler::idle_frame(mat4& camera_matrix_view) + void camera_controller_first_person_euler::idle_frame(mat4& camera_matrix_view, float speed) { // Preconditions assert_cgp_no_msg(inputs != nullptr); assert_cgp_no_msg(window != nullptr); if (!is_active) return; - float const magnitude = 2*inputs->time_interval; + float const magnitude = 2*speed*inputs->time_interval; // displacement with WSAD if (inputs->keyboard.is_pressed(GLFW_KEY_R)) diff --git a/projet-code/cgp/library/cgp/graphics/camera/camera_controller/camera_controller_first_person_euler/camera_controller_first_person_euler.hpp b/projet-code/cgp/library/cgp/graphics/camera/camera_controller/camera_controller_first_person_euler/camera_controller_first_person_euler.hpp index ed50427..c096df0 100644 --- a/projet-code/cgp/library/cgp/graphics/camera/camera_controller/camera_controller_first_person_euler/camera_controller_first_person_euler.hpp +++ b/projet-code/cgp/library/cgp/graphics/camera/camera_controller/camera_controller_first_person_euler/camera_controller_first_person_euler.hpp @@ -15,7 +15,7 @@ namespace cgp // Keys up/down/left/right used to translate the camera //void idle_frame(camera_orbit_spherical_coord& camera); - void idle_frame(mat4& camera_matrix_view); + void idle_frame(mat4& camera_matrix_view, float speed); void update(mat4& camera_matrix_view); diff --git a/projet-code/scenes_inf443/base/base.exe b/projet-code/scenes_inf443/base/base.exe index 24701fe16285e7387caa880fbddff8396332114f..dcd778d0a84e94803cc63c04846e76045bacda2f 100644 GIT binary patch delta 5320 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 delta 5196 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 F^FOrDAZGvo diff --git a/projet-code/scenes_inf443/base/src/scene.cpp b/projet-code/scenes_inf443/base/src/scene.cpp index 1e02500..b836787 100644 --- a/projet-code/scenes_inf443/base/src/scene.cpp +++ b/projet-code/scenes_inf443/base/src/scene.cpp @@ -7,11 +7,11 @@ #include "terrain.hpp" using namespace cgp; -int num_trees = 50; -int num_grass = 100; +int num_trees = 200; +int num_grass = 200; std::vector<vec3> tree_position; std::vector<vec3> grass_position; -float terrain_length = 50; +float terrain_length = 250; void scene_structure::initialize() { @@ -23,13 +23,14 @@ void scene_structure::initialize() //camera_control.look_at({ 20.0f,15.0f,15.0f }, {0,0,0}); //for first person camera + camera_control.camera_model.position_camera = { 0,0,evaluate_terrain_height(0,0,terrain_length)+10}; camera_control.camera_model.set_rotation_axis({ 0,0,1 }); //custum function we added to ..first_person_euler camera_control.trap_cursor(gui.trap_cursor); global_frame.initialize_data_on_gpu(mesh_primitive_frame()); - int N_terrain_samples = 100; + int N_terrain_samples = 500; mesh const terrain_mesh = create_terrain_mesh(N_terrain_samples, terrain_length); terrain.initialize_data_on_gpu(terrain_mesh); terrain.material.color = { 0.6f,0.85f,0.5f }; @@ -292,6 +293,7 @@ void scene_structure::display_gui() ImGui::SliderFloat("Time", &timer_mvt.t, timer_mvt.t_min, timer_mvt.t_max); ImGui::SliderFloat("Time scale", &timer_mvt.scale, 0.0f, 2.0f); ImGui::SliderFloat("K", &gui.k, 0.0f, 10.0f); + ImGui::SliderFloat("Speed", &gui.speed, 0.0f, 10.0f); // Display the GUI associated to the key position keyframe.display_gui(); @@ -322,5 +324,10 @@ void scene_structure::keyboard_event() } void scene_structure::idle_frame() { - camera_control.idle_frame(environment.camera_view); + if (camera_control.inputs->keyboard.ctrl) { + camera_control.idle_frame(environment.camera_view, 10); + } + else { + camera_control.idle_frame(environment.camera_view, gui.speed); + } } \ No newline at end of file diff --git a/projet-code/scenes_inf443/base/src/scene.hpp b/projet-code/scenes_inf443/base/src/scene.hpp index dd142fe..09df3ae 100644 --- a/projet-code/scenes_inf443/base/src/scene.hpp +++ b/projet-code/scenes_inf443/base/src/scene.hpp @@ -22,8 +22,9 @@ struct gui_parameters { bool display_frame = true; bool display_wireframe = false; float k = 0.5f; - bool trap_cursor = true; - bool fly = false; + bool trap_cursor = false; + bool fly = true; + float speed = 1.0f; }; // The structure of the custom scene diff --git a/projet-code/scenes_inf443/base/src/terrain.cpp b/projet-code/scenes_inf443/base/src/terrain.cpp index 4b05afa..183651a 100644 --- a/projet-code/scenes_inf443/base/src/terrain.cpp +++ b/projet-code/scenes_inf443/base/src/terrain.cpp @@ -19,13 +19,13 @@ float evaluate_terrain_height(float x, float y, float terrain_length) } perlin_noise_parameters parameters; - parameters.terrain_height = 6.03; - parameters.octave = 5; - parameters.frequency_gain = 2.89; - parameters.persistency = 0.39; + parameters.terrain_height = 25; + parameters.octave = 9; + parameters.frequency_gain = 2.4; + parameters.persistency = 0.33; - float perlin_noise = parameters.terrain_height * noise_perlin(vec2(x / terrain_length, y / terrain_length), parameters.octave, parameters.persistency, parameters.frequency_gain); + float perlin_noise = parameters.terrain_height * noise_perlin(vec2(3*x / terrain_length, 3*y / terrain_length), parameters.octave, parameters.persistency, parameters.frequency_gain); return perlin_noise; -- GitLab