Vray是一个典型的以MC分布式光线追踪为核心的渲染器,我们在渲染过程中经常会面对很多不同类型的计算过程,其中很多都离不开MC分布式光线追踪。下面我列出需要调用MC分布式光线追踪过程的特性和子功能块:
1:Fixed类型的图像反走样器(当其取值大于1时,会调用MC分布式过程来对每像素进行反走样。)
2: Adaptive DMC sampler类型的图像反走样器(老版本叫Adaptive QMC sampler,它和fixed类型唯一的区别是带有自适应过程)
3:Vray Mtl材质中的模糊反射和模糊折射特性的计算(当你将Vray Mtl中的Reflection面板或Refraction面板里的Glossy值调为任何小于1的值时,即打开了Glossy effect(模糊特性)计算的过程,这个过程将调用MC分布式过程。)
4:Vray Dirt Map 贴图的计算过程(也就是我们常说的Vray 的AO,这一过程需要调用MC分布式光线追踪来发射大量探测光线去收集每个像素周围的阻塞情况。)
5:Vray面光源的软阴影计算过程(与传统的光线追踪投下的生硬阴影边缘不同,Vray的面光靠MC分布式光线追踪发射的次级光线来摸拟出面光源应有的阴影虚化效果。)
6: Vray的运动模糊特性(运动模糊的计算依靠的是分布式光线追踪算法对时间域的离散计算,所以这个过程完全依赖MC分布式过程。)
7:Vray的摄像机景深特效(景深的实现依靠的是分布式光线追踪对空间距离的离散计算。)
8:IrradianceMap的计算过程 (在IRmap的计算过程中,当通过prepass分析图像并放下采样点后,需要从采样点向周围环境的虚拟半球空间发射分布式光线以探测和收集信息,从而计算出采样点本身像素的最终GI结果,这个过程也就是调用MC分布式光线追踪来完成的,而Hsph subdivs决定的其实就是这个过程中发射半球分布式光线的数量。)
9:Brute force算法计算GI的过程 (Brute force即老版本的QMC GI算法,无论你在Vray间接照明面板的主GI引擎还是次级GI引擎中打开Brute force,都是直接调用MC分布式过程对图像上每一个像素进行GI计算)
根据上表中列出的主要依靠MC分布式过程的特性,我们不难看出MC分布式光线追踪算法在VRay中的主导性地位,那么,请大家至少记住上表中我所提到的这几种情况,因为它们的计算过程都和下面我要讲的这个面板里提供的参数有关,那就是Vray DMC sampler (Vray DMC核心采样管理器)。
原来这个面板的名字叫"Vray QMC sampler",Vray从1.5版开始更名为"DM C",这里很多朋友对此都有不解,到底DMC与QMC的区别在哪里?有没有区别,提及于此,我先为大家理清楚几个概念:
首先,理解一下MC,也就是Monte Carlo(蒙特卡罗),蒙特卡罗其实是一种分布式积分,而蒙特卡罗算法专门用这种积分所产生的分布概率来产生各种模糊数据,其实上表所涉及的特性都是为了解决模糊效果,反走样其实就是为了将图像锯齿模糊化,模糊反折射也是为了产生模糊但有源于真实情况的反折射成像,运动模糊其实就是为了让成像根据运动速度与时间的关系产生出模糊效果,诸如此类。
而什么又是QMC呢?全名是Quasi-Monte Carlo(准蒙特卡罗),这其实是纯蒙特卡罗算法的一个变种,它缩减了算法取样的范围,QMC所产生的随机样本全部来自于一个低差异数据序列,而不是传统MC的庞大假随机数生成,但事实上,Vray在新版本中已经摒弃了QMC分布式特性,使用一种全新的MC变种算法,也就是接下来我们要说的DMC。
DMC的全称为:Deterministic Monte Carlo (确定性蒙特卡罗),DMC作为MC的一个变种,其区别在于,MC生成用于模糊结果的采样点情况源于一个庞大的随机数据集,即使我们计算的情况或考虑的内容本身根本没有发生改变,但计算的模糊结果每一次都是不一样的。DMC则不同,DMC先依据某种规则考虑计算的重要性和内容的特质,然后事先确定一组数据序列,而样本则产生于这组已确定的数据序列,因此,多次的计算结果是一致的,这有利于动画的计算,以及更好的降低可能带来的噪点情况,DMC和QMC之间的区别在于,这两者选择产生样本的数据序列集不同,考虑规则不同。事实上,QMC只是DMC的一个子集。
OK,我们不需要在这些纯理论定义上浪费太多时间,点明一下就行,我着重要阐述的,是Vray的这个核心DMC,是如何影响上表中这些功能实现的。
先来看看下面这个面板,这就是Vray DMC sampler,Vray的核心 :