第三十二章 投光物和多光源总结

Assimp
将模型导入到程序中。需要掌握:解析导出的模型文件以及提取所有有用的信息,存储为OpenGL能够理解的格式。
模型的文件格式不同,每一种都有自己的方式来导出模型数据。有专门的库可以直接用,不需要每种文件格式写一个导入器。
使用较多的模型导入库是:Assimp,是Open Asset Import Library(开放的资产导入库)的缩写。
能够导入不同的模型文件格式,也能够导出部分的格式,会将所有的模型数据加载到通用数据结构中。

导入一个模型后,会将整个模型加载到一个场景对象,包含导入的模型、场景中的所有数据。会给场景载入一系列节点,每个节点包含了场景对象中所存储数据
的索引,每个节点都有任意数量的子节点。
1.根节点:Scene对象,包含了所有的场景数据
2.场景的根节点可能包含其他子节点:有一系列指向场景对象中mMeshes数组中存储的网格数据的索引。而根节点Scene下的mMeshes数组存储了真正的Mesh对象,
场景的节点中的mMeshes数组保存的只是场景中的网格数组的索引。
3.Mesh对象包含渲染所需要的所有的相关数据,举例:顶点位置,法向量,纹理坐标,面,物体材质
4.一个网格包含多个面。Face代表物体的渲染图元(三角形,方形,点)。一个面包含了组成图元的顶点的索引。
由于顶点和索引是分开的,可以使用索引缓冲来进行渲染。
5.一个网格也包含一个Material对象,有一些函数可以获取物体的材质属性,比如颜色和纹理贴图,漫反射,镜面光贴图。

做法:将一个物体加载到Scene对象,

你可能感兴趣的:(OPGENGL,算法,计算机视觉)