Vray渲染的内部流程

大家好,我是逆水。今天我们来讲解一下当我们点击渲染时,它具体的流程是什么。这是我个人认为比较重要的一个知识点。

我们首先说一下这个图解存在的前提:首次引擎用的是发光图,二次引擎随便选哪个都可以。但是首次引擎必须是发光图。那么它的流程就是以下图片中的这样一个流程。

我来解释一下,首先“投射搜寻光线”,它从摄像机发射搜寻光线,然后“自适应细分判断”,它决定何处采点、何处不采点。接着是“从二级到一级反弹运算”,这一步可能不是很好理解是什么意思,我们通过图解来看一下。

摄像机发射搜寻到方框1,然后反射到方框2.之后蓝色的线条表示二级反弹。这个流程已经讲解过了,大家也都懂了。但是真正运算的时候,摄像机是这样发射搜寻光线的,最后收到的肯定是光源。他找到光源后,其实是从光源判断这个光源有多亮,方框1和方框2分别有多亮,最终知道方框1内点的信息。

所以这个引擎虽然是反向原理,但是最终算亮度的时候肯定要从灯光的地方开始算。所以从二级到一级反弹运算是先算二次反弹再算一级反弹。

自适应细分的时候已经确定了何处采点、何处不采点;那么从二级到一级反弹运算完成之后呢,已经知道了每个采样点的亮度是多少。这样就可以“生成光子贴图并保存在内存里”。接下来开始渲染图像,渲染图像的时候是“调用内存中的光子贴图渲染最终图像”,最后“完成渲染而内存中仍保留调用的光子贴图”。这也就是为什么渲染之后可以点一下保存,就是这个道理。

那我们现在选择一个单帧的,然后选择低质量,来渲染一下。注意二次引擎选择的是“无”。然后点击渲染时,你会看到有一个进程框出现。

这个界面上可以看见prepass,这是预算的意思,表示正在运算。运算完成之后会出Rendering image,这表示已经在渲染图像了。那我们来整理一下刚才这个过程开始运算的时候完成的是哪几步。

在运算的时候进行了前4步,包括“投射搜寻光线”、“自适应细分”、“二级到一级反弹运算”、“生成光子贴图并保存在内存里”。这些过程都在刚才的prepass里进行。之后“调用内存中的光子贴图渲染图像(就是最后把图像擦出来的过程)”,这是rendering image.表示在渲染图像。

那么渲染完成之后,内存中仍然保留调用的光子贴图。也就表示它生成的光子图现在仍然在内存里面,你如果想把它永久保存下来,你就可以点一下保存。如果你不保存,重新调一下数值后又重新渲染一次生成了新的光子贴图,就会把原来内存里的光子贴图替代掉。所要要是不保存的话,再次渲染就会彻底丢失。整个就是这样的一个流程,一定要记住。

下面为大家证明一下到底是不是从二级到一级进行的运算。比如我现在二次引擎选择灯光缓存,为什么选它呢?因为这个引擎还没讲过,大家可以先看一下大致流程。

现在点一下渲染,大家注意进程表上显示的是什么。写的是building light cache,意思是建立灯光缓存结构。

这说明它肯定是先运算二级反弹,然后在运算一级反弹。现在把细分值改小一些,改成300,然后再次进行渲染,还是注意进程框。前提是首次引擎选择发光图,二次引擎是灯光缓存。

再看一下进程,进程框上显示的是building light cache,这个完成之后是prepass,接着是rendering image.

通过上面的演示就已经证明了它的过程肯定是从二级到一级运算。那为什么不选择BF算法来进行演示呢?由于BF算法非常简单,你可以看到他的参数也非常少,当它作为二次引擎的时候,首先它不会产生分裂,也就表示这个细分值没有意义了。

仅仅是反弹次数有意义,所以是一个单光线的运算过程,非常简单。在Vray就直接把它整合到比如prepass里面了。

如果二次引擎渲染选择BF,直接就是prepass了。之所以选择灯光缓存演示的目的就为了让大家看清它是先进行二级反弹,再进行以及反弹的。

最重要的内容还是真个流程,要把这个流程记住,每一步分别都做了些什么。最重要的是前5步,第6步部只是做一个提示:渲染完成之后内存中仍然保留着生成的光子贴图。这篇文章的重点就是渲染的流程是什么。

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

 

0
封面图

社交账号快速登录