ASSIMP模型加载器泄漏问题
创始人
2024-09-20 19:00:35
0

该问题的根本原因是由于assimp库中的代码在处理顶点数据时可能会造成内存泄漏。为了避免这个问题,我们可以通过自己管理内存来解决这个问题。

以下是解决方法的示例代码:

#include 
#include 
#include 
#include 

struct MeshData
{
    unsigned int VAO;
    unsigned int VBO;
    unsigned int EBO;
    unsigned int numIndices;

    MeshData() : VAO(0), VBO(0), EBO(0), numIndices(0) { }

    ~MeshData()
    {
        if (VAO) glDeleteVertexArrays(1, &VAO);
        if (VBO) glDeleteBuffers(1, &VBO);
        if (EBO) glDeleteBuffers(1, &EBO);
    }
};

void LoadMesh(const char *filename)
{
    Assimp::Importer importer;
    const aiScene *scene = importer.ReadFile(filename, aiProcess_Triangulate | aiProcess_FlipUVs);

    if (!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode)
        throw std::runtime_error("Failed to load mesh");

    aiMesh *mesh = scene->mMeshes[0];
    MeshData data;

    glGenVertexArrays(1, &data.VAO);
    glGenBuffers(1, &data.VBO);
    glGenBuffers(1, &data.EBO);

    glBindVertexArray(data.VAO);
    glBindBuffer(GL_ARRAY_BUFFER, data.VBO);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, data.EBO);

    glBufferData(GL_ARRAY_BUFFER, mesh->mNumVertices * sizeof(aiVector3D), &mesh->mVertices[0][0], GL_STATIC_DRAW);
    glBufferData(GL_ELEMENT_ARRAY_BUFFER, mesh->mNumFaces * 3 * sizeof(unsigned int), &mesh->mFaces[0].mIndices[0], GL_STATIC_DRAW);

    glEnableVertexAttribArray(0);
    glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(aiVector3D), 0

相关内容

热门资讯

突发!xpoker辅助怎么用(... 突发!xpoker辅助怎么用(透视)内置辅助器大全(确实有辅助辅助器)-哔哩哔哩1)内置辅助器大全免...
围绕透视问题!wepoker私... 围绕透视问题!wepoker私人局开挂视频(透视)随意玩辅助器(一直有辅助平台)-哔哩哔哩1)随意玩...
做出回应!wepoker辅助脚... 做出回应!wepoker辅助脚本(透视)丰城双剑辅助(一贯真的是有辅助app)-哔哩哔哩1、点击下载...
透视免费!wejoker手机版... 透视免费!wejoker手机版透视脚本(透视)友友联盟破解版下载(总是是真的辅助下载)-哔哩哔哩一、...
围绕透视问题!hhpoker辅... 围绕透视问题!hhpoker辅助软件(透视)熊猫辅助技术导航(好像真的是有辅助app)-哔哩哔哩1、...
据了解!hhpoker万能辅助... 据了解!hhpoker万能辅助器(透视)葫芦娃辅助脚本(总是真的是有辅助安装)-哔哩哔哩1、葫芦娃辅...
透视透视挂!hhpoker必备... 透视透视挂!hhpoker必备开挂(透视)牛总管辅助方法(好像真的是有辅助下载)-哔哩哔哩1、让任何...
透视脚本!we-poker软件... 透视脚本!we-poker软件(透视)微乐小程序有脚本吗(一直真的有辅助安装)-哔哩哔哩该软件可以轻...
据统计!hhpoker德州透视... 据统计!hhpoker德州透视(透视)新九方辅助(其实存在有辅助下载)-哔哩哔哩该软件可以轻松地帮助...
为切实保障!pokemmo手机... 为切实保障!pokemmo手机脚本辅助器(透视)极速猜一猜辅助(真是真的有辅助辅助器)-哔哩哔哩小薇...