From 616be9e5fc20a56705d61acd3205dd70d7636141 Mon Sep 17 00:00:00 2001 From: karl Date: Sun, 9 May 2021 20:00:04 +0200 Subject: [PATCH] Fix bug in particle positioning --- Shader/particle_render.gs | 3 +-- cpp/ParticleSystem.cpp | 3 --- include/Gedeng/ParticleSystem.h | 1 - test/particle-demo/main.cpp | 2 +- 4 files changed, 2 insertions(+), 7 deletions(-) diff --git a/Shader/particle_render.gs b/Shader/particle_render.gs index 9180b7f..2109e5b 100644 --- a/Shader/particle_render.gs +++ b/Shader/particle_render.gs @@ -3,7 +3,6 @@ uniform mat4 projection; uniform mat4 view; -uniform vec3 camera_pos; uniform vec3 quad1, quad2; @@ -23,7 +22,7 @@ void main() { if(type_pass[0] != 0.0) { // This is not a generator particle - vec3 old_pos = gl_in[0].gl_Position.xyz - camera_pos; + vec3 old_pos = gl_in[0].gl_Position.xyz; float size = size_pass[0]; mat4 view_projection_matrix = projection * view; diff --git a/cpp/ParticleSystem.cpp b/cpp/ParticleSystem.cpp index c7a045c..d1a70a4 100644 --- a/cpp/ParticleSystem.cpp +++ b/cpp/ParticleSystem.cpp @@ -108,8 +108,6 @@ void ParticleSystem::set_camera(const Camera &camera) { quad2 = glm::cross(camera.forward(), quad1); quad2 = glm::normalize(quad2); - - camera_pos = camera.get_translation(); } void ParticleSystem::render() { @@ -123,7 +121,6 @@ void ParticleSystem::render() { render_shader.setMat4("view", view_matrix); render_shader.setVec3("quad1", quad1); render_shader.setVec3("quad2", quad2); - render_shader.setVec3("camera_pos", camera_pos); texture->bind_to(0); diff --git a/include/Gedeng/ParticleSystem.h b/include/Gedeng/ParticleSystem.h index 1f9be85..a3fad6d 100644 --- a/include/Gedeng/ParticleSystem.h +++ b/include/Gedeng/ParticleSystem.h @@ -57,7 +57,6 @@ class ParticleSystem { glm::mat4 projection_matrix, view_matrix; glm::vec3 quad1, quad2; - glm::vec3 camera_pos; float elapsed_time; float next_generation_time; diff --git a/test/particle-demo/main.cpp b/test/particle-demo/main.cpp index d656333..17fbeab 100644 --- a/test/particle-demo/main.cpp +++ b/test/particle-demo/main.cpp @@ -19,7 +19,7 @@ class ParticleApp : public Gedeng::Application { bump("Resources/Textures/PavingStones/PavingStones070_2K_Displacement.jpg", Gedeng::Texture::Settings()), normal("Resources/Textures/PavingStones/PavingStones070_2K_Normal.jpg", Gedeng::Texture::Settings()), quad_mesh(Gedeng::QuadMesh(10.0)) { - particles.set_position(glm::vec3(0.0f, 0.0f, -5.0f)); + 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)); particles.set_color(glm::vec3(0.0f, 0.5f, 1.0f));