OpenGL模型加载之Assimp的安装编译配置设置等

参考:

https://learnopenglcn.github.io/03%20Model%20Loading/01%20Assimp/

前言

一般像汽车,房子或者人形角色这样的复杂形状,如果是自己手动定义所有的顶点、法线和纹理坐标,显然不太可能。
我们想要的是将这些模型(Model)导入(Import)到程序当中.
模型通常由建模师在Blender3DS Max或者Maya这样的工具中制作.
这些3D建模工具(3D Modeling Tool)可以让建模师创建复杂的形状,并使用一种叫做UV映射(uv-mapping)的手段来应用贴图.

这些工具将会在导出到模型文件的时候自动生成所有的顶点坐标、顶点法线以及纹理坐标.
这样即使不了解图形技术细节的情况下,也能拥有一套强大的工具来构建高品质的模型了.所有的技术细节都隐藏在了导出的模型文件中。但是,作为图形开发者,我们就必须要了解这些技术细节了.


我们的工作就是解析这些导出的模型文件以及提取所有有用的信息,将它们储存为OpenGL能够理解的格式。

一个很常见的问题是,模型的文件格式有很多种,每一种都会以它们自己的方式来导出模型数据,不同种类的文件格式有很多,它们之间通常并没有一个通用的结构,所以如果我们想从这些文件格式中导入模型的话,我们必须要去自己对每一种需要导入的文件格式写一个导入器。很幸运的是,正好有一个库专门处理这个问题。

模型加载库

一个非常流行的模型导入库是Assimp,它是Open Asset Import Library(开放的资产导入库)的缩写.
Assimp能够导入很多种不同的模型文件格式(并也能够导出部分的格式),它会将所有的模型数据加载至Assimp的通用数据结构中。当Assimp加载完模型之后,我们就能够从Assimp的数据结构中提取我们所需的所有数据了。

当使用Assimp导入一个模型的时候,它通常会将整个模型加载进一个场景(Scene)对象,它会包含导入的模型/场景中的所有数据。
Assimp数据结构的(简化)模型如下:

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值