修复相机使用旋转矩阵旋转失效

test-headless
ink-soul 2024-04-22 11:57:16 +08:00
parent 683d94a8d7
commit 9281b77178
4 changed files with 12 additions and 12 deletions

View File

@ -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();
}

View File

@ -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]),

View File

@ -339,13 +339,10 @@ void VulkanExampleBase::renderLoop()
camera.setRotation(settings.cameraAngle[currentFrame]);
renderFrame();
if (currentFrame = settings.cameraTracks.size() )
{
currentFrame = settings.cameraTracks.size()-1;
}
else
{
currentFrame++;
if (currentFrame>=settings.cameraAngle.size()-1)
{
currentFrame = settings.cameraAngle.size()-1;
}
}

View File

@ -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