修复相机使用旋转矩阵旋转失效
parent
683d94a8d7
commit
9281b77178
|
@ -55,10 +55,10 @@ public:
|
||||||
glm::vec3 rotation = glm::vec3();
|
glm::vec3 rotation = glm::vec3();
|
||||||
glm::vec3 position = glm::vec3();
|
glm::vec3 position = glm::vec3();
|
||||||
glm::vec4 viewPos = glm::vec4();
|
glm::vec4 viewPos = glm::vec4();
|
||||||
|
glm::mat3 rotationMatrix = glm::mat3();
|
||||||
float rotationSpeed = 1.0f;
|
float rotationSpeed = 1.0f;
|
||||||
float movementSpeed = 1.0f;
|
float movementSpeed = 1.0f;
|
||||||
glm::mat3 rotationMatrix = glm::mat3();
|
|
||||||
|
|
||||||
bool updated = false;
|
bool updated = false;
|
||||||
bool flipY = false;
|
bool flipY = false;
|
||||||
|
@ -117,7 +117,7 @@ public:
|
||||||
|
|
||||||
void setRotation(glm::mat3 rotaionMatrix)
|
void setRotation(glm::mat3 rotaionMatrix)
|
||||||
{
|
{
|
||||||
rotaionMatrix = rotaionMatrix;
|
this->rotationMatrix = rotaionMatrix;
|
||||||
updateViewMatrix();
|
updateViewMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,15 +40,15 @@ void PlumageConfig::PlumageConfiguration::readConfigurationFromToml(std::string
|
||||||
size_t sz;
|
size_t sz;
|
||||||
settings.cX = std::stof(cX, &sz);
|
settings.cX = std::stof(cX, &sz);
|
||||||
settings.cY = std::stof(cY, &sz);
|
settings.cY = std::stof(cY, &sz);
|
||||||
settings.bottomCenter = glm::vec3(bottomCenter[0], bottomCenter[1], bottomCenter[2]);
|
settings.bottomCenter = glm::vec3(bottomCenter[0], -bottomCenter[1], -bottomCenter[2]);
|
||||||
settings.bottomNormal = glm::vec3(bottomNormal[0], bottomNormal[1], bottomNormal[2]);
|
settings.bottomNormal = glm::vec3(bottomNormal[0], -bottomNormal[1], -bottomNormal[2]);
|
||||||
auto cameraTracksAndAngleSize = std::min(cameraTracks.size(), cameraAngle.size());
|
auto cameraTracksAndAngleSize = std::min(cameraTracks.size(), cameraAngle.size());
|
||||||
settings.cameraTracks.resize(cameraTracksAndAngleSize);
|
settings.cameraTracks.resize(cameraTracksAndAngleSize);
|
||||||
settings.cameraAngle.resize(cameraTracksAndAngleSize);
|
settings.cameraAngle.resize(cameraTracksAndAngleSize);
|
||||||
|
|
||||||
for (uint64_t i = 0; i < cameraTracksAndAngleSize; i++)
|
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]),
|
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]),
|
glm::vec3(cameraAngle[i][1][0], cameraAngle[i][1][1], cameraAngle[i][1][2]),
|
||||||
|
|
|
@ -339,13 +339,10 @@ void VulkanExampleBase::renderLoop()
|
||||||
camera.setRotation(settings.cameraAngle[currentFrame]);
|
camera.setRotation(settings.cameraAngle[currentFrame]);
|
||||||
|
|
||||||
renderFrame();
|
renderFrame();
|
||||||
if (currentFrame = settings.cameraTracks.size() )
|
|
||||||
{
|
|
||||||
currentFrame = settings.cameraTracks.size()-1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
currentFrame++;
|
currentFrame++;
|
||||||
|
if (currentFrame>=settings.cameraAngle.size()-1)
|
||||||
|
{
|
||||||
|
currentFrame = settings.cameraAngle.size()-1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1912,6 +1912,9 @@ PlumageRender::PlumageRender()
|
||||||
std::string commandLineImageSequencePath = filePath.totalImageOutputPath;
|
std::string commandLineImageSequencePath = filePath.totalImageOutputPath;
|
||||||
//std::string commandLineCodecAndResultPath = resultVideoPath;
|
//std::string commandLineCodecAndResultPath = resultVideoPath;
|
||||||
std::string commandLineFrameRate = std::to_string(settings.videoFrameRate);
|
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)
|
#if defined(_WIN32)
|
||||||
std::string commandLine = filePath.image2videoBatFilePath + " " + commandLineFrameRate + " " + commandLineImageSequencePath + " " + resultVideoPath;
|
std::string commandLine = filePath.image2videoBatFilePath + " " + commandLineFrameRate + " " + commandLineImageSequencePath + " " + resultVideoPath;
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue