/ / Assimp prehliadač je oveľa rýchlejší ako Assimp C ++ dovozca na rovnakom súbore modelu .obj - c ++, 3d, assimp

Assimp prehliadač je oveľa rýchlejší ako Assimp C ++ dovozca na rovnakom súbore modelu .obj - c ++, 3d, assimp

Knižnica Assimp poskytuje príjemný spôsob načítania 3D.obj modely zo súboru. Zistil som však, že assimp_viewer.exe, ktorý prichádza s ním (používam verziu 3.1.1), je oveľa rýchlejší pri importovaní môjho .obj súboru (42Mb, už zjednodušeného), potom môj C ++ kód, ktorý načíta ten istý model. Divák načíta súbor za pár sekúnd, zatiaľ čo môj program C ++ (MSVS 2013 / Win64 / Release) trvá 154 sekúnd. Experimentoval som s vlajkami dovozcu po spracovaní v prehliadači a C ++, ale nemôžem preklenúť medzeru medzi týmito dvoma.

Akékoľvek myšlienky na príčinu? Tu je môj C ++ kód:

#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;
}

odpovede:

0 pre odpoveď č. 1

Našiel som vlastnú odpoveď: Spustil som ju v aplikácii Visual Studio, ale spustiť ju - s - debuggerom v režime Release (F5). Keď to začnem bez ladenie (CTRL + F5) trvá 1 sekundu na načítaniemodel ako assimp divák. To isté platí, ak spustite spustiteľný súbor z vonkajšieho vizuálneho štúdia pomocou súborového prieskumníka alebo príkazového riadku. Stále je to obrovský rozdiel medzi ladením a bez nej.