gpt4 book ai didi

c++ - 在同一个 .obj 模型文件上,Assimp 查看器比 Assimp C++ 导入器快得多

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:21:42 32 4
gpt4 key购买 nike

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 中运行它,但在 Release模式 (F5) 下使用调试器启动它。当我调试(CTRL+F5) 启动它时,现在加载模型需要1 秒,就像assimp 查看器一样。如果您使用文件资源管理器或命令行从 visual studio 外部运行可执行文件,这同样适用。调试和不调试之间仍然存在巨大差异。

关于c++ - 在同一个 .obj 模型文件上,Assimp 查看器比 Assimp C++ 导入器快得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39325485/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com