complete
parent
a8b5ebfb4c
commit
f598bb1541
|
@ -46,7 +46,7 @@ private:
|
||||||
this->forward = glm::normalize(lookAtPoint - position);
|
this->forward = glm::normalize(lookAtPoint - position);
|
||||||
//matrices.view = getLookAtViewMatrix();
|
//matrices.view = getLookAtViewMatrix();
|
||||||
|
|
||||||
//matrices.view = transM * rotM ;
|
//matrices.view = transM * glm::transpose(rotM) ;
|
||||||
// matrices.view = transM * 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, true, true);
|
matrices.view = LookAt(position, lookAtPoint, up, true, true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,12 @@
|
||||||
|
|
||||||
void PlumageConfig::PlumageConfiguration::readConfigurationFromToml(std::string configFilePath,Settings& settings)
|
void PlumageConfig::PlumageConfiguration::readConfigurationFromToml(std::string configFilePath,Settings& settings)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
parse config file
|
||||||
|
*/
|
||||||
auto config = toml::parse(configFilePath);
|
auto config = toml::parse(configFilePath);
|
||||||
|
|
||||||
|
// get settings
|
||||||
auto& tomlSettings = toml::find(config, "settings");
|
auto& tomlSettings = toml::find(config, "settings");
|
||||||
|
|
||||||
settings.width = toml::find<uint32_t>(tomlSettings, "width");
|
settings.width = toml::find<uint32_t>(tomlSettings, "width");
|
||||||
|
@ -17,6 +21,11 @@ void PlumageConfig::PlumageConfiguration::readConfigurationFromToml(std::string
|
||||||
settings.startFrameIndex = toml::find<uint32_t>(tomlSettings, "startFrameIndex");
|
settings.startFrameIndex = toml::find<uint32_t>(tomlSettings, "startFrameIndex");
|
||||||
settings.endFrameIndex = toml::find<uint32_t>(tomlSettings, "endFrameIndex");
|
settings.endFrameIndex = toml::find<uint32_t>(tomlSettings, "endFrameIndex");
|
||||||
settings.videoFrameRate = toml::find<uint32_t>(tomlSettings, "videoFrameRate");
|
settings.videoFrameRate = toml::find<uint32_t>(tomlSettings, "videoFrameRate");
|
||||||
|
|
||||||
|
/*
|
||||||
|
get settings.camera
|
||||||
|
*/
|
||||||
|
|
||||||
auto& camera = toml::find(tomlSettings, "camera");
|
auto& camera = toml::find(tomlSettings, "camera");
|
||||||
settings.calibrationWidth = toml::find<int>(camera, "cam_width");
|
settings.calibrationWidth = toml::find<int>(camera, "cam_width");
|
||||||
settings.calibrationHeight = toml::find<int>(camera, "cam_height");
|
settings.calibrationHeight = toml::find<int>(camera, "cam_height");
|
||||||
|
@ -24,12 +33,17 @@ void PlumageConfig::PlumageConfiguration::readConfigurationFromToml(std::string
|
||||||
std::string fY = toml::find<std::string>(camera, "fy");
|
std::string fY = toml::find<std::string>(camera, "fy");
|
||||||
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> pedestledModelTopCenter = toml::find<std::vector<float>>(camera, "pedestledModelTopCenter");
|
||||||
std::vector<float> bottomCenter = toml::find<std::vector<float>>(camera, "bottomCenter");
|
std::vector<float> bottomCenter = toml::find<std::vector<float>>(camera, "bottomCenter");
|
||||||
std::vector<int> bottomNormal = toml::find<std::vector<int>>(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");
|
||||||
|
|
||||||
|
/*
|
||||||
|
get settings.debug
|
||||||
|
*/
|
||||||
|
|
||||||
auto& debug = toml::find(tomlSettings, "debug");
|
auto& debug = toml::find(tomlSettings, "debug");
|
||||||
settings.validation = toml::find<bool>(debug, "validation");
|
settings.validation = toml::find<bool>(debug, "validation");
|
||||||
settings.vsync = toml::find<bool>(debug, "vsync");
|
settings.vsync = toml::find<bool>(debug, "vsync");
|
||||||
|
@ -38,6 +52,8 @@ void PlumageConfig::PlumageConfiguration::readConfigurationFromToml(std::string
|
||||||
settings.debugMode = toml::find<bool>(debug, "debugMode");
|
settings.debugMode = toml::find<bool>(debug, "debugMode");
|
||||||
//settings.cleanUpImageSequece = toml::find_or<bool>(debug, "cleanUpImageSequece");
|
//settings.cleanUpImageSequece = toml::find_or<bool>(debug, "cleanUpImageSequece");
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
/*
|
/*
|
||||||
conversion: type and coordinate system
|
conversion: type and coordinate system
|
||||||
*/
|
*/
|
||||||
|
@ -47,16 +63,17 @@ 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;
|
||||||
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);
|
||||||
|
cameraTrackToFixation.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]);
|
||||||
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]),
|
||||||
|
@ -86,7 +103,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]) ;
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ namespace PlumageConfig
|
||||||
|
|
||||||
uint32_t startFrameIndex = 1; // ͼƬ<CDBC><C6AC><EFBFBD>п<EFBFBD>ʼ֡
|
uint32_t startFrameIndex = 1; // ͼƬ<CDBC><C6AC><EFBFBD>п<EFBFBD>ʼ֡
|
||||||
uint32_t endFrameIndex = 50; // ͼƬ<CDBC><C6AC><EFBFBD>н<EFBFBD><D0BD><EFBFBD>֡
|
uint32_t endFrameIndex = 50; // ͼƬ<CDBC><C6AC><EFBFBD>н<EFBFBD><D0BD><EFBFBD>֡
|
||||||
uint32_t videoFrameRate = 25; // <EFBFBD><EFBFBD>Ƶ֡<EFBFBD><EFBFBD>
|
uint32_t videoFrameRate = 25; // video decode frameRate
|
||||||
uint32_t selectedPhysicalDeviceIndex = 7;
|
uint32_t selectedPhysicalDeviceIndex = 7;
|
||||||
|
|
||||||
float fX = 565.5f;
|
float fX = 565.5f;
|
||||||
|
@ -61,6 +61,7 @@ namespace PlumageConfig
|
||||||
float cY = 238.8f;
|
float cY = 238.8f;
|
||||||
int calibrationWidth = 640.0f;
|
int calibrationWidth = 640.0f;
|
||||||
int calibrationHeight = 480.0f;
|
int calibrationHeight = 480.0f;
|
||||||
|
glm::vec3 pedestledModelTopCenter = { 0.f,-5.f,0.f };
|
||||||
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,1,0 };
|
glm::vec3 bottomNormal = { 0,1,0 };
|
||||||
|
@ -90,7 +91,7 @@ namespace PlumageConfig
|
||||||
|
|
||||||
struct FilePath
|
struct FilePath
|
||||||
{ //model path
|
{ //model path
|
||||||
std::string glTFModelFilePath = getAssetPath() + "models/classic_round_side_table.glb";
|
std::string glTFModelFilePath = getAssetPath() + "models/cube.gltf";
|
||||||
std::string modelVertShaderPath = getAssetPath() + "buster_drone/shaders/glsl/mesh.vert.spv";
|
std::string modelVertShaderPath = getAssetPath() + "buster_drone/shaders/glsl/mesh.vert.spv";
|
||||||
std::string modelFragShaderPath = getAssetPath() + "buster_drone/shaders/glsl/mesh.frag.spv";
|
std::string modelFragShaderPath = getAssetPath() + "buster_drone/shaders/glsl/mesh.frag.spv";
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1533,18 +1533,18 @@ 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.25f;
|
//float scale = 0.25f;
|
||||||
float scale =(1.0f / modelSize) * 0.1;
|
float scale =(1.0f / modelSize) * 4;
|
||||||
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));
|
||||||
|
glm::vec3 translate = glm::vec3(0.f, -5.0f, 0.f);
|
||||||
shaderDataScene.model = glm::mat4(1.0f);
|
shaderDataScene.model = glm::mat4(1.0f);
|
||||||
//translate += glm::vec3(0.0f, 0.f, 0.f) - settings.cameraFixation;
|
//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;
|
||||||
//shaderDataScene.model = glm::translate(shaderDataScene.model, translate);
|
shaderDataScene.model = glm::translate(shaderDataScene.model, translate);
|
||||||
//camera.setPosition(glm::vec3(0, 0, -modelSize - 2));
|
//camera.setPosition(glm::vec3(0, 0, -modelSize - 2));
|
||||||
//glm::vec3 aabbMax = glm::vec3(models.scene.aabb[0][0], models.scene.aabb[1][1], models.scene.aabb[2][2]);
|
//glm::vec3 aabbMax = glm::vec3(models.scene.aabb[0][0], models.scene.aabb[1][1], models.scene.aabb[2][2]);
|
||||||
//glm::vec3 aabbMin = glm::vec3(models.scene.aabb[3][0], models.scene.aabb[3][1], models.scene.aabb[3][2]);
|
//glm::vec3 aabbMin = glm::vec3(models.scene.aabb[3][0], models.scene.aabb[3][1], models.scene.aabb[3][2]);
|
||||||
|
|
Loading…
Reference in New Issue