使用opengl载入静态3d模型.obj的方法

1.学习笔记 专栏收录该内容
2 篇文章 0 订阅

opengl中.obj文件的载入

      这几天初学opengl方面的3d知识,一直在做的事情就是学习3d模型的载入,可是最终还是有一点小BUG没有找到,写出来的程序不能正常运行,但是感觉就差一点了,现在来说说我学习到的成果.

      .3ds和.obj文件都是常用的静态模型文件,.3ds文件的结构比较复杂,是由快构成的,但是它牺牲空间复杂行得到的是,时间的高效,可以快速的跳过你不想要的内容,每一块都是由块头的ID和快的大小,以及块内容组成,而且块内还是有子块构成的,要读取其中内容,就要编写一个递归程序,网上有些源码,都不错,现在列出一些连接:

3ds文件结构和读取方法

http://wenku.baidu.com/view/ca99306f58fafab069dc028d.html

读取3ds源码

http://download.csdn.net/source/824159 

    这些大概就够了,有耐心的画去看看

   .obj文件的结构就比较简单了,他完全是有点和面的描述组成的,我看了一篇高人写的文章,经过学习已经可以,成功的读入模型的结构下面是连接

http://cowboy.1988.blog.163.com/blog/static/75105798200921242914741/ 

    文章介绍的很详细,而且.obj文件结构很简单,容易读取.现在其实是我卡在了相关纹理方面的读入上.找不到原因,但是就是不显示物体. 在obj文件生成的时候还会生成一个.mtl文件,它里面存储的是整个模型中使用的相关纹理的的信息,而在obj文件中没一大段的面之前都有一句

    usemtl *

    告诉我们这一段所使用的纹理的名字,那这个名字在再去mtl文件中找,就可以得到.然后在每次贴图之前按照材质信息改变材质的反光的参数,就可以了,这样就可以画出任意的图形.

    实话说, 自己连C++都不会,完全是用c写的,感觉就是创建的结构体台复杂,要是向动态读入,不浪费储存空间,还得写一个链表,麻烦死了.

我想说的是现在这个基础,感觉做3d还是有些牵强的,至少要学会C++吧...

现在在参加学院的集训,感觉就是压力太大了,其实3d方面和我下学期做的项目没什么关系,但是那个老师要在短短12天的时间里要做两次汇报,这让我情何以堪,报告还要高质量,做个ppt就得一下午了,结果没剩几天,还要让我们拿出点可以展示的东西,自己傻了B研究一些3d的东西,其实下学期想做android的开发的,java都还没学...但是汇报时也不能就说我们在这短时间里学习了java,完了.之类的话.

以后决不会来了.自己干点啥不好,不来这受着冤枉的罪了.

  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值