/ / Assimp viewer набагато швидше, ніж Assimp C ++ importer на тій же .obj-файлі - c ++, 3d, assimp

Assimp viewer набагато швидше, ніж імпортер Assimp C ++ на одному файлі model.obj - c ++, 3d, assimp

Бібліотека 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;
}

Відповіді:

0 для відповіді № 1

Знайшли свою власну відповідь: я запускаю її в Visual Studio, але запускаю її - з відладчиком в режимі випуску (F5). Коли я запускаю його без Налагодження (CTRL + F5) займає зараз 1 секундумодель, як це робить глядач. Те ж саме стосується і запуску виконуваного файлу з зовнішньої візуальної студії за допомогою файлового провідника або командного рядка. Ще велика різниця між налагодженням і без.