From 40a400cfca71cc3f8be63d3b3078276955756c85 Mon Sep 17 00:00:00 2001 From: Yili Zhao Date: Mon, 11 Nov 2019 17:53:53 -0800 Subject: [PATCH 1/2] Save 25% of memory usage on vertex position buffer --- src/esp/assets/PTexMeshData.cpp | 2 +- src/esp/assets/PTexMeshData.h | 2 +- src/esp/gfx/PTexMeshShader.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/esp/assets/PTexMeshData.cpp b/src/esp/assets/PTexMeshData.cpp index bb3960634a..5d54bace08 100644 --- a/src/esp/assets/PTexMeshData.cpp +++ b/src/esp/assets/PTexMeshData.cpp @@ -665,7 +665,7 @@ void PTexMeshData::parsePLY(const std::string& filename, "not greater than 0", ); } - meshData.vbo.resize(numVertices, vec4f(0, 0, 0, 1)); + meshData.vbo.resize(numVertices, vec3f(0, 0, 0)); if (normalDimensions) { meshData.nbo.resize(numVertices, vec4f(0, 0, 0, 1)); diff --git a/src/esp/assets/PTexMeshData.h b/src/esp/assets/PTexMeshData.h index 13913e7f4f..d0068c5775 100644 --- a/src/esp/assets/PTexMeshData.h +++ b/src/esp/assets/PTexMeshData.h @@ -22,7 +22,7 @@ namespace assets { class PTexMeshData : public BaseMesh { public: struct MeshData { - std::vector vbo; + std::vector vbo; std::vector nbo; std::vector cbo; std::vector ibo; diff --git a/src/esp/gfx/PTexMeshShader.h b/src/esp/gfx/PTexMeshShader.h index aab380ad4e..3d274978fc 100644 --- a/src/esp/gfx/PTexMeshShader.h +++ b/src/esp/gfx/PTexMeshShader.h @@ -24,7 +24,7 @@ namespace gfx { class PTexMeshShader : public Magnum::GL::AbstractShaderProgram { public: //! @brief vertex positions - typedef Magnum::GL::Attribute<0, Magnum::Vector4> Position; + typedef Magnum::GL::Attribute<0, Magnum::Vector3> Position; /** * @brief Constructor From 9db9d4b7a51076022f3307b1ace66dd459063ce3 Mon Sep 17 00:00:00 2001 From: Yili Zhao Date: Mon, 18 Nov 2019 15:13:37 -0800 Subject: [PATCH 2/2] minor --- src/esp/assets/PTexMeshData.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/esp/assets/PTexMeshData.cpp b/src/esp/assets/PTexMeshData.cpp index 5d54bace08..40d263739f 100644 --- a/src/esp/assets/PTexMeshData.cpp +++ b/src/esp/assets/PTexMeshData.cpp @@ -663,6 +663,9 @@ void PTexMeshData::parsePLY(const std::string& filename, CORRADE_ASSERT(positionDimensions > 0, "PTexMeshData::parsePLY: the dimensions of the position is " "not greater than 0", ); + CORRADE_ASSERT( + positionDimensions == 3, + "PTexMeshData::parsePLY: the dimensions of the position must be 3.", ); } meshData.vbo.resize(numVertices, vec3f(0, 0, 0));