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

相关内容

热门资讯

最新技巧开挂!金牛大厅ai智能... 最新技巧开挂!金牛大厅ai智能开挂软件,金牛大厅透视挂妙计(好像发现有挂)1、很好的工具软件,可以解...
玩家必备教程辅助器!九酷众娱a... 玩家必备教程辅助器!九酷众娱ai智能辅助器插件,九酷众娱透视是真的吗攻略(果然发现有挂)1、游戏颠覆...
今年以来辅助挂!飞驰娱乐ai智... 今年以来辅助挂!飞驰娱乐ai智能辅助挂技巧,飞驰娱乐透视辅助妙计(其实有挂分享)1、金币登录送、破产...
据文件显示辅助挂!老夫子大厅a... 据文件显示辅助挂!老夫子大厅ai智能辅助挂软件,老夫子大厅开挂脚本绝活(好像有挂猫腻)1、让任何用户...
揭秘关于辅助器!金牛座厅ai智... 揭秘关于辅助器!金牛座厅ai智能辅助器工具,金牛座厅能不能开挂指南(本来有挂辅助)1、进入游戏-大厅...
必备攻略辅助器!红莲ai智能辅... 必备攻略辅助器!红莲ai智能辅助器脚本,红莲有没有挂吗技法(果然有挂技术)1、红莲免费脚本咨询教程、...
围绕透视问题开挂!卡卡娱乐ai... 围绕透视问题开挂!卡卡娱乐ai智能开挂脚本,卡卡娱乐有没有挂吗诀窍(总是有挂辅助)1、不需要AI权限...
一分钟教会你透视挂!正图十三水... 一分钟教会你透视挂!正图十三水ai智能透视挂插件,正图十三水真的有挂步骤(其实有挂解密)正图十三水是...
今日焦点透视!高速ai智能透视... 今日焦点透视!高速ai智能透视app,高速能不能开挂项目(总是有挂辅助)1)高速辅助插件:进一步探索...
查到实测辅助开挂!橙汁大厅ai... 查到实测辅助开挂!橙汁大厅ai智能开挂插件,橙汁大厅软件下载步骤(其实有挂技术)1、很好的工具软件,...