Games101作业
文章平均质量分 55
Games101作业
M͏͏r.D
这个作者很懒,什么都没留下…
展开
-
Games101作业7
导入代码以后会出现两个函数需要返回值,这里先随便构造一个对应的返回类型解决报错。然后解决fopen的不安全问题,解决办法跟上个作业一样。然后是修改c++语言标准。完成这个函数的时候需要先将上次作业的几个函数移植到这次作业里。另外在渲染的时候最好使用多线程处理,会极大缩短渲染时间。启用OpenMP第一步,在项目设置中启用OpenMP。之后代码就可以跑通了,并且生成了一张纯白色的图片。然后castray函数主要参照作业里给的伪代码。之后还有这个错误,应该是模型路径的问题。原创 2024-03-07 13:14:56 · 299 阅读 · 0 评论 -
Games101作业6
导入代码以后运行代码会出现三个报错,一个是fopen函数的不安全问题报错,另一个是c++语言标准过低报错。c++语言标准过低报错: 找到“项目属性->配置属性->C/C++->语言->c++语言标准”,设置成ISO C++17 标准 (/std:c++17)或者更高。移植过来发现用不了,因为原先的castRay函数已经从Renderer.cpp中移除了,Scene类中定义了名为castRay的成员函数,并且参数也有所变化。只需判断其包围盒内部的物体是否与光线相交,如果有物体相交,则返回更近的物体。原创 2024-03-06 19:30:21 · 424 阅读 · 0 评论 -
Games101作业3
这个也相对作业2进行了改动,节省了空间。这一步用uv坐标对纹理采样获得颜色即可,但是直接采样的话会报错,发现是有一些u坐标出现了负值,直接将u坐标限制在0-1之间即可解决,其它代码和phong shader一样。第一步要计算周围的四个点就要先找到周围的最近的整数坐标值,接着就可以计算周围四个点的uv坐标,用新的四个uv坐标进行采样之后进行插值就可以了,主要代码如下。这部分要计算环境光,漫反射和高光反射,先分别计算各部分计算需要的参数,最后带入公式计算即可,这里我还顺便计算了一下phong着色模型。原创 2023-12-08 15:29:32 · 822 阅读 · 0 评论 -
Games101作业5
这里你需要为每个像素生成一条对应的光 线,然后调用函数 castRay() 来得到颜色,最后将颜色存储在帧缓冲区的相 应像素中。我们要做的就是将屏幕空间下的坐标最后转换到世界空间的坐标这里一开始是处于屏幕空间坐标下的,如下图,这里假设原点在左上角,opengl原点在左下角,dx原点在左上角,那么首先想到的是将i,j分别加0.5取得像素中心坐标接着将坐标变换到NDC空间,NDC空间是一个长宽高取值范围为[-1,1]的立方体,超过这个范围的顶点,会被GPU剪裁。原创 2023-12-30 17:27:16 · 434 阅读 · 1 评论 -
Games101作业4
bezier每次传入的t都会返回一个在对应t下贝塞尔曲线上的点。原创 2023-12-22 17:44:40 · 394 阅读 · 0 评论 -
Games101作业2(光栅化 + MSAA )
就是把每个像素的采样点增加为4个,分别采样每个点得到像素的覆盖率,最后乘上像素的颜色就可以。这里之前犯错的是p1下标要对3取余,否则获取v{3}的值会显示错误。原创 2023-11-19 15:35:55 · 55 阅读 · 0 评论 -
Games101作业1
Eigen::Matrix4f get_rotation(Vector3f axis, float angle):是得到绕任意 过原点的轴的旋转变换矩阵。最后就是将绕任意轴旋转应用到图像上,要先在在rasterizer.cpp加入接口函数设置旋转矩阵。因为这里输入的zNear和zFar都是正值,实际上应该是个负值,所以计算t的时候 对n取反。然后就是逐个构建出透视-->正交,正交变换矩阵,正交变换矩阵是一个先平移再缩放的顺序。这里按照公式构建出矩阵即可,最后要变成四阶矩阵,因为要进行仿射变换。原创 2023-11-13 11:39:32 · 39 阅读 · 0 评论 -
Games101作业0
是一个点的旋转的问题,这里把平移和旋转矩阵合并到一个矩阵里了。在windows的vs环境下完成,环境配置参考。原创 2023-11-02 10:20:15 · 60 阅读 · 0 评论