OPENGL(ubuntu下的实践)——实用篇

本文介绍了如何在OpenGL中利用Assimp库导入3D模型,详细阐述了Mesh类的作用,包括LoadMesh()和Render()函数的实现。同时,文章提到了在Ubuntu环境下进行3D模型渲染时的深度测试,通过开启GL_DEPTH_TEST并使用深度缓冲区确保正确绘制物体的前后关系。
摘要由CSDN通过智能技术生成

OpenGL使用Assimp库导入3d模型

在一些商业的游戏应用中模型的网格是由美工艺术家使用一些建模软件创建的,例如:Blender,Maya,3ds Max等。这些软件提供了强大的工具来帮助美工创建复杂的模型。

Assimp(Open Asset Import Library)是一个处理很多3D格式文件的开源库,包括最流行的3d格式,在Linux和Windows系统都可以很方便的使用。这个模型解析库可以很容易的整合到C/C++程序中使用。

Mesh类

Mesh类表示的是Assimp框架和我们的OpenGL程序的接口:

  • LoadMesh()

LoadMesh()函数的参数,加载模型然后创建模型中包含的且我们的程序能够理解的顶点缓冲,索引缓冲和纹理对象数据。

  1. 创建了Assimp::Importer类的一个实例,调用其ReadFile方法来读取文件,获得一个指向aiScene对象的指针。这个对象包含整个模型的内容,并分布在模型不同的aiMesh结构中
  2. 调用InitFromScene()函数来初始化这个Mesh对象。分配mesh对象的内存空间、准备我们要用的纹理向量以及所有的网格数据和材质
  3. 解析模型数据将顶点属性数据依次存放到Vertices容器中
  4. 创建索引缓存
  5. 用顶点和索引向量完成MeshEntry结构体的初始化
  6. 加载模型所用的所有纹理。一个材质是可以
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值