diff --git a/base/camera.hpp b/base/camera.hpp index f6880f7..1a96713 100644 --- a/base/camera.hpp +++ b/base/camera.hpp @@ -55,10 +55,10 @@ public: glm::vec3 rotation = glm::vec3(); glm::vec3 position = glm::vec3(); glm::vec4 viewPos = glm::vec4(); - + glm::mat3 rotationMatrix = glm::mat3(); float rotationSpeed = 1.0f; float movementSpeed = 1.0f; - glm::mat3 rotationMatrix = glm::mat3(); + bool updated = false; bool flipY = false; @@ -117,7 +117,7 @@ public: void setRotation(glm::mat3 rotaionMatrix) { - rotaionMatrix = rotaionMatrix; + this->rotationMatrix = rotaionMatrix; updateViewMatrix(); } diff --git a/base/renderConfig.cpp b/base/renderConfig.cpp index b7aee86..81899fc 100644 --- a/base/renderConfig.cpp +++ b/base/renderConfig.cpp @@ -40,15 +40,15 @@ void PlumageConfig::PlumageConfiguration::readConfigurationFromToml(std::string size_t sz; settings.cX = std::stof(cX, &sz); settings.cY = std::stof(cY, &sz); - settings.bottomCenter = glm::vec3(bottomCenter[0], bottomCenter[1], bottomCenter[2]); - settings.bottomNormal = glm::vec3(bottomNormal[0], bottomNormal[1], bottomNormal[2]); + settings.bottomCenter = glm::vec3(bottomCenter[0], -bottomCenter[1], -bottomCenter[2]); + settings.bottomNormal = glm::vec3(bottomNormal[0], -bottomNormal[1], -bottomNormal[2]); auto cameraTracksAndAngleSize = std::min(cameraTracks.size(), cameraAngle.size()); settings.cameraTracks.resize(cameraTracksAndAngleSize); settings.cameraAngle.resize(cameraTracksAndAngleSize); for (uint64_t i = 0; i < cameraTracksAndAngleSize; i++) { - settings.cameraTracks[i] = glm::vec3(cameraTracks[i][0], cameraTracks[i][1], cameraTracks[i][2]); + settings.cameraTracks[i] = glm::vec3(cameraTracks[i][0], -cameraTracks[i][1], -cameraTracks[i][2]); settings.cameraAngle[i] = glm::mat3(glm::vec3(cameraAngle[i][0][0], cameraAngle[i][0][1], cameraAngle[i][0][2]), glm::vec3(cameraAngle[i][1][0], cameraAngle[i][1][1], cameraAngle[i][1][2]), diff --git a/base/vulkanexamplebase.cpp b/base/vulkanexamplebase.cpp index 0016c8c..c39285f 100644 --- a/base/vulkanexamplebase.cpp +++ b/base/vulkanexamplebase.cpp @@ -339,13 +339,10 @@ void VulkanExampleBase::renderLoop() camera.setRotation(settings.cameraAngle[currentFrame]); renderFrame(); - if (currentFrame = settings.cameraTracks.size() ) + currentFrame++; + if (currentFrame>=settings.cameraAngle.size()-1) { - currentFrame = settings.cameraTracks.size()-1; - } - else - { - currentFrame++; + currentFrame = settings.cameraAngle.size()-1; } } diff --git a/src/render/render.cpp b/src/render/render.cpp index 6187d39..a138a2d 100644 --- a/src/render/render.cpp +++ b/src/render/render.cpp @@ -1912,6 +1912,9 @@ PlumageRender::PlumageRender() std::string commandLineImageSequencePath = filePath.totalImageOutputPath; //std::string commandLineCodecAndResultPath = resultVideoPath; std::string commandLineFrameRate = std::to_string(settings.videoFrameRate); + std::filesystem::path image2videoBatFilePath = filePath.image2videoBatFilePath; + + filePath.image2videoBatFilePath = image2videoBatFilePath.lexically_proximate(image2videoBatFilePath.root_path()).generic_string(); #if defined(_WIN32) std::string commandLine = filePath.image2videoBatFilePath + " " + commandLineFrameRate + " " + commandLineImageSequencePath + " " + resultVideoPath; #else