OpenGL学习笔记

【五十四,模型加载-1 Assimp】

2019-12-31  本文已影响0人  Woodlouse

3D建模工具

常用的3D建模工具:

建模工具可以让艺术家创建复杂的形状,使用一种叫做UV映射(uv-mapping)的手段来贴图,建模工具在导出模型文件时自动生:

每一种建模工具导出的文件格式是不一样的,我们的工作是要解析不同的模型文件以及提取所有有用的信息,将它们存储为OpenGL能理解的格式。

Wavefrongt的.obj模型格式包含了:

Collada文件格式包含:

总之,不同种类的文件格式有很多种,它们之间没有一个通用的结构,幸运的是,有一个库专门处理模型文件的解析。

模型加载库

一个非常流行的模型导入库是Assimp,它是Open Asset Import Library的缩写。Assimp能导入很多种不同的模型文件格式,它将素有的模型数据加载至Assimp的通用数据结构中,Assimp会将场景载入为一系列的节点,每个节点包含了场景对象中所储存数据的索引,每个节点都可以有任意数量子节点,数据结构如下:

assimp_structure.png

我们需要做的第一件事是把一个模型加载到Scene对象中,遍历节点,获取对应的Mesh对象,并处理每个Mesh对象来获取顶点数据、索引以及它的材质属性。最终的结果是一系列的网格数据,我们会将它们包含在一个Model对象中。

上一篇 下一篇

猜你喜欢

热点阅读