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