加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Assimp查看器比同一个.obj模型文件上的Assimp C导入器快得多

发布时间:2020-12-16 06:52:27 所属栏目:百科 来源:网络整理
导读:assimp库提供了一种从文件加载3D .obj模型的好方法.但是我发现它附带的assimp_viewer.exe(我使用的是3.1.1版)在导入我的.obj文件(42Mb,已经简化)和加载相同模型的C代码时要快得多.查看器在几秒钟内加载文件,而我的C程序(MSVS 2013 / Win64 / Release)需要154
assimp库提供了一种从文件加载3D .obj模型的好方法.但是我发现它附带的assimp_viewer.exe(我使用的是3.1.1版)在导入我的.obj文件(42Mb,已经简化)和加载相同模型的C代码时要快得多.查看器在几秒钟内加载文件,而我的C程序(MSVS 2013 / Win64 / Release)需要154秒才能完成.我在查看器和C中尝试了导入器后处理标记,但我无法弥合两者之间的差距.

有关事业的任何想法?这是我的C代码:

#include <ctime>
#include <iostream>
#include <fstream>
#include <vector>

#include "assimp/Importer.hpp"
#include "assimp/scene.h"
#include "assimp/postprocess.h"
#include "assimp/progresshandler.hpp"

using namespace std;

int main(int argc,char* argv[])
{
    Assimp::Importer importer;
    unsigned int post_processing_flags = aiProcess_Triangulate | aiProcess_SortByPType | aiProcess_JoinIdenticalVertices |
            aiProcess_OptimizeMeshes | aiProcess_OptimizeGraph | aiProcess_ImproveCacheLocality;

    cout << "starting load: ";

    auto begin = clock();
    auto scene = importer.ReadFile( "MODEL.obj",post_processing_flags);
    auto end = clock();

    cout << "done!n";

    double seconds = (end - begin) / CLOCKS_PER_SEC;

    cout << "loading took " << seconds << " seconds" << endl;

    return 0;
}

解决方法

找到了我自己的答案:我在Visual Studio中运行它但是在发布模式(F5)下启动它 – 调试器.当我在没有调试的情况下启动它(CTRL F5)时,现在需要1秒来加载模型,就像assimp查看器一样.如果使用文件资源管理器或命令行从Visual Studio外部运行可执行文件,则同样适用.有没有调试之间仍然存在巨大差异.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读