update config
parent
2e2808962f
commit
deb39f20d7
|
@ -43,13 +43,15 @@ private:
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//matrices.view = lookAt(position, lookAtPoint);
|
this->forward = glm::normalize(lookAtPoint - position);
|
||||||
|
//matrices.view = getLookAtViewMatrix();
|
||||||
|
|
||||||
//matrices.view = transM * rotM ;
|
//matrices.view = transM * rotM ;
|
||||||
// matrices.view = transM * glm::inverse(glm::transpose(rotationMatrix));//LookAt(position, to, up, false, true);//transM * glm::transpose(glm::inverse(rotationMatrix));
|
// matrices.view = transM * glm::transpose(rotationMatrix);//LookAt(position, to, up, false, true);//transM * glm::transpose(glm::inverse(rotationMatrix));
|
||||||
matrices.view = LookAt(position, lookAtPoint, up, false, true);
|
matrices.view = LookAt(position, lookAtPoint, up, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
viewPos = glm::vec4(position, 0.0f) * glm::vec4(-1.0f, 1.0f, -1.0f, 1.0f);
|
//viewPos = glm::vec4(position, 0.0f) * glm::vec4(-1.0f, 1.0f, -1.0f, 1.0f);
|
||||||
|
|
||||||
updated = true;
|
updated = true;
|
||||||
};
|
};
|
||||||
|
@ -61,6 +63,7 @@ public:
|
||||||
glm::vec3 position = glm::vec3();
|
glm::vec3 position = glm::vec3();
|
||||||
glm::vec4 viewPos = glm::vec4();
|
glm::vec4 viewPos = glm::vec4();
|
||||||
glm::vec3 lookAtPoint = glm::vec3();
|
glm::vec3 lookAtPoint = glm::vec3();
|
||||||
|
glm::vec3 forward = glm::normalize(lookAtPoint - position);
|
||||||
glm::vec3 up = glm::vec3();
|
glm::vec3 up = glm::vec3();
|
||||||
glm::mat4 rotationMatrix = glm::mat4();
|
glm::mat4 rotationMatrix = glm::mat4();
|
||||||
|
|
||||||
|
@ -146,7 +149,7 @@ public:
|
||||||
float r = (viewWidth - u0) / fx * znear;
|
float r = (viewWidth - u0) / fx * znear;
|
||||||
float t = -v0 / fy * znear;
|
float t = -v0 / fy * znear;
|
||||||
float b = (viewHeight - v0) / fy * znear;
|
float b = (viewHeight - v0) / fy * znear;
|
||||||
glm::mat4 perspective = glm::mat4();
|
glm::mat4 perspective = glm::mat4(1.f);
|
||||||
if (rightHand)
|
if (rightHand)
|
||||||
{
|
{
|
||||||
if (zPositive)
|
if (zPositive)
|
||||||
|
@ -189,7 +192,7 @@ public:
|
||||||
if (zPositive)
|
if (zPositive)
|
||||||
{ // rightHand = true and zPositive = true, usually used in 3d reconstruction
|
{ // rightHand = true and zPositive = true, usually used in 3d reconstruction
|
||||||
yAxis = -yAxis;
|
yAxis = -yAxis;
|
||||||
|
//zAxis = -zAxis;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // rightHand = true and zPositive = false, usually used in OpenGL
|
{ // rightHand = true and zPositive = false, usually used in OpenGL
|
||||||
|
@ -249,19 +252,9 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
glm::mat4 lookAt(glm::vec3 position, glm::vec3 lookAtPoint)
|
glm::mat4 getLookAtViewMatrix()
|
||||||
{
|
{
|
||||||
glm::vec3 translate = position - this->position;
|
return glm::lookAt(position, position + forward, up);
|
||||||
glm::vec3 forward = glm::normalize(lookAtPoint - position);
|
|
||||||
glm::vec3 right = glm::normalize(glm::cross(glm::vec3(0, 1, 0), forward));
|
|
||||||
glm::vec3 up = glm::cross(forward, right);
|
|
||||||
glm::mat4 rotationMatrix = glm::mat4(glm::vec4(right, 0.0f),
|
|
||||||
glm::vec4(up, 0.0f),
|
|
||||||
glm::vec4(-forward, 0.0f),
|
|
||||||
glm::vec4(0.0f, 0.0f, 0.0f, 1.0f));
|
|
||||||
glm::mat4 viewMatrix = glm::translate(rotationMatrix, translate);
|
|
||||||
this->position = position;
|
|
||||||
return viewMatrix;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -25,7 +25,7 @@ void PlumageConfig::PlumageConfiguration::readConfigurationFromToml(std::string
|
||||||
std::string cX = toml::find<std::string>(camera, "cX");
|
std::string cX = toml::find<std::string>(camera, "cX");
|
||||||
std::string cY = toml::find<std::string>(camera, "cY");
|
std::string cY = toml::find<std::string>(camera, "cY");
|
||||||
std::vector<float> bottomCenter = toml::find<std::vector<float>>(camera, "bottomCenter");
|
std::vector<float> bottomCenter = toml::find<std::vector<float>>(camera, "bottomCenter");
|
||||||
std::vector<float> bottomNormal = toml::find<std::vector<float>>(camera, "bottomNormal");
|
std::vector<int> bottomNormal = toml::find<std::vector<int>>(camera, "bottomNormal");
|
||||||
std::vector<float> cameraFixation = toml::find<std::vector<float>>(camera, "center");
|
std::vector<float> cameraFixation = toml::find<std::vector<float>>(camera, "center");
|
||||||
std::vector<std::vector<float>> cameraTracks = toml::find<std::vector<std::vector<float>>>(camera, "cameraTracks");
|
std::vector<std::vector<float>> cameraTracks = toml::find<std::vector<std::vector<float>>>(camera, "cameraTracks");
|
||||||
std::vector<std::vector<std::vector<float>>> cameraAngle = toml::find<std::vector<std::vector<std::vector<float>>>>(camera, "cameraAngle");
|
std::vector<std::vector<std::vector<float>>> cameraAngle = toml::find<std::vector<std::vector<std::vector<float>>>>(camera, "cameraAngle");
|
||||||
|
@ -47,9 +47,9 @@ void PlumageConfig::PlumageConfiguration::readConfigurationFromToml(std::string
|
||||||
settings.fY = std::stof(fY, &sz);
|
settings.fY = std::stof(fY, &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]);
|
||||||
settings.cameraFixation = glm::vec3(cameraFixation[0], -cameraFixation[1], -cameraFixation[2]);
|
settings.cameraFixation = glm::vec3(cameraFixation[0], cameraFixation[1], -cameraFixation[2]);
|
||||||
std::vector<glm::vec3> cameraTrackToFixation;
|
std::vector<glm::vec3> cameraTrackToFixation;
|
||||||
auto cameraTracksAndAngleSize = std::min(cameraTracks.size(), cameraAngle.size());
|
auto cameraTracksAndAngleSize = std::min(cameraTracks.size(), cameraAngle.size());
|
||||||
settings.cameraTracks.resize(cameraTracksAndAngleSize);
|
settings.cameraTracks.resize(cameraTracksAndAngleSize);
|
||||||
|
@ -58,12 +58,12 @@ void PlumageConfig::PlumageConfiguration::readConfigurationFromToml(std::string
|
||||||
|
|
||||||
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]);
|
||||||
cameraTrackToFixation[i] = settings.cameraTracks[i] - settings.bottomCenter;
|
cameraTrackToFixation[i] = settings.cameraTracks[i] - settings.bottomCenter;
|
||||||
|
|
||||||
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]),
|
||||||
glm::vec3(cameraAngle[i][2][0], -cameraAngle[i][2][1], -cameraAngle[i][2][2]));
|
glm::vec3(cameraAngle[i][2][0], cameraAngle[i][2][1], -cameraAngle[i][2][2]));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -89,7 +89,7 @@ void PlumageConfig::PlumageConfiguration::readConfigurationFromToml(std::string
|
||||||
{
|
{
|
||||||
cameraTrackToFixation[i] = cameraTracksRotationMatrix * glm::vec4(cameraTrackToFixation[i], 1.0f);
|
cameraTrackToFixation[i] = cameraTracksRotationMatrix * glm::vec4(cameraTrackToFixation[i], 1.0f);
|
||||||
cameraTrackToFixation[i] = trans * glm::vec4(cameraTrackToFixation[i], 1.0f);
|
cameraTrackToFixation[i] = trans * glm::vec4(cameraTrackToFixation[i], 1.0f);
|
||||||
cameraTrackToFixation[i] = glm::vec3(std::truncf(cameraTrackToFixation[i][0] * 10000) / 10000, -std::truncf(cameraTrackToFixation[i][1] * 10000)/10000, -std::truncf(cameraTrackToFixation[i][2] * 10000)/10000);
|
cameraTrackToFixation[i] = glm::vec3(std::truncf(cameraTrackToFixation[i][0] * 10000) / 10000, std::truncf(cameraTrackToFixation[i][1] * 10000)/10000, -std::truncf(cameraTrackToFixation[i][2] * 10000)/10000);
|
||||||
settings.cameraTracks[i] = settings.bottomCenter + cameraTrackToFixation[i] ;
|
settings.cameraTracks[i] = settings.bottomCenter + cameraTrackToFixation[i] ;
|
||||||
settings.cameraAngle[i] = cameraTracksRotationMatrix * glm::mat4(settings.cameraAngle[i]) ;
|
settings.cameraAngle[i] = cameraTracksRotationMatrix * glm::mat4(settings.cameraAngle[i]) ;
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@ namespace PlumageConfig
|
||||||
int calibrationHeight = 480.0f;
|
int calibrationHeight = 480.0f;
|
||||||
glm::vec3 bottomCenter = { 0.f,0.f,-6.f };
|
glm::vec3 bottomCenter = { 0.f,0.f,-6.f };
|
||||||
//std::vector<float> bottomCenter = { 0.f,0.f,-6.f };
|
//std::vector<float> bottomCenter = { 0.f,0.f,-6.f };
|
||||||
glm::vec3 bottomNormal = { 0.f,1.0f,0.f };
|
glm::vec3 bottomNormal = { 0,1,0 };
|
||||||
glm::vec3 cameraFixation = { -0.5f,1.5f,1.79f };
|
glm::vec3 cameraFixation = { -0.5f,1.5f,1.79f };
|
||||||
std::vector<glm::vec3> cameraTracks = { {0.f,0.f,-6.f},{1.f,0.f,-3.f} };
|
std::vector<glm::vec3> cameraTracks = { {0.f,0.f,-6.f},{1.f,0.f,-3.f} };
|
||||||
std::vector<glm::mat3> cameraAngle = { {{0.f,0.f,0.f},{45.f,0.f,0.f},{0.f,0.f,0.f}},{{0.f,0.f,0.f},{45.f,0.f,0.f},{0.f,0.f,0.f}} };
|
std::vector<glm::mat3> cameraAngle = { {{0.f,0.f,0.f},{45.f,0.f,0.f},{0.f,0.f,0.f}},{{0.f,0.f,0.f},{45.f,0.f,0.f},{0.f,0.f,0.f}} };
|
||||||
|
@ -144,7 +144,7 @@ namespace PlumageConfig
|
||||||
std::string hdr2ktxShFilePath = getAssetPath() + "script/hdr2ktxShFilePath.sh";
|
std::string hdr2ktxShFilePath = getAssetPath() + "script/hdr2ktxShFilePath.sh";
|
||||||
// 配置文件路径,命令行传入后保存在这
|
// 配置文件路径,命令行传入后保存在这
|
||||||
//std::string configFilePath = getAssetPath() + "config/guanzi.toml";
|
//std::string configFilePath = getAssetPath() + "config/guanzi.toml";
|
||||||
std::string configFilePath = getAssetPath() + "config/yukino_traj1_matrix.toml";
|
std::string configFilePath = getAssetPath() + "config/yukino_rotate_trans_matrix.toml";
|
||||||
|
|
||||||
} filePath;
|
} filePath;
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1532,14 +1532,15 @@ PlumageRender::PlumageRender()
|
||||||
|
|
||||||
float modelSize = std::max(models.scene.aabb[0][0], std::max(models.scene.aabb[1][1], models.scene.aabb[2][2]));
|
float modelSize = std::max(models.scene.aabb[0][0], std::max(models.scene.aabb[1][1], models.scene.aabb[2][2]));
|
||||||
// Center and scale model
|
// Center and scale model
|
||||||
float scale = 0.75f;//(1.0f / modelSize) * modelSize/4;
|
//float scale = 0.25f;
|
||||||
|
float scale =(1.0f / modelSize) * 0.1;
|
||||||
glm::vec3 translate = glm::vec3(models.scene.aabb[3][0], models.scene.aabb[3][1], models.scene.aabb[3][2]);
|
glm::vec3 translate = glm::vec3(models.scene.aabb[3][0], models.scene.aabb[3][1], models.scene.aabb[3][2]);
|
||||||
//translate += - modelSize / 4 * glm::vec3(models.scene.aabb[0][0], models.scene.aabb[1][1], models.scene.aabb[2][2]);
|
//translate += - modelSize / 4 * glm::vec3(models.scene.aabb[0][0], models.scene.aabb[1][1], models.scene.aabb[2][2]);
|
||||||
//glm::vec3 translate = glm::vec3(0.f, 0.f, 0.f);
|
//glm::vec3 translate = glm::vec3(0.f, 0.f, 0.f);
|
||||||
//camera.setPosition(glm::vec3(0, 0, -modelSize - 2));
|
//camera.setPosition(glm::vec3(0, 0, -modelSize - 2));
|
||||||
translate = glm::vec3(-0.0f, -5.0f, -0.0f);
|
translate = glm::vec3(-0.0f, -5.0f, -0.0f);
|
||||||
shaderDataScene.model = glm::mat4(1.0f);
|
shaderDataScene.model = glm::mat4(1.0f);
|
||||||
|
//translate += glm::vec3(0.0f, 0.f, 0.f) - settings.cameraFixation;
|
||||||
shaderDataScene.model[0][0] = scale;
|
shaderDataScene.model[0][0] = scale;
|
||||||
shaderDataScene.model[1][1] = scale;
|
shaderDataScene.model[1][1] = scale;
|
||||||
shaderDataScene.model[2][2] = scale;
|
shaderDataScene.model[2][2] = scale;
|
||||||
|
@ -1634,9 +1635,9 @@ PlumageRender::PlumageRender()
|
||||||
|
|
||||||
camera.type = Camera::CameraType::lookat;
|
camera.type = Camera::CameraType::lookat;
|
||||||
//camera.setPerspective(glm::radians(45.f), settings.width / settings.height, 1.f, 256.f);
|
//camera.setPerspective(glm::radians(45.f), settings.width / settings.height, 1.f, 256.f);
|
||||||
camera.setProjectionMatrix(settings.fX,settings.fY,settings.cX,settings.cY,1.f, 256.f,settings.width,settings.height,false,true);
|
camera.setProjectionMatrix(settings.fX,settings.fY,settings.cX,settings.cY,1.f, 256.f,settings.width,settings.height,true,true);
|
||||||
//camera.setPerspective(settings.fX, settings.fY, settings.cX, settings.cY, 0.1f, 100.0f);
|
//camera.setPerspective(settings.fX, settings.fY, settings.cX, settings.cY, 0.1f, 100.0f);
|
||||||
camera.setLookAtPoint(settings.bottomCenter);
|
camera.setLookAtPoint(settings.cameraFixation);
|
||||||
//camera.setUp(glm::vec3(0.f,1.f,0.f));
|
//camera.setUp(glm::vec3(0.f,1.f,0.f));
|
||||||
camera.setUp(glm::vec3(0.f,1.f,0.f));
|
camera.setUp(glm::vec3(0.f,1.f,0.f));
|
||||||
camera.rotationSpeed = 0.25f;
|
camera.rotationSpeed = 0.25f;
|
||||||
|
|
Loading…
Reference in New Issue