Vray最佳设置---Light Cache与Photon Map篇
标签:
勾选演算场景摄影机光子 |
分类: 制作参数 |
Via:http://renderstuff.com/
作者:Anton, Max
翻译:Hammer Chen V-Ray的最佳设定Light Cache 大家好,之前各位有仔细读过两篇关于GI算图的教学:
Vray最佳设定---Irradiance Map篇揭开V-Ray DMC采样器的神秘面纱
现在进入到第三篇.如果你还是不了解前面两篇,我们诚挚地建议你再复习一下,特别是,要知道GI的大致概念,也就是要对Brute
Force和Irradiance Map这两种演算法有扎实的概念.在这篇教学里面,我们将学习有关于GI反弹算图, Photon
mapping与Light Cache,我们也会学习Light cache每个细项功能,以及最佳化的设定方式. 本教学将回答下列问题
photon map是什么?运作的方式? 使用photon map的缺点是什么? photon map的修改版---- Light
cache演算法的运作方式是什么? Light cache的cell是什么? Light
cache是如何储存直接光照的?以及计算不同的diffuse反射 Light cache filter的运作方式?
Pre-filtering与Filtering的差异? Light cache的参数要怎样设定才能得到最佳的效果? 传统的Photon
map 这是过时的算图引擎,基本概念是光源在发射光子在场景中反弹,然后,就会在场景中形成所谓的光子图photon
map.这是一个三度空间的光子打到物件表面所形成的,每个点都储存了亮度与间接照明的颜色资讯.基本上,这样的图的产生方式跟Irradiance
map产生的演算法差不多. 光子贴图的原理很容易理解 在Irradiance map GI
Map的取得是由摄影机开始,取得场景中的一个点,确认可能会对表面照明的光源.这样,我们就可以假定射线从摄影机发出,检查其他的rays,直接由光源或是间接到达该点.用这种方法,只会考虑到场景中摄影机会看到的区域.从这样的角度来看,
Photon mapping的算法比较粗糙.
除了摄影机角度发出的向量以外,它也会投射光源所有角度的向量,称为光子.所有的表面,以及场景中所有的点都会被计算,因此浪费掉了许多运算资源.这个演算法在场景中散布光子,即便是在不会被摄影机看到的地方也一样.
再者,光子贴图演算法不会提供足够的自适应功能,侦测场景的细节,也因此得到的品质也不好.光子贴图在物件的边缝处会产生错误,这是该演算法的主要缺点.然而,实际上来说,光子贴图的最大区点是无法从间接的光源计算亮度,光子只能由传统的光源来产生.
例如,他无法侦测到由VRayLightMtl产生的自发光照明,或是GI Environment
(skylight)或VRaySky的照明效果,这样光子贴图在户外或是室内场景变得无用武之地.
光子贴图演算法的唯一生存优势,有些老派的3D用户还在使用的原因是,它相对来说物理比较精确,因为光子演算法够正确地计算diffuse反射,例如焦散效果与次表面散射效果.
然而,因为某些限制与不合理,你不应该再使用过时的光子贴图GI演算法.在光快取(Light
cache)这套更棒的演算法推出之前,光子演算法很流行.用来计算第二次反弹. 最新的光快取技术光快取(Light
cache)原本是高科技的算图引擎,跟光子图的全局照明很类似,但是跟光子图相反的是---射线(rays)计算的方式有所不同.这个演算法的本质是光快取,是由摄影机产生一组的射线,在这些射线与场景物件交错的点上面,产生全局照明的图,
这些射线(rays)并不是GI的射线,这些是从观察者角度所产生的路径. LC
ray投射到场景的物件,在接触的地方计算颜色,取得材质的属性,以及打到他的光线,不管是直接光照或是间接的.跟光子贴图相比,
LC演算法把光子贴图的所有缺点都拿掉了!
LC只会考虑到场景摄影机看得到的区域,它会处理微小细节,而且不会在物件的边缘产生黑边,而且,最重要的是LC可以处理任何类型的光源,包含了间接照明.http://s14/middle/6135a03cgcbda2c8ad07d&690Cache与Photon Map篇" TITLE="Vray最佳设置---Light Cache与Photon Map篇" />
Light Cach的主要参数
这是V-Ray:: Light cache的间接照明选单,包含了计算参数,重建参数,模式…等等还包含了subdivs,
sample size, scale, number of passes, store direct light, show
calc. phase, adaptive tracing, pre-filter, use light cache for
glossy rays, filter, interp. samples, mode, don't
delete与autosave等参数
http://s10/middle/6135a03cgcbda2d195e69&690Cache与Photon Map篇" TITLE="Vray最佳设置---Light Cache与Photon Map篇" />
Subdivs这个参数决定了LC
rays的数量,从摄影机到场景,决定采样的颜色.
LC演算法一般会把场景切割成小的区域(称为cell).在切完之后,就会决定每个小区域的颜色,藉由投射LC射线,从摄影机过来的,也就是说,每个小区域都是独立的颜色采样,最后会用在GI
map上. 范例场景的渲染,这边显示了光快取采样的马赛克细胞(masaic
cell)分割区域,当然Subdivs的细分越多,就会有越多的马赛克细胞,也会得到越精确的颜色.
LC射线的实际数目等于Subdivs的平方. 一般来说,
Subdivs约有2000-3000对于大部分的写实算图很足够了,但是一开始只要设为1000就够了,而这个参数如有需要再调高就好了.
Sample size控制了采样的大小 ,当你指定了cell的大小,
LC的演算法就根据这个数值对图像细分.在之后,他会追踪射线,决定每个cell的颜色,每个cell颜色的确认都至少需要一个射线,让我们假定由Subdives决定的射线总数会比cell的总数要少,所以视觉上看起旯好像增加了某些细胞的大小,换句话说视觉上cell的大小也间接地跟Subdives的数值有关.
Sample
size的数值必须要有足够的LC射线才可以达成,例如当LC射线大于cell总数的时候,某些cell会被数个射线计算,也就会产生比较精确的颜色,也就能够改善最终算突的品质.
Cell的尺寸只会在当场景具有大量细节的时候才须改变而LC map无法呈现足够的细节,在大部分的状况,把Sample
Size设定为0.02,对于大部分的场景已经很足够了. Scale参数在下拉式选单里面,让你可以指定cell
size的单位,有两种数值:萤幕与世界单位(Screen and the World). 萤幕模式让你可以指定cell
size的数值,依据最终算图大小的比例,例如Sample
size=0.02,而Scale设定为screen,那表示cell大小为整个萤幕大小的2%.你也必须知道,这样cell大小是相对于萤幕解析度的,这表示在场景中靠近银幕的cube的面,与在墙壁上的两个cell大小是一样大的,尽管在位置上面他们跟摄影机的距离并不相同.
而以World作为单位,让LC根据3ds max单位来决定cell size.以这样的模式, cell
size在空间上面是一样大的,但是在萤幕上面会根据他们在场景空间上面的位置来决定大小.这样,在墙后面的cube的cell大小会比在cube前面的要小,而且,由于LC会对影像的每个位置用固定数量的射线,在小的cell里面会用比较少的LC射线.跟大的cell相比较,这样会让小的cell产生比较差的品质,在最终算突的时候,可能会产生比较多的杂讯或是错误.
对LC cell使用场景单位,会产生很均匀的LC map,这对于镜头飞跃的动画(fly-through
animations)很有用,这个方法让LC cell的大小都很均匀,用在动画上不管摄影机的移动都可以得到一样大小的LC
cell.对于静态场景渲染与动画.当LC
map的每个frame都是独立计算的,不能合并在一起时,我们就必须要用Screen模式,这会减少错误.这就是为什么在预设的状况下LC
cell是设定成screen模式. Number of
passes是LC计算有几个pass.一般来说LC的计算并不是用多执行绪的,但是可以分割成好几个passes,让整个电脑的多核心能够完全载入使用.例如:如果LC计算是用四核心处理器计算的话,我们就不能打断LC的pass,也就是说Number
of
passes设定为1,换句话说,在计算LC的时候,就只会单一的,四核心处理器,剩下的三核心就会闲置,不会参与LC的计算.因此,为了要加速LC算图,必须要强迫把pass切割数量切割成系统的核心数量.当今,常见的处理器核心数目不会超过8个,例如,八核心的系统,有两个四核心的Xeon处理器.在大部分的电脑,把umber
of passes设为8适合大部分的状况. Store direct
light是LC演算法的功能,让你可以不只是储存GI资讯,而且可以储存关于场景中直接光照的位置.我们知道LC会追踪由摄影机到场景的物件,当这些射线跟场景交错的时候,演算法会检查物件的shader决定其颜色,然后继续追踪从光原来的点,照亮物件,决定物件的亮度.换句话说LC演算法,根据它运作的原理,也会检查直接光照落在场景的点.因此,一开始的时候它会收集关于场景中直接光照的资讯,能够储存质将光照,让我们可以快取,储存场景中直接光照的资讯.
传统上,在GI render element算图之后,
Vray分开计算直接光照,对场景中直接光照进行采样当然会耗费计算资源,光线的快取,例如先前储存在LC的资讯,之后要用到就可以马上使用,如此可以增加算图的效率,节省了以运算的方式得到直接光照所需要的时间.我们可以想像的到,用这种方法得到的直接光照,品质会比传统的采样要糟糕.当然这要看依你LC的品质而定.
这种作法只在场景中有大量的光源的时候才有意义,因为计算直接光源可能会耗费好几个小时.再者,用这种方法产生的光照会有明显的缺点,会暴露出CG算图的感觉,会产生模糊的阴影.如果目标是照片级写实的算图,用这种做法不是很好,就算考量到可以节省量的运算资源也一样.所以在预设的状况下Store
direct light是关闭的.
http://s4/middle/6135a03cgcbda2ce8fda3&690Cache与Photon Map篇" TITLE="Vray最佳设置---Light Cache与Photon Map篇" />
Show calc.
phase显示计算阶段这个功能很棒,让我们能够显示预览的效果,在几分钟内就看到大概效果,这排除了用低解析度算图测试的需求.在预览的时候你不需要等待所有阶段的算图过程,确保开启这个功能.当然啦,这预设值是勾选的.
三张比较图,左边这个是萤幕截取,是比较粗糙,只用基本的shader.中间这张是在几分钟算图过后,非常接近右边这张,右边是最终算图效果,具有高品质.
Adaptive
tracing这个功能能让我们使用关于场景中照明的资讯,对每个LC采样,然后在场景中光源比较多的地方添加更多的射线.在某些状况下,能够帮助我们移除掉LC产生的杂讯,例如,如果场景有焦散,但是,这个选项会消耗记忆体资源,而只有在Adaptive
tracing parameter勾选的时候,才能勾选Use directions
only的选项.基本上,在大部分的场景,勾选这个功能不会有明显的差异,所以在预设的状态下不应勾选. 重建Light Cache map
下个选单是Reconstruction parameters area,里面包含了几项设定,跟LC
map的后处理有关,对最终算图有影响. Pre-filter预先过滤这个功能跟LC cell采样的内差有关Pre
-filter的内插功能让LC sample
map变得更平滑.只有在勾选的时候,它会把map传给最终算图.而内插的强度是由Pre-filter后面那个数值所决定,越大的数值可以产生越少的杂讯,但是结果会比较模糊,也因此会造成某些小细节消失.而小的数值会产生比较多的细节,但也会变得比较多杂讯.http://s15/middle/6135a03cgcbda2d66d04e&690Cache与Photon Map篇" TITLE="Vray最佳设置---Light Cache与Photon Map篇" />
http://s8/middle/6135a03cgcbda2d7c7087&690Cache与Photon Map篇" TITLE="Vray最佳设置---Light Cache与Photon Map篇" />
两张算图范例, 这边显是了有勾选Pre-filtering演算法与没有勾选Pre-filtering演算法的结果,
第二张图是有勾选Pre-filtering, 看起来比较平滑.
http://s8/middle/6135a03cgcbda2d7c7087&690Cache与Photon Map篇" TITLE="Vray最佳设置---Light Cache与Photon Map篇" />
Filter提供下拉式选单,让我们可以选取更多的内插演算法,如先前提到V-Ray在计算LC之后会把计算好的LC
map,传递到最终的算图演算法.使用LC
filter让我们可以做出更多的LC内差效果,一旦LC把map传递给最终算图演算法,也就会开始计算每个shading
poin,t这也就是算图的基本单位.如果我们选取了其中一个filter (请不要与Pre-filter搞混)当他计算每个shading
point的时候,会内插LC sample map的资讯. None是Filte下拉式选单的一个选项,用这个选项就关闭使用LC
filter.在这种状况,最终算图演算法会使用LC map,不会进行过滤功能.
Nearest是LC的filter在某个数值条件下最接近的采样做为内插的条件,会涉及到过滤的最接近采样的数目是由Interpolation
samples所决定. 当开起了filtering Nearest,会产生非常平滑但又维持细节的效果.
Fixed类型的filter很类似于Nearest,差别只在于涉及采样的点是根据GI map点的方形区域. Filter
size的单位是由Scale来决定.请注意, Fixed的滤镜只会处理落在Filter
size里面的区域,结果看起来很像一片一片的方块,而其他的区域变成黑色的背景.
http://s13/middle/6135a03cgcbda2dc0b93c&690Cache与Photon Map篇" TITLE="Vray最佳设置---Light Cache与Photon Map篇" />
这个算图范例展示了用比samples尺寸还小的Fixed
Filter算出来的结果.看起来就像在黑色的背景贴满了N次贴那样的效果.为了避免LC
map产生如此明显的错误,我们必须要把filter的尺寸弄得比sample的尺寸要大,至少要是两倍大.
但是只有在算动画的时候,使用Fixed类型的滤镜才有意义.把尺寸设定为Screen模式,在其他的状况,用Nearest
filter还是比较好. 根据Pre-filter与Filter的运作原理,这两者最后个功能都是一样的.两者会把LC
map平滑化,产生更平均的效果.两者只差别在技术的应用面, Pre-filter演算会对LC
map的所有采样进行内插,但是缺点是这个计算只支援单线程处理运算,不管你电脑有多少线程.同时Filter的演算法会计算的比较精确,因为它是根据不同的算区域来进行处理的.
这个方法需要更多的电脑运算资源,让V-Ray在每个算图区域计算内插,尽管如此,
Filter的运作,以最终算图,都是支援多核心的,也会使用电脑所有的可用线程,对于单核心或是双核心的电脑,会建议你使用Pre-filter或是合并使用Pre-filter
+ Filter,让采样分配的数目降低为一半.
大部分的高效能工作站,甚至用在玩游戏的电脑主机上,都具有超过4线程的运算能力,对于这种硬体,就很适合使用Filter演算法,对于分散式算图尤其有意义,在算单张图的时候,有多台电脑参与计算.
在大部分的VRay设定里,我建议只使用Filter: Nearest把Interpolation
samples设为10,这样可以的到好的结果,也不会把GI细节模糊掉,不会有明显的错误. Use light cache for
glossy rays是个选项,让我们以LC计算场景材质的diffuse
reflections与refractions这让我们减少了运算资源.当然啦,用这种方法算出来的材质跟直接计算相比较品质会较低,最终算图的品质跟你LC
map的品质有关.在Store direct light的选项的目的类似,计算间接照明的资讯,也包含用来计算diffuse
reflection的资讯.
当然啦,场景材质用这种方式计算出来会比较模糊,无法满足照片写实算图的要求.这种状况,可以用LC的设定来改善,取得好的高光模糊与折射模糊,但是是否真能节省时间还是个问题,对于分散式算图尤为重要.很不幸地,现在的VRay版本并不能用分散式算图来计算LC
Map,就算你是用网路算图算图速度也跟单机算图没有差别.
http://s15/middle/6135a03cgcbda2deb05de&690Cache与Photon Map篇" TITLE="Vray最佳设置---Light Cache与Photon Map篇" />
算图范例中的球,套用蓝色反射模糊材质,你可以看出使用Use light cache for glossy
rays这个选项会导致非常多杂讯的反射模糊,因此在预设值的时候不会开启这个选项. LC最后面的两个选单是Mode与On render
end,这跟IM里面的选项很类似,专为动画算图所设定的. 结论 在这个教学里面,我们探讨了两种GI算图演算法,也就是Photon
mapping与Light
Cache,然后对最重要的部分深入研究.特别是,我们学习了所有细节,为调了LC的GI算图,能够很清楚地知道所有的范例.各位朋友,我们很诚挚地希望您认真的阅读这章节,我们也希望你在阅读之后够驾轻就熟地使用LC里面的各种参数.
理解这些重要资讯让你可以轻松地设定,取得适当的GI
maps,计算写实的3D算图效果.在下次的教学里面,我们介绍各种GI引擎的最佳搭配,除此之外,我们也将揭开如何消除角落的黑点问题.
后一篇:法线贴图(一)

加载中…