/ / Assimpビューアの方がはるかに高速で、同じ.objモデルファイルにC ++インポータをAssimpする - c ++、3d、assimp

Assimpビューアははるかに高速で、同じ.objモデルファイルにAssimp C ++インポータがあります。 - c ++、3d、assimp

assimpライブラリは、3Dをロードする良い方法を提供します.objファイルからのモデル。しかし、私はそれに付属のassimp_viewer.exe(私はバージョン3.1.1を使用する)は、私のC + +のコードは、同じモデルを読み込む私の.objファイル(42Mb、すでに簡略化)をインポートするはるかに高速であることがわかりました。ビューアは数秒でファイルを読み込みますが、私の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;
}

回答:

回答№1は0

私自身の答えが見つかりました:Visual Studioで実行しますが、デバッガをリリースモード(F5)で起動します。私がそれを始めるとき なし デバッグ(CTRL + F5)これでロードに1秒かかるassimpビューアとしてのモデルはそうです。ファイルエクスプローラやコマンドラインを使用して外部のVisual Studioから実行可能ファイルを実行する場合も同様です。デバッグの有無にはまだ大きな違いがあります。