From 6a5f5d0e7051f87a1bc42853be563cf7f8d55569 Mon Sep 17 00:00:00 2001 From: Tobias Frisch <tfrisch@uni-koblenz.de> Date: Tue, 7 Sep 2021 19:37:24 +0200 Subject: [PATCH] [#94] Funky lights Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de> --- projects/saf_r/src/main.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/projects/saf_r/src/main.cpp b/projects/saf_r/src/main.cpp index 387db3fa..0d9e5c10 100644 --- a/projects/saf_r/src/main.cpp +++ b/projects/saf_r/src/main.cpp @@ -189,7 +189,7 @@ int main(int argc, const char** argv) { std::cout << "Error. Could not create graphics pipeline. Exiting." << std::endl; return EXIT_FAILURE; } - + auto start = std::chrono::system_clock::now(); const vkcv::Mesh renderMesh({}, safrIndexBuffer.getVulkanHandle(), 3); @@ -206,6 +206,8 @@ int main(int argc, const char** argv) { cameraManager.getCamera(camIndex1).setPosition(glm::vec3(0.0f, 0.0f, 0.0f)); cameraManager.getCamera(camIndex1).setCenter(glm::vec3(0.0f, 0.0f, -1.0f)); + float time = 0; + while (window.isWindowOpen()) { vkcv::Window::pollEvents(); @@ -218,6 +220,13 @@ int main(int argc, const char** argv) { auto end = std::chrono::system_clock::now(); auto deltatime = std::chrono::duration_cast<std::chrono::microseconds>(end - start); start = end; + + time += 0.000001f * static_cast<float>(deltatime.count()); + + lights[0].position.x += std::cos(time * 3.0f) * 2.5f; + lights[1].position.z += std::cos(time * 2.5f) * 3.0f; + lights[2].position.y += std::cos(time * 1.5f) * 4.0f; + lightsBuffer.fill(lights); cameraManager.update(0.000001 * static_cast<double>(deltatime.count())); glm::mat4 mvp = cameraManager.getActiveCamera().getMVP(); @@ -233,8 +242,8 @@ int main(int argc, const char** argv) { core.prepareImageForStorage (cmdStream, swapchainInput); - uint32_t computeDispatchCount[3] = {static_cast<uint32_t> (std::ceil( windowWidth/16.f)), - static_cast<uint32_t> (std::ceil(windowHeight/16.f)), + uint32_t computeDispatchCount[3] = {static_cast<uint32_t> (std::ceil( swapchainWidth/16.f)), + static_cast<uint32_t> (std::ceil(swapchainHeight/16.f)), 1 }; // Anzahl workgroups core.recordComputeDispatchToCmdStream(cmdStream, computePipeline, -- GitLab