八叶一刀·无仞剑

万物流转,无中生有,有归于无

导航

04 2020 档案

摘要:在Python中,with语句的目的是简化try/finally的模式,使得代码可以保证运行完毕后执行某一项操作,哪怕是发生了异常、return等调用而终止,也一定会执行指定的操作。为了使代码可以使用with语句,with语句中的类必须实现__enter__和__exit__两个方法,分别在with 阅读全文

posted @ 2020-04-29 21:09 闪之剑圣 阅读(883) 评论(0) 推荐(0)

摘要:多重采样反走样(Multisample anti aliasing)技术,简称MSAA,是实时渲染中解决抗锯齿问题的一个常用方法。今天将对该算法的思想予以介绍。 Aliasing 想了解该算法的思想,就要首先明白锯齿是如何产生的。渲染中的锯齿又称走样(Aliasing),是渲染管线在进行光栅化时,由 阅读全文

posted @ 2020-04-24 11:16 闪之剑圣 阅读(3180) 评论(0) 推荐(0)

摘要:在进行路径追踪时,一个要解决的问题是怎样以有限的资源来无偏估计具有无限长度路径的光照贡献。俄罗斯轮盘是解决这个问题的一种方法,它基于这样一种思路:对于物理正确的光照传输,长度越长的路径其反射的光照越小,因此可以将贡献量足够小的路径剔除掉。 为了应用俄罗斯轮盘,我们在每次要投射一条新的路径的时候,设定 阅读全文

posted @ 2020-04-15 20:31 闪之剑圣 阅读(1734) 评论(0) 推荐(0)

摘要:C++11有一个非常重要的新功能,就是推出了右值引用的概念。那么什么是右值引用,它的意义在什么地方,本文将对此予以解释。 ###为什么要有右值引用 我们先来看一段代码: class A { public: A() { std::cout << "construct A" << std::endl; 阅读全文

posted @ 2020-04-08 21:00 闪之剑圣 阅读(761) 评论(0) 推荐(0)

摘要:上面两篇博客主要讲述了路径追踪渲染的理论,这次来展示一下它的代码实现。这部分代码主要是我参考PBRT写的,没有实现光的折射,但也足以帮助理解路径追踪算法的原理。 首先,是遍历图片中的所有像素,对每个像素进行采样,注意需要将得到的RGB值进行gamma矫正: 具体采样的代码如下,就是在像素内部随机选一 阅读全文

posted @ 2020-04-04 20:37 闪之剑圣 阅读(1156) 评论(0) 推荐(0)