![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Games101
文章平均质量分 84
Q_pril
Akkkkkk
展开
-
Games101:作业7(含提高部分)
ssp = 16, 轻薄本不接电源的情况下,65minssp = 8, 轻薄本接电源的情况下,37minC++11 多线程(std::thread)详解_sjc_0910的博客-CSDN博客_c++多线程Games 101 | 作业7 + 路径追踪 Path Tracing + 多线程 - 知乎...原创 2022-04-18 01:12:58 · 5794 阅读 · 7 评论 -
Games101:作业6解析(含提高部分SAH)
作业概览在之前的编程练习中,我们实现了基础的光线追踪算法,具体而言是光线传输、光线与三角形求交。我们采用了这样的方法寻找光线与场景的交点:遍历场景中的所有物体,判断光线是否与它相交。在场景中的物体数量不大时,该做法可以取得良好的结果,但当物体数量增多、模型变得更加复杂,该做法将会变得非常低效。因此,我们需要加速结构来加速求交过程。在本次练习中,我们重点关注物体划分算法 Bounding Volume Hierarchy (BVH)。本练习要求你实现 Ray-Bounding Volu...原创 2022-04-10 18:35:21 · 4663 阅读 · 10 评论 -
Games101:作业5解析
目录作业要求Render()rayTriangleIntersect()参考链接作业要求在这部分的课程中,我们将专注于使用光线追踪来渲染图像。在光线追踪中最重要的操作之一就是找到光线与物体的交点。一旦找到光线与物体的交点,就可以执行着色并返回像素颜色。在这次作业中,我们需要实现两个部分:光线的生成和光线与三角的相交。本次代码框架的工作流程为: 1. 从 main 函数开始。我们定义场景的参数,添加物体(球体或三角形)到场景中,并设置其材...原创 2022-03-29 20:17:47 · 4893 阅读 · 15 评论 -
Games101:作业4解析(含提高部分)
目录作业要求:1、总览2、算法具体代码实现:提高部分:参考链接:作业要求:1、总览Bézier 曲线是一种用于计算机图形学的参数曲线。在本次作业中,你需要实现 de Casteljau 算法来绘制由 4 个控制点表示的 Bézier 曲线 (当你正确实现该算法时,你可以支持绘制由更多点来控制的 Bézier 曲线)。你需要修改的函数在提供的 main.cpp 文件中。 • bezier:该函数实现绘制 Bézier 曲线的功能。它使用一个控制点序列和一个Ope原创 2022-03-29 16:44:18 · 6885 阅读 · 3 评论 -
Games101:作业3 (旋转模型与使用其他模型)
旋转模型本文分为两部分,第一部分是对于原始模型以下方的命令形式调用,通过键入a或d对模型进行旋转,观察模型结果。./Rasterizer如果模型旋转无变化,注意未必是电脑渲染结果慢,而是angle角度变化太小了,可以设置anlgle = 10,如下图所示。如此便可以任意旋转,下图是我旋转到某一角度的截图。如果想要使用其他的着色模型,需要修改active_shader为你想要使用的着色模型,注意如果要想使用texture纹理着色,还需要同步修改texture_path,即纹...原创 2022-03-22 11:43:07 · 578 阅读 · 0 评论 -
Games101:作业3(管线分析、深度插值、libpng warning、双线性插值等)
作业介绍: 如上图所示为本次作业需要完成的任务,在介绍我对于本次作业的心得体会之前,我想先主观的感叹一句,我真的觉得这次作业很难。虽然上课时理论的学习是可以接受并理解的,但实操问题真的很多,我感觉我本次的作业基本上是“临摹”出来的。理论与实践脱轨的一个关键原因,我认为是有很多变量、对象没有弄清,没有理解它们对应的物理意义,所以在编写代码有些无从下手,不知道怎么把公式“变现”,所以我决定很有必要先介绍一下整个代码的实现流程,其中部分流程其实是在前两个作业已经出现的,但因为当时代码相对好...原创 2022-03-21 21:55:30 · 6953 阅读 · 25 评论 -
Games101 作业2(解决黑线问题)
目录作业概述Bouding box判断点是否在三角形内Z-buffer提高部分黑线解决方案作业概述在上次作业中,虽然我们在屏幕上画出一个线框三角形,但这看起来并不是那么的有趣。所以这一次我们继续推进一步——在屏幕上画出一个实心三角形,换言之,栅格化一个三角。上一次作业中,在视口变化之后,我们调用了函数rasterize_wireframe(const Triangle& t)。但这一次,你需要自己填写并调用函数 rasterize_tria...原创 2022-03-11 18:13:48 · 5145 阅读 · 0 评论 -
Games101作业答案:作业1
作业1,第一个正式作业,做出一个rasterizer(光栅化器),粗浅的说就是把一个空间上的物体显示在屏幕上,闫老师那边已经给我们做出来框架,需要我们补充的是:模型变换函数,这里指三角形绕Z轴旋转的旋转变换 视角变换函数,这里指将模型放置在给出的人眼位置的平移操作 透视投影变换函数,这里指将原z轴处的模型投影到近z处的前两个分别代入绕Z轴的旋转矩阵和平移变换矩阵即可,最后一个稍有难度,根据课程我们已知透视投影变换需先做从透视投影到正交投影的变换①,再做正交投影变换②。根据函数给出的参数,①对应的矩原创 2022-03-07 20:46:29 · 1169 阅读 · 4 评论 -
Games101环境配置和作业答案:pa0
引言这一节的作业主要是为了引导大家配置环境,并学习Eigen库的矩阵、向量等操作。本篇帖子用来记录一下我的心路历程和最终代码。环境配置 ①先来说一下我在环境配置上吃的苦,我本身装有VMware虚拟机,内核用的是Ubuntu,考虑到Linux在搞开发上的优越性,我打算用这个完成图形学作业,但是真的太太太麻烦了!闫老师那边已经给了Virtual Box和内核,所以真正用Linux并且配置环境的帖子很少!比较有参考性的一个博主的博客我放在这里,该博主的配置时间比较新,对于以后还想尝试环境...原创 2022-03-07 20:20:05 · 7810 阅读 · 5 评论