| 设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计 | |||||
|
|||||
|
|||||
|
|||||
目录
项目选择
核心技术细节
开发环境
体系结构概要
类详细介绍
TextureManager
Star
SolarSystem
Camera
总体逻辑介绍
全局变量
int main(int argc, char **argv)
void init()
void display()
void onTime(int value)
void onKeyDown(unsigned char key, int x, int y) 与void onKeyUp(unsigned char key, int x, int y)
小结
项目效果展示
运行演示
工作量
原创性
参考资料
我选择的是opengl实现太阳系的项目。实现了月球绕地球转、地球绕太阳转的动画、第一人称摄像机、全局上帝视角、地球视角、材质贴图、Phong Shading等要求。
C++标准
C++17
操作系统平台
Linux
构建工具
cmake 3.16
桌面服务代理
wayland或XServer
依赖软件包
freeglut――opengl核心依赖
libsoil――用于加载贴图纹理
glm――用于线性代数计算
main.cpp
主函数,包括opengl的初始化、注册回调等。
Camera类
用于摄影机相关功能的实现。
Star类
用于星体相关功能的实现。
SolarSystem类
管理所有星体的容器。
TextureManager类
管理纹理的容器。
本项目的设计思想参照前端设计与游戏设计中常见的“数据驱动”的方式,核心思路就是在控制阶段(初始化阶段、键盘控制回调、显示的回调等)更新各个对象的状态(属性值),在绘制阶段(每帧)集中使用对象的状态。这样做最大的益处在于对对象的操作只需要简单地修改其状态属性即可,而对这些状态的使用可以集中在同一个地方,极大地减少了代码量与耦合度,提高了开发效率与维护便利性。
本项目涉及的类一般有两个功能:保存一些状态与被动地根据自身状态调用opengl的API来完成某种功能。状态的保存、API的调用均由主逻辑控制。这一节先介绍各个类的功能。







毕业66资料站 biye66.com ©2015-2026 版权所有 | 微信:15573586651 QQ:3903700237
本站毕业设计和毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!