diff --git a/modules/asset_loader/include/vkcv/asset/asset_loader.hpp b/modules/asset_loader/include/vkcv/asset/asset_loader.hpp index d1bcea4f090c75eeea994e3a442a592031469db2..597cf4c8e237e9fafb9a43f63c64b769623ab314 100644 --- a/modules/asset_loader/include/vkcv/asset/asset_loader.hpp +++ b/modules/asset_loader/include/vkcv/asset/asset_loader.hpp @@ -7,6 +7,7 @@ #include <string> #include <vector> +#include <array> #include <cstdint> #include <vkcv/VertexLayout.hpp> diff --git a/modules/asset_loader/src/vkcv/asset/asset_loader.cpp b/modules/asset_loader/src/vkcv/asset/asset_loader.cpp index 48ec170e9c0b12bb2eb15c7ffa2db840ca7cc4e2..f546e21c4e63001647baa781f7659fbf7b8b9080 100644 --- a/modules/asset_loader/src/vkcv/asset/asset_loader.cpp +++ b/modules/asset_loader/src/vkcv/asset/asset_loader.cpp @@ -6,7 +6,6 @@ #define STB_IMAGE_IMPLEMENTATION #define STBI_ONLY_JPEG #include <stb_image.h> - #include <vkcv/Logger.hpp> namespace vkcv::asset { @@ -92,12 +91,12 @@ std::array<float, 16> computeModelMatrix(std::array<float, 3> translation, std:: auto q2 = rotation[2]; auto q3 = rotation[3]; - modelMatrix[0] = (2 * (a * a + q1 * q1) + 1) * scale[0]; + modelMatrix[0] = (2 * (a * a + q1 * q1) - 1) * scale[0]; modelMatrix[1] = (2 * (q1 * q2 - a * q3)) * scale[1]; modelMatrix[2] = (2 * (q1 * q3 + a * q2)) * scale[2]; modelMatrix[4] = (2 * (q1 * q2 + a * q3)) * scale[0]; - modelMatrix[5] = (2 * (a * a + q2 * q2) + 1) * scale[1]; + modelMatrix[5] = (2 * (a * a + q2 * q2) - 1) * scale[1]; modelMatrix[6] = (2 * (q2 * q3 - a * q1)) * scale[2]; modelMatrix[8] = (2 * (q1 * q3 - a * q2)) * scale[0]; diff --git a/projects/first_scene/src/main.cpp b/projects/first_scene/src/main.cpp index b5d67372c8f4adcd2ac76818829dad61194fdf9c..51993a35f5d191d56d21d5e60ab891ea14100fe6 100644 --- a/projects/first_scene/src/main.cpp +++ b/projects/first_scene/src/main.cpp @@ -7,12 +7,9 @@ glm::mat4 arrayTo4x4Matrix(std::array<float,16> array){ glm::mat4 matrix; - int r = 0; for (int i = 0; i < 4; i++){ for (int j = 0; j < 4; j++){ - matrix[i][j] = array[r]; - r++; - std::cout << matrix[i][j] << std::endl; + matrix[i][j] = array[j * 4 + i]; } } return matrix;