OpenGL基础26:Assimp库

一、模型文件

游戏中有很多复杂的模型往往都是美术通过3D建模工具构建出来的,当然不是程序将顶点写死在代码里的,想想看一个简单的人物模型可能就有上千个顶点,这个时候按之前“生成木箱子”的方法肯定就不可行了

从3D模型的设计到最后体现在场景中,整个过程可以分为2个步骤

当使用3D建模工具导出模型文件时,建模工具会自己生成所有的顶点坐标、顶点法线和纹理坐标等信息,这些图像技术细节并不需要美工去处理,美工只需要关心如何构建高品质的模型,所有的技术细节内容都隐藏在里导出的模型文件里。而对于图形开发者,就必须得去关注这些技术细节了

因此,紧接着作为开发者的工作就是去解析这些导出的模型文件,并将其中的模型数据存储为OpenGL能够使用的数据,要知道,模型也和图片一样,有很多种不同的格式,每种格式的数据存储方式也不一样,像是Wavefront的.obj这样的模型格式,只包含了模型数据以及材质信息,而以XML为基础的Collada文件格式则非常的丰富,包含模型、光照、多种材质、动画数据、摄像机、完整的场景信息等等,想处理和加载这些模型其实非常的复杂

二、Assimp模型加载库

Assimp(Open Asset Import Library)库就可以帮我们解决模型加载的问题,当然也支持几乎所有的格式,其内部将不同的模型文件都转换为一个统一的数据结构,只要Assimp加载完了模型文件,我们就可以从Assimp上获取所有我们需要的模型数据

先搞定安装的问题,Assimp库的构建应该比之前的SOIL库等要复杂一些,因为这个最好自己cmake,尽管在我提供的安装包里面有现成的,但是它只支持Win32+VS2019

OpenGL环境配置(超全整合版)Assimp库可以从这篇文章中的链接中下载到

①第一步:将文件解压到C盘或者其它盘的根目录,打开之后如下:

安装cmake,如果你已经装过了就不用管了

②第二步:如下

  1. 选择你的Assimp路径
  2. 选择你Assimp路径中的build文件夹,如果没有对应文件夹就创建一个,保证里面是空的
  3. 点击,选择你的VS版本,是32位还是64位可以参考你openGLdemo的配置
  4. 点击,等,如果中间区域是一片红(样例图就是),那就再点一次
  5. 点击,成功后应该会打开你的VS

中间可能遇到的错误/问题:

  1. 找不到DirectX:DirectX官方下载
  2. 找不到你的VS版本,你的VS过新,但是cmake工具过旧了,去 https://cmake.org/download/ 下载最新的版本吧

③第三步:编译

可能遇到的错误:

  1. 找不到 gtest.lib:换个 https://github.com/assimp/assimp/releases/ 版本或者换个assimp路径

④第四步如果你觉得不cmake也行,又或者环境和我一致,你可以直接跳过①②③,用我cmake好的现成的

然后就简单了,步骤都一样:

include文件夹里面的所有文件全部放入老位置(C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include)不过注意有两个include:一个在assimp的根目录,里面有很多文件,一个在build目录,里面只有一个config,都要放

然后进入上图中的目录,dll放入老位置(C:\Windows\SysWOW64),lib放入老位置(C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\lib\x86)

⑤第五步:打开你的项目,菜单→项目→属性,进入如下界面,附加依赖项中添加assimp-vc142-mtd.lib即可完成环境配置

测试一下,应该99.5%没问题了

猜你喜欢

转载自blog.csdn.net/Jaihk662/article/details/106857243