学OpenGL编3D游戏,一步一步学习现代OpenGL。

    今年夏天整理资料的时候发现了一本电子书《三维游戏设计师宝典——学OpenGL编3D游戏》,书比较老,windows下实现的,里面用的是OpenGL固定管线,但是它实现了一个完整的小项目,文件的读写,解析,功能比较完善。我想用现代OpenGL重新实现它的话,更加锻炼人,我之前在ubuntu下面搭建了学习OpenGL的工程,就是之前学习过https://learnopengl-cn.github.io/里面的入门课程,我把这个重新实现的东西给它搬了进来,makefile很好写,文件的依赖写清楚就行。

https://github.com/tankwei/SDLOpenGL

    主要就这么几个要点,bmp文件的读写,书里面bmp读写是在windows下实现的,linux下结构体我做了修改,3ds和obj格式文件的解析,md2模型文件的解析,地形地貌的渲染。二维图形,三维几何体的渲染,茶壶的渲染,茶壶的渲染这本书里面调用的是老式的glu接口,我在wiki上找到了算法,搬了过来。

    书里面md2的解析我在linux下重新实现,出了很多问题,就暂时抄别人的,我参考了一个牛人的代码,这里https://github.com/michaeleggers/Engine2  他的md2模型的渲染写得很不错,在linux下运行没问题。我原先搭建OpenGL学习项目的时候窗体用的是glfw3库,他用的是SDL2加OpenGL。

    我的环境是debian 10,用了deepin,ubuntu 18,最后我还是换回了debian,感觉还是debian好用,在龙芯派二代上用的也是debian 10,因此统一用debian。如果工作环境可能需要ubuntu,或着windows。

   Obj文件的解析我用的是Assimp库,自己写的obj模型解析在另一个版本的项目里面,代码没整理好,暂时不放出来了。用Assimp库实现了给人物模型更换节点,我实现了用头部模型去替换身体模型的头部部分。

   用libpng库读取png图像数据创建SDL纹理的时候,逐行检测透过色时,设置为透明,这样就不用调用SDL2的透过色方法了。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值