OpenGL绘制地月天体,基于Qt框架。

       使用Qt5.8,OpenGL4.3,glm0.9.6.3,绘制地球(带纹理)、月球(带纹理)、云层(使用混合方式绘制在地球外层)等物体,并且有光照、白天与黑夜过渡效果(利用多重和过程纹理)、天体的自转(地球、月球)与公转(月球)效果。

       网络上的demo有以下部分问题:1-着色器程序代码是以字符串数组的形式提供,而未以独立的文件。2-使用的OpenGL版本低,还在使用诸如gluLookAt(),glPushMatrix(),glBegin(GL_LINES)之类的函数。3-结构不合理,主要表现为大量程序代码都集中在一个文件中。本程序根据<<***游戏开发 上卷***>>书中的示例(android平台,java编写)改写而来,解决了上述问题并加入glm库以实现矩阵相关操作问题(老版本使用glRotatef(),glTranslate()之类的函数)。

注1:请下载glm库并解压,将解压后的文件夹中同样名为glm的文件夹复制到Qt安装路径中include目录下,我用visual studio 2017编译Qt程序,放在*****\msvc2017_64\include\下,星号根据自己的安装路径而不同。

注2:天体转动效果需要你在窗口中按住鼠标左键,然后滑动鼠标才能看到(qt不会自动更新画面,相比之下微软的可视化窗口界面框架就能每帧自动更新)。

效果图如下:(白点代表星星,三毛特效^_^)

本程序(opengl-地月系)代码:

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值