From faba01d912495ca8ee5912a3c20028411332c92a Mon Sep 17 00:00:00 2001 From: TheRedShip Date: Thu, 20 Feb 2025 00:15:03 +0100 Subject: [PATCH] + Tp protection --- srcs/class/Camera.cpp | 9 ++++++++- srcs/class/Scene.cpp | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/srcs/class/Camera.cpp b/srcs/class/Camera.cpp index 6b3a582..994ced3 100644 --- a/srcs/class/Camera.cpp +++ b/srcs/class/Camera.cpp @@ -79,6 +79,13 @@ void Camera::update(Scene *scene, float delta_time, Renderer &renderer) int Camera::portalTeleport(Scene *scene, float delta_time, Renderer &renderer) { + static bool tp_last_frame = false; + if (tp_last_frame) + { + tp_last_frame = false; + return (0); + } + for (const GPUObject &obj : scene->getObjectData()) { if (obj.type != (int)Object::Type::PORTAL) @@ -109,6 +116,7 @@ int Camera::portalTeleport(Scene *scene, float delta_time, Renderer &renderer) if (distance_portal <= distance_future_pos && glm::dot(glm::normalize(future_pos - _position), obj.normal) > 0.0f) { std::cout << "Teleport" << std::endl; + tp_last_frame = true; GPUObject linked_portal = scene->getObjectData()[obj.radius]; @@ -129,7 +137,6 @@ int Camera::portalTeleport(Scene *scene, float delta_time, Renderer &renderer) float remaining_distance = distance_future_pos - distance_portal + imprecision; glm::vec3 new_movement = remaining_distance * portal_transform * linked_portal.normal; - _position = linked_portal.position + transformed_relative_pos - new_movement; // _position = (linked_portal.position) + (_position - obj.position) - (((distance_future_pos - distance_portal + imprecision)) * linked_portal.normal); diff --git a/srcs/class/Scene.cpp b/srcs/class/Scene.cpp index bc6dbe0..f8ee49a 100644 --- a/srcs/class/Scene.cpp +++ b/srcs/class/Scene.cpp @@ -36,8 +36,8 @@ Scene::Scene(std::string &name) _gpu_denoise.enabled = 0; _gpu_denoise.pass = 0; _gpu_denoise.c_phi = 0.4f; - _gpu_denoise.p_phi = 0.01f; - _gpu_denoise.n_phi = 0.01f; + _gpu_denoise.p_phi = 0.05f; + _gpu_denoise.n_phi = 0.05f; if (!file.is_open()) {