《GAMES101》课程作业文件压缩包指南

需积分: 0 125 下载量 54 浏览量 更新于2024-10-22 3 收藏 8.88MB ZIP 举报
资源摘要信息:"《GAMES101-现代计算机图形学入门》作业0-8是面向计算机图形学初学者的一系列练习,涵盖了从基础知识到高级主题的各个方面。作业文件名称列表显示了从作业0到作业8的各个阶段,每个作业都旨在帮助学生理解和掌握计算机图形学的关键概念和技能。 首先,作业0通常作为课程的入门作业,它可能包括对基本图形学概念的介绍,比如渲染管线、图形API(如OpenGL或DirectX)、以及相关的数学基础(线性代数和几何变换)。这个作业的目的是让学生熟悉图形学的基本工具和工作流程。 作业1可能关注更具体的图形学主题,例如渲染技术的基础。学生可能会被要求实现简单的光栅化算法,这是将3D场景转换为2D图像的常用技术。在这一阶段,学生将学会如何处理顶点数据,进行坐标变换,并实现基本的着色技术。 作业2和作业3可能会要求学生深入理解光照模型和材质属性。例如,学生可能会学习到Phong光照模型,这是一个经典的局部光照模型,包括环境、漫反射和镜面反射三个组成部分。这些作业对于理解如何模拟真实世界中的光线与物体交互至关重要。 到了作业4和作业5,学生可能会开始接触更高级的主题,比如纹理映射、阴影生成和深度缓冲。纹理映射允许3D模型拥有详细的表面图案,而阴影和深度缓冲技术则增强了场景的真实感。学生在这一阶段将学会如何处理更复杂的场景,并提升渲染结果的视觉质量。 作业6可能涉及动态场景和动画的基础,这要求学生了解如何在图形程序中处理时间和运动。在这一部分,学生可能会学习到骨骼动画和关键帧动画等技术。 作业7可能专注于更高级的渲染技术,如光线追踪。光线追踪通过模拟光线在场景中的传播来生成高度真实的图像,包括反射、折射、阴影和全局光照效果。这是一个计算密集型的过程,但它能够提供极高质量的渲染效果。 最后,作业8可能是对整个课程内容的一个综合应用。学生可能会被要求实现一个完整的图形学项目,将之前学习的所有技术结合起来,创建一个复杂的3D场景。这可能包括复杂的光照、纹理、动画和渲染技术的综合运用,以及可能的优化技巧,以确保程序运行高效。 整个作业系列不仅帮助学生建立理论知识,更重要的是,它们提供了一个实践和应用这些理论的平台,使学生能够通过动手实践来深入理解计算机图形学的各个方面。通过完成这些作业,学生将具备将抽象概念转化为实际视觉效果的能力,并为将来可能从事的图形学相关工作打下坚实的基础。"
1513 浏览量
在这部分的课程中,我们将专注于使用光线追踪来渲染图像。在光线追踪中 最重要的操作之一就是找到光线与物体的交点。一旦找到光线与物体的交点,就 可以执行着色并返回像素颜色。在这次作业中,我们需要实现两个部分:光线的 生成和光线与三角的相交。本次代码框架的工作流程为: 1. 从 main 函数开始。我们定义场景的参数,添加物体(球体或三角形)到场景 中,并设置其材质,然后将光源添加到场景中。 2. 调用 Render(scene) 函数。在遍历所有像素的循环里,生成对应的光线并将 返回的颜色保存在帧缓冲区(framebuffer)中。在渲染过程结束后,帧缓冲 区中的信息将被保存为图像。 3. 在生成像素对应的光线后,我们调用 CastRay 函数,该函数调用 trace 来 查询光线与场景中最近的对象的交点。 4. 然后,我们在此交点执行着色。我们设置了三种不同的着色情况,并且已经 为你提供了代码。 你需要修改的函数是: • Renderer.cpp 中的 Render():这里你需要为每个像素生成一条对应的光 线,然后调用函数 castRay() 来得到颜色,最后将颜色存储在帧缓冲区的相 应像素中。 • Triangle.hpp 中的 rayTriangleIntersect(): v0, v1, v2 是三角形的三个 顶点, orig 是光线的起点, dir 是光线单位化的方向向量。 tnear, u, v 是你需 要使用我们课上推导的 Moller-Trumbore 算法来更新的参数。