vcglib库的入坑体验(读取obj文件并显示)

写在前面:vcglib的坑真的是太深了,慎入!!! 各种文档不全,使用全靠看源码和猜,网上资料很少而且基本都是复制粘贴,有用的信息真的很少!(附上vcglib的文档 真的能看到自闭)

本文使用vcglib库进行读取obj文件(其他各种3d模型格式也是同样的方法)并显示,但是目前仍然遇到一些问题没有解决:读取的纹理信息全部缺失(读出来全部为0,因此下图并没有贴纹理),查了很久真心不知道为什么,如果有哪位大佬偶尔看到本文,劳烦告知如何解决。

读取的obj文件

一、安装vcglib库

vcglib的安装非常简单

  1. 下载源码

    下载地址:https://github.com/cnr-isti-vclab/vcglib/

  2. 解压得到下面六个文件夹
    在这里插入图片描述
    然后将vcg、wrap、eigenlib文件夹添加到编译器的include文件夹中。

    如果是使用qt则include的路径为
    xx:\Qt\Qt5.6

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是一个简单的Python程序,可以使用PyOpenGL读取OBJ文件并将其显示出来: ```python from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * from objloader import * # 窗口大小 width = 800 height = 600 # 模型文件路径 filename = 'model.obj' # 模型数据 vertices, normals, faces = load_obj(filename) def display(): glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glLoadIdentity() # 设置视角 gluLookAt(0, 0, 5, 0, 0, 0, 0, 1, 0) # 绘制模型 glBegin(GL_TRIANGLES) for face in faces: for i in range(3): glVertex3fv(vertices[face[i] - 1]) glEnd() glutSwapBuffers() def reshape(w, h): glViewport(0, 0, w, h) glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(45, w/h, 0.1, 100.0) glMatrixMode(GL_MODELVIEW) def main(): glutInit() glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH) glutInitWindowSize(width, height) glutCreateWindow('OBJ Viewer') glutDisplayFunc(display) glutReshapeFunc(reshape) glEnable(GL_DEPTH_TEST) glutMainLoop() if __name__ == '__main__': main() ``` 在此示例中,我们使用`load_obj`函数从`model.obj`文件中加载模型数据。我们将模型的顶点、法线和面存储在`vertices`、`normals`和`faces`变量中。 在`display`函数中,我们使用`glBegin`和`glEnd`函数来绘制模型。我们遍历每个面的顶点,并使用`glVertex3fv`函数将其添加到OpenGL绘图队列中。我们还设置了视角和模型矩阵,以确保正确显示模型。 在`reshape`函数中,我们设置视口和投影矩阵。 最后,在`main`函数中,我们初始化GLUT并设置回调函数。我们还启用了深度测试,以便正确渲染模型。 请注意,此示例仅用于演示如何使用PyOpenGL读取显示OBJ文件。如果要在实际项目中使用此代码,请务必进行适当修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值