2020春季GAMES101课程:旋转与投影作业详解

0 下载量 28 浏览量 更新于2024-08-03 收藏 316KB PDF 举报
本次作业是GAMES101课程的第一次编程实践,主要围绕计算机图形学和混合现实研讨会,旨在让学生将理论知识应用到实践中,通过编写代码实现一个基于CPU的简化光栅化渲染器。具体任务包括: 1. **旋转与投影的理解**: - 学习和掌握矩阵变换技术,特别是如何使用旋转矩阵和透视投影矩阵对三维空间中的对象进行变换。这两种变换在游戏开发、图形渲染等领域至关重要,它们能够改变物体的位置、方向和大小,以适应不同的视觉效果。 2. **矩阵构建**: - 实现`get_model_matrix`函数,要求学生创建一个只包含绕z轴旋转部分的三维模型变换矩阵。这涉及旋转角度的计算和向量的旋转操作,要求理解旋转矩阵的数学原理。 3. **透视投影**: - 完成`get_projection_matrix`函数,根据用户指定的参数(如视角(eye_fov)、纵横比(aspect_ratio)、近裁剪平面(zNear)和远裁剪平面(zFar))来构造透视投影矩阵。这涉及到投影的数学公式,如透视比例、视角和视距对图像空间的影响。 4. **三角形变换和渲染**: - 将给定的三维点`v0`, `v1`, `v2`经过模型变换和投影变换后转换到屏幕坐标系。这一步涉及点乘法和矩阵乘法操作,以及如何将变换后的坐标传递给`draw_triangle`函数,用于在屏幕上绘制线框三角形。 5. **代码结构**: - 学生需要在`main.cpp`中修改提供的函数,保持原有结构和命名规范,确保代码的完整性和可运行性。这意味着除了函数实现外,还需要考虑输入验证、错误处理和适当的数据类型。 6. **学习资源**: - 在遇到概念不清或疑问时,学生应查阅课堂笔记或向助教提问,确保对矩阵变换和投影有深入理解。 7. **独立完成**: - 作业强调独立完成,禁止抄袭,鼓励学生自主思考和动手实践,提升编程技能和图形学理论的运用能力。 8. **交流平台**: - 可在论坛上发布问题,但应在充分尝试和理解题目后,确保问题的针对性和清晰度。 9. **截止日期**: - 作业的提交截止日期为2020年3月3日,学生需在规定时间内完成并上传到SmartChair平台上。 通过这个作业,学生将加深对计算机图形学基础的理解,并锻炼实际编程技能。