HNU计算机图形学大作业-太空黄金收藏

前言

李rh计算机图形学的大作业,是最认真完成的选修作业,花了很多时间写代码,找模型,甚至打算学习一下建模(后面放弃了,太难了)。但很搞笑的是同一个项目,用新买的电脑打不开(原电脑损坏了),配个OpenGL环境配了一天都打不开自己写的项目,所以后面也懒得优化和给代码加注释了,如果感兴趣的可以去研究

项目链接:https://gitee.com/jzbbbb/graphics-assignment.git

下面是项目演示视频

计算机图形学大作业之太空宝藏

作业要求

介绍

在3202年,天文学家发现了一颗周围有陨石的行星,那里有一些珍贵的黄金。作为一名杰出的飞行员,你正在驾驶一艘宇宙飞船获得这些金牌。然而,当地人的几辆太空车正在四处走动并保护他们。你需要避开他们并收集金牌。
在这里插入图片描述
为了完成这个项目,您需要从头开始编写自己的代码。您需要的所有基本技术已经或将在我们的教程中介绍。您最好的框架代码是作业1和作业2的解决方案程序。

这个项目的最终目标是让你有机会更多地练习计算机图形学中的基本但非常重要的主题:你必须经历对象加载、变换矩阵、照明、纹理映射、skybox、着色器和交互,然后才能获得满意的分数。

实施详细信息

1.基本要求:

  • 用相应的纹理渲染行星、航天器和至少三个本地太空飞行器。为了简化,请将它们的质心保持在与世界空间的一个轴垂直的平面上。
  • 地球和当地的太空飞行器应该一直自转。
  • 本地空间飞行器应该一直在水平轴上移动。
  • 创建一个skybox作为虚拟场景的背景。
  • 创建点光源。应在所有对象上明显观察到基本的灯光渲染(环境光、漫反射和镜面反射)。请正确设置照明参数,以便进行清晰的演示。在演示过程中,您可以通过键盘交互来调整灯光参数。
  • 生成一个包含至少200块随机漂浮岩石的小行星环云。这些漂浮的岩石应该在有限的范围内有随机的位置。
  • 视点应在航天器尾部后方,并与其相对固定。观察方向应与航天器头部指向的方向一致。观看我们的演示视频以获得直观的说明。
  • 对于交互:
    • 鼠标:使用鼠标控制航天器的旋转。例如,如果向左移动鼠标,航天器的头部将向左转动。
    • 键盘:请使用以下四个键来控制航天器的平移:
      • i.向上光标键:将航天器向前移动一定距离。
      • ii.向下光标键:将航天器向后移动一定距离。
      • iii.向左光标键:将航天器向左移动一定距离。
      • iv.向右光标键:将航天器向右移动一定距离。
    • 与环境互动:
      • i.避开本地太空飞行器。当地的太空飞行器正在四处移动并搜索你。如果他们抓到你,它会被提醒(纹理变化)。(提示:碰撞检测)。
      • ii.收集金牌。寻找隐藏在地球周围岩石中的金子。通过靠近它们来收集它们。它们被收集后会消失或腐烂成岩石。
      • iii.完成收集。在你完成所有收集任务后,你的航天器的纹理应该改为金色。

在这里插入图片描述
2.额外要求:

  • 添加另一个光源。两个光源的基本光渲染结果应根据Phong Illumination Model的求和特性确定。
  • 为行星做法线贴图。我们为这个星球提供了一张正常的地图。应该加载行星纹理图像和法线贴图图像,以便在片段着色器中使用它们。
  • 丰富宝藏。我们只将黄金作为收藏品。您可以在线下载其他obj和纹理文件,以丰富宝藏的类型。

在这里插入图片描述

框架和文件

  1. 我们提供了该项目中物体(行星、航天器、岩石、太空飞行器)的基本.obj文件。还提供了相应的纹理图像。
  2. 我们提供一个演示视频。一定要仔细观看,以充分理解我们的要求。
  3. 作业1和作业2的解决方案程序应该为您提供一个良好的起点。这个项目中的大多数任务都可以分解为简单的任务,这些任务已经在我们的讲座和教程中教授过了。我们为您提供一些建议:
    • 掌握模型坐标系、世界坐标系和相机坐标系之间的转换知识。
    • 掌握渲染管道、VAO和VBO的良好知识。你可能会因为同时处理这么多对象而感到困惑。尝试使用VAO和VBO来帮助您解决问题,因为渲染对象的各种信息可以附加到这些项中。
    • 尽量保持整洁的编码风格。干净的编码风格有助于调试。通过适当的注释保持头脑清醒。此外,请尝试将重复的代码封装到函数中。
  4. 推荐的库:
    • 用于创建和管理包含OpenGL上下文的窗口的FreeGLUT。
    • GLEW,用于查询和加载OpenGL扩展。
    • GLM是一个用于图形软件的C++数学库。
    • 协助从.obj文件加载三维对象模型。
    • 用于从图像加载纹理的土壤。

作业将按照以下评分方案进行评分:
在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图形学大作业----内容 一、主菜单的菜单项 基本图形绘制、图形变换、自由曲线绘制、图形裁剪、图形填充 二、二级子菜单(基本图形绘制) 1.直线绘制: 1)Bresenham绘制直线 2)DDA绘制直线 3)改进的Bresenham绘制直线 4)系统库函数绘制直线——直线线宽、线形设计 2.绘制圆(中点Bresenham) 3.Bresenham绘制椭圆 4.矩形、正方形的绘制 5.任意多边形的绘制 6.任意圆弧的绘制 三、二级子菜单(图形变换) 1.基本图形变换 1)平移变换 2)比例变换(等比例、不等比例) 3)错切变换(x方向、y方向、x-y方向) 4)对称变换(坐标轴、原点、45°直线) 5) 旋转变换(顺时针旋转、逆时针旋转) 2.复合变换(两次变换) 1)复合平移变换 2)复合比例变换 3)复合旋转变换 3.相对任意参考点的比例变换 4.相对任意直线的错切变换 四、二级子菜单(自由曲线绘制) 1. Bezier 曲线绘制 1)1次Bezier曲线 2)2次Bezier曲线 3)3次Bezier曲线 2. 3次B样条曲线 3. Hermite三次样条曲线 4. 2次Bezier曲线的拼接 五、二级菜单(图形裁剪和图形填充) 1.图形裁剪(直线裁剪) 2.图形填充 附加: 撰写大作业要求: 1)要求作品的系统设计结构合理,条理清晰,界面友好;具有较强的交互能力,完成功能。 2)要求使用visual studio进行系统开发,提供源代码项目文件夹和可执行文件(生成release的exe文件)。 3)大作业报告要求撰写字迹工整,条理清晰,语言流畅。 内容包括:1)设计概述 2)软硬件运行环境 3)系统功能设计(系统功能图) 4)算法原理 5)成果展示(打印,并裁剪为合适大小,粘贴在报告中。) 6)实现代码(打印) 7)个人总结

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值