- 134
- 0
- 约7.58千字
- 约 15页
- 2017-08-11 发布于重庆
- 举报
Vray的全局照明(GlobalIllumination)算法原理与比较(图文)
Vray的全局照明(Global Illumination)算法原理与比较(图文)引言即使没有经过实际统计但毫无疑问地Vray是国内最多人使用的渲染器。有些人会说那是因为Vray是最容易学、最简单的渲染。其实根本不是,Vray是在MentalRay、FinalRender、Brazil、Maxwell…等众多渲染器中最复杂的渲染器,原因很简单,因为它除了一般常见的渲染引擎Qusi Monte-Carlo、Photon Mapping、Irrandiance cache (或称Final gathering)外,Vray又多了Choas Group专利的Light Cache算法。Vray渲染器明确地把光线反弹分为第一次反弹(Bounce)与第二次反弹,第一次反弹有4种渲染引擎可供选择,第二次反弹有3中渲染引擎可供选择,在不考虑原理之下,就有4x3=12中排列组合可供选择。虽然Vray预设有第一次渲染是用辐照映射(Irrandiance cache),第二次反弹是用准蒙特卡罗算法(Qusi Monte-Carlo),但当要调整渲染引擎时,若不是实际了解这些算法背后的原理,真的要调整使还是会使人一头雾水。怎样针对你的场景特性去调配第一次反弹的引擎与第二次反弹的引擎种类? 这还真是不容易回答的问题。这篇文章一开始的时候只是翻译Vray的相关文件,但后来添加如Wikipedia的解释名词以及个人的理解,并顺便将相关知识补齐,所以最后是翻译的内容与原创文章混杂在一起。参考文献放在文章最后。其实Vray用first bounce, second bounce这个用字是很容易误导,不准确的用字。因为Bounce本身就暗示了算法是基于光子映射(Photon Mapping)的光子在场景中反弹。一开始总会纳闷为何Vray要把渲染搞的这么麻烦,要提供这么多选项?其实Vray只是把混合计算法这样的概念明确写出来罢了! 就好像是MentalRay可以把Photon mapping与Final Gathering这两种计算法混合一起使用,Vray也可以在第一次反弹使用Photon mapping 第二次反弹使用irrandiance cache,就本质是上是与MentalRay完全相同。Finalrender则是比较贼的不明确告诉你它是由哪两种计算法混合的其实这三个渲染器都是采用混合算法。为什么要用混合算法呢?因为各种算法有其缺点也有其优点。简单的说,把算法混在一起使用可以截长补短。在后面的翻译文章会详细介绍。一、渲染器的历史:几乎所有现代全局照明渲染器都是基于Jim T. Kajiya在1986年所发表的那篇---渲染方程式(The Rendering Equation)论文之上。这个方程告诉您光是如何在场景中传播。在那篇论文当中,kajiya还提出了以图像为基础,利用蒙特卡罗方法的渲染方程式称为路径追踪(path tracing)。其实,这个方程式已经广为人知,并使用在计算辐射在环境中的传播有一段时间了。然而,Kajiya是第一个将这套方程式应用到计算器图形学当中的人。这个渲染方程式只是一个“计算电磁学的马克斯韦尔(James Clerk Maxwell )方程式的逼近版本。它并不能仿真所有的光学现象。它只是基于几何光学,因此无法仿真折射,干涉或两极分化。不过,这个方程式很容易修改,使其能够计算与波长有关的效应---例如散射。(译者注: 这就是为什么著名的渲染器要命名为Maxwell?)更哲学一点来说,这个渲染方程式是是一个数学模型用来描述光的行为。虽然对计算器图形学来说这是一个很好的模型,它并未说明究竟光如何在现实世界中当中运动。例如,渲染方程式假定光线是无穷的薄且认为光的速度是无限的---这两个假设都不符合真实世界的光线。因为渲染方程是基于几何光学的,光迹追踪(raytracing)是一个用来求解渲染方程非常方便的方法。事实上,大部分渲染器在计算渲染方程式的时候都是用光迹追踪这个方法。虽然渲染方程式可能会有不同写法,但Kajiya提出的方程式看起来像这样:这个方程式的意思是:场景中,光线由x点移动到另外一个点x1等于光线自x2移动到x1并且反射到x点的所有光线总合除了一些简单的状况之下,要无限长的计算时间计算机才有可能把这个方程式解出来。不过,我们可以尽量得到接近的结果---在可接受的计算时间里面。科学家找寻能在合理的时间内完成计算的全局光照算法。渲染方程式只有一个。不同的渲染器只是用不同的解法去计算结果而已。如果任何两个渲染器的计算结果精确度够的话,那么就应该渲染出完全一样的结果才对。理论上是这样啦,但实际上渲染器往往会截断或是修改原始渲染方程式,因此可能计算出不同的结果。二、渲染引擎特性分类:A. 完全计算法(Exact)与估计值计算法(a
原创力文档

文档评论(0)