
计算机图形学
文章平均质量分 64
DayDay upup
这个作者很懒,什么都没留下…
展开
-
Games101作业7 蒙特卡洛路径追踪
因为蒙特卡洛积分要求对谁积分就要在谁上面进行采样,所以渲染方程进行改写,从对dω积分改为对dA积分,我们只需要知道dω和dA的关系然后替换即可。在下面这种情况下,当光源面积很大时,我们仅需很少的光线就能得到想要的效果,而当光源面积很小时,需要很多的光线才能打到光源,因此为了能尽快的打到光源,我们需要采取合适的pdf,直接对光源进行采样。渲染方程告诉我们的是,我们需要在物体表面的半球上进行积分,才能解出这个渲染方程,但是在半球上进行积分计算机不擅长做这个事情,因此我们采用蒙特卡洛积分解决这个问题。原创 2023-09-15 10:40:52 · 370 阅读 · 0 评论 -
Games101作业6(BVH的构建和遍历)
当场景中有多个物体时,先找到xyz哪一项加起来的值最大,以最大的坐标进行排序,进行划分,以下图为例,如果X的和最大,即对X进行划分。bounds对象的目的,找到该区域的包围盒,但可以通过方式找到包围盒,这种遍历方式较为耗时建议删除。对BVH的结构的理解,在BVH的非叶子节点中,都有多个物体,所以走到只有叶子节点的时候才会真正的。在recursiveBuild中,有如下代码,bounds对象创建而未使用。在场景中有两个物体时,将两个物体包围起来,再分别进行划分,对于代码。原创 2023-09-14 15:45:32 · 325 阅读 · 0 评论 -
Games101作业5解读
第一步,找到光线和物体的交点,然后往外走一点,这里为什么是Vector3f shadowPointOrig = (dotProduct(dir, N) < 0)?第一步先与场景的求交,如果光线打到了物体,就继续判断打到的物体的材质,根据不同的材质进行不同的处理,这里重点说下REFLECTION和default。第二步,从shadowPoint中,往光源方向打一根光线,如果没照到物体,或者照到了物体比光远,说明光源可以打到物体,则没阴影。在REFLECTION中,这一段代码有点问题,应该是如下代码。原创 2023-09-09 15:56:34 · 333 阅读 · 0 评论