assimp开源图形库的使用

时间:2021-04-09 19:41:27

    Directx11和DirectX12对于DirectX9有翻天覆地的变化,各种库被废除了(然而很多书里面的很多东西的实现都需要这些东西)。比如你想自己写个shader,想做个材质球看看效果,从外部三维软件导入个模型数据都十分麻烦。偶然了解到有个assimp开源库,能解析各种文件里的数据。

    首先第一步要使用assimp需要去他的官网下载源代码。源代码下载下来之后发现,它就是一堆源代码,怎么用到自己的项目里呢。所以第二部就是去下载一个叫CMake的,它是开源的,能帮我们编译出sln文件。

    下载好CMake和assimp源码后,点开Cmake运行程序选择好路径。调整好编译的位数等信息然后generate然后build然后openproject。Cmake会为我们自动打开project。然后在VS里再编译项目得到lib。

   我们将assimp的lib和assimp源码里的include头文件还有zlib的lib和源文件全部复制到自己的项目里,然后链接zlibstatic和assimp,再包含assimp的scence  postprocess  Improter三个文件


#pragma comment(lib,"assimp-mdd.lib")
#pragma comment(lib,"zlibstatic.lib")

#include "assimp/assimp/Importer.hpp"
#include "assimp/assimp/scene.h"
#include "assimp/assimp/postprocess.h"
#include <string>


之后就可以使用这个库载入模型了


bool Import(const std::string& pFile)
{
    Assimp::Importer importer;
    const aiScene* pScene = importer.ReadFile(pFile.c_str(), aiProcess_Triangulate | aiProcess_GenSmoothNormals | aiProcess_FlipUVs);
    if (pScene) {
        MessageBox(nullptr, L"Import mesh successfully ! Go On!", L"Warmming", S_OK);
    }
    else {
        return false;
    }
    
    return true;
}

最后我在这里把我编译好的lib和头文件打包放在这里,是vs2015的。如果有人看到我这个小菜鸟的这篇文章就可以直接下载下来用了,不需要再去下载了

链接:http://pan.baidu.com/s/1i432x85 密码:k125