这篇文章将介绍运用assimp库进行实际的模型加载与转换的代码。
#include "assimp\Importer.hpp"
#include "assimp\scene.h"
#include "assimp\postprocess.h"
首先导入assimp库的头文件。
Assimp::Importer importer;
const aiScene* scene = importer.ReadFile(file,
aiProcess_Triangulate |
aiProcess_JoinIdenticalVertices |
aiProcess_GenSmoothNormals);
if (!scene || scene->mFlags == AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) {
std::cout << "Model could not be imported: " << std::endl;
std::cout << importer.GetErrorString() << std::endl;
return false;
}
首先创建一个在assimp空间的Importer对象,然后调用它的ReadFile方法。其中,方法的第一个参数file就是模型的存储地址,第二个参数为后处理说明,我们可以通过对这个参数的设置来强制对导入的模型进行一些额外的操作。通过设置aiProcess_Triangulate
,我们告诉Assimp如果模型不是(全部)由三角形组成,应该转换所有的模