首页 > 解决方案 > 如何通过固定功能管道使用assimp?

问题描述

我已经学会了如何通过着色器导入带有 assimp 的 .obj 但是,是否可以通过固定功能管道导入带有 assimp 的 .obj。这样我就可以轻松地通过 OpenGL API 进行编程。

标签: openglassimpwavefront

解决方案


它不应该在两者之间发生显着变化,通过假设你应该得到你的顶点位置、法线和 UV 坐标,它们独立于 opengl。

将改变的是您不会使用 VAO/VBO,但您必须“手动”发送每个顶点属性 glTexCoord2dv(your uv) glNormal3dv( your normal) glVertex3dv( your vertex)

对于您的每个面和顶点。

编辑:

波前对象格式每个顶点仅使用一组 UV 坐标,因此所有纹理都将使用相同的 UV 贴图。如果您有使用多个 UV 贴图的纹理,您应该查看另一种格式,例如 .fbx 。但是这些东西与固定/可编程管道无关。一旦通过 assimp 导入文件,您就完成了。所有这些更改都是用于发送数据的函数。此外,obj 文件的材质数据非常有限,因此您所拥有的只是使用的纹理名称及其通道。由于材质与您的渲染管道信息密切相关,因此总是会丢失。


推荐阅读