diff --git a/projects/particle_simulation/src/ParticleSystem.cpp b/projects/particle_simulation/src/ParticleSystem.cpp index 4eb9d8b13bc48ade683a3b4e464ff69f4ee2119a..8b63207e7838c5a91c4f6c2ec33fa057967e29c0 100644 --- a/projects/particle_simulation/src/ParticleSystem.cpp +++ b/projects/particle_simulation/src/ParticleSystem.cpp @@ -19,7 +19,7 @@ void ParticleSystem::updateParticles( const float deltaTime ){ for(Particle& particle :m_particles){ bool alive = particle.isAlive(); particle.setPosition( particle.getPosition() * static_cast<float>(alive) + static_cast<float>(!alive) * m_respawnPos ); - particle.setVelocity( particle.getVelocity() * static_cast<float>(alive) + static_cast<float>(!alive) * glm::vec3(m_rdmVel(m_rdmEngine), m_rdmVel(m_rdmEngine),m_rdmVel(m_rdmEngine))); + particle.setVelocity( particle.getVelocity() * static_cast<float>(alive) + static_cast<float>(!alive) * glm::vec3(m_rdmVel(m_rdmEngine), m_rdmVel(m_rdmEngine),0.0f)); particle.setLifeTime( (particle.getLifeTime() * alive + !alive * m_maxLifeTime ) - deltaTime ); particle.update(deltaTime); } diff --git a/projects/particle_simulation/src/main.cpp b/projects/particle_simulation/src/main.cpp index ce3ff3979c82171a47ecada5f0a7ef1fc2f32a0d..7e929d842d69ae5d719df8149b23e65808d4a618 100644 --- a/projects/particle_simulation/src/main.cpp +++ b/projects/particle_simulation/src/main.cpp @@ -19,6 +19,7 @@ int main(int argc, const char** argv) { ); vkcv::CameraManager cameraManager(window, windowWidth, windowHeight); + cameraManager.getCamera().setNearFar(0.000000001f, 10.f); window.initEvents(); @@ -80,9 +81,9 @@ int main(int argc, const char** argv) { { core.getDescriptorSet(descriptorSet).layout }, true); - const std::vector<glm::vec3> vertices = {glm::vec3(-0.1, 0.1, 0), - glm::vec3( 0.1, 0.1, 0), - glm::vec3(0, -0.1, 0)}; + const std::vector<glm::vec3> vertices = {glm::vec3(-0.02, 0.02, 0), + glm::vec3( 0.02, 0.02, 0), + glm::vec3(0, -0.02, 0)}; vertexBuffer.fill(vertices); @@ -134,9 +135,12 @@ int main(int argc, const char** argv) { glm::vec3 vel1 = glm::vec3(rdmVel(rdmEngine) , rdmVel(rdmEngine), 0.0f); glm::vec3 vel2 = glm::vec3(rdmVel(rdmEngine) , rdmVel(rdmEngine), 0.0f); particleSystem.addParticles({ - Particle(glm::vec3(0.f, 1.f, 0.f), vel0, 1.f), - Particle(glm::vec3( 0.2f, 0.1f, 0.f), vel1, 2.f), - Particle(glm::vec3(0.15f, 0.f, 0.1f), vel2, 3.f)}); + Particle(glm::vec3(0.f, 1.f, 0.0f), vel0, 1.f), + Particle(glm::vec3( 0.2f, 0.1f, 0.0f), vel1, 1.5f), + Particle(glm::vec3(0.15f, 0.f, 0.0f), vel2, 2.f), + Particle(glm::vec3(-0.15f, 0.1f, 0.0f), vel2, 2.5f), + Particle(glm::vec3(0.25f, 0.f, 0.0f), vel2, 3.f), + Particle(glm::vec3(-0.15f, 0.2f, 0.0f), vel2, 3.5f)}); std::vector<glm::mat4> modelMatrices; std::vector<vkcv::DrawcallInfo> drawcalls;