打开二级反弹产生更多采样点的原因

大家好,我是逆水。今天我们来讨论一下为什么当二次引擎是“无”的时候生成的光子数与二次引擎打开BF算法会不同呢?首先我们先显示采样,

然后我们使用640乘480的图

二次引擎是“无”,使用当前的设定渲染一下,你会看到当前是4200多个采样点,

那么当我把二次引擎选择BF算法的时候,这个采样点就会增加。

现在已经是5000多个采样点,和刚开始4000多个采样点做一下对比,很明显多了很多的采样点,原因是什么呢?

首先。光子贴图所记载的是物体的间接照明而非直接照明。举例来说,我们现在模式选择“从文件”然后调用桌面456,

渲染一下然后停止,把显示渲染关掉。这样它就直接渲染了,因为已经不需要运算光子贴图了,所以可以直接擦除图像。可是如果现在我们把这个灯的亮度降低,比如它的亮度值是100,我们将它降到9,看一下对这个效果有没有影响呢?或者干脆把它关掉也可以。很明显场景是变暗了。

那么对比一下,非常的明显可以看到没有灯光照射直接用光贴图,这一点很明显的证明了光子贴图所记载的就是这个图像内所有物体的间接照明信息,并不包括直接照明。

所以当你调用光子贴图的时候,你的灯光仍然不能删除掉,也不能改他的值,否则会和原来的效果不一样。默认了光子贴图记载的就是间接照明,这个要切记!

当然在随后我们学灯光的时候,我们可以把灯光的直接照明效果存储起来,这是后话。但是默认发光图记载的就是间接照明信息,以这个作为依据,我们就可以解释为什么采样点会变多。

我们通过一个简单的图解来看一下,

比如这是我们的场景,然后有摄像机,我们假设摄像机照射过来之后,比如我们的首次引擎选择的是发光图,然后摄像机投射过来的光线之后发现了只有三个点需要采点,

为什么呢?就是因为自身细分,它根据自身细分的原理判断出这三个点需要采点。这三个点需要采点进行预算,所以毫无疑问摄像机所看到的物体这三个位置必须加采样点。

然后我们在看这个方形的点

当前的效果是二次引擎没有打开,那么想一下当计算机运算这个点的亮度时发现下面这个方块处这个点向它反射的光线,

所以V-ray是不是要计算这个点的亮度是多少呢?那么这个点的亮度是多少就会运算它的直接照明,不会运算它的间接照明,这是因为你的二次引擎没有打开,所以当预算这个点亮度的重要前提是它已经发现了这个点会向它发出光线。

这个方块里矩形的点,但是注意了矩形这个点在自身细分时是不进行采点的,因为自身细分判断出只有这三个要进行采点,并不包括这个块形这个位置。

那它运算这个点亮度的是多少时,发现矩形这个点向它反射的光线,然后它会运算这个矩形点的亮度是多少,但它只会计算它的直接证明不会计算它的间接照明,原因就在于二次引擎是关的。

那么这个到底采不采点呢?肯定是不采点的,因为并不需要计算这个点的间接照明,只需要计算它的直接照明就可以了。而光子贴图记载的就是各个信息点的间接照明。所以很明显不会采点。当我们将二次引擎选择BF算法的时候,

这是表示有二次反弹运算,那么再回到刚才的图解里面,

开始自身细分确定的肯定就是三个点,但是它发现在运算这个点的时候,方块这个点向它投射的光线,然后它运算方块这个点的亮度是多少。那么方块这个点的亮度如何运算?

首先运算直接照明,然后还会运算它的间接照明。因为我们打开了它的二次反弹引擎,既然需要计算这个方块点的间接照明,由于光子贴图记载的是每个像素点的间接照明信息,所以此处就必须采一个点,

所以如果打开二次引擎的话,所以这个方块点也就变成了一个圆的采样点,就等于多出了一个。那么这个采样点和其他的有什么不同呢?这个点之所以采点并不是因为自身细分判断出这需要采点的,而是因为你打开二次引擎运算。运算到这发现它需要采点,所以又给它加了一个采点。

这就是为什么我加入二次引擎时,采样点会变多,就这个道理。

那有没有这种可能呢?比如当它运算这个点的时候,发现屋顶向它投射的光线。

比如屋顶向它投射的光线,当前的二次反弹引擎是打开的,所以它运算这个点时,肯定也需要预算它的间接照明,但是会不会采点呢?肯定不会,因为它在摄像机的照射范围之外,发光图景会对摄像机能看到的部分进行采点,所以这个点即使对它进行了运算,也不会采点的。

这就如同光子贴图虽然记载的是每个物体的间接照明信息,但是它在运算的时候,肯定要运算它的直接光照,因为不运算直接光照哪来的间接照明。

所以运算肯定是运算直接光照的,但是最终它所记载的就是每一个点的间接照明信息 。所以为什么会多出一个采样点就是这个道理。

那么这个地方也会对它进行间接照明运算,但是它在摄像机的观察范围之外。所以不可能对它进行采点。

所以我们明白了为什么会产生更多的采样点。

那么今天呢,就给大家分享到这里,如果你觉得文章对你有帮助,希望将网站分享给你的朋友。感谢大家支持!

0
封面图

评论0

社交账号快速登录