《【龙渲教程】vray最佳设定——irradiance map篇》由会员分享,可在线阅读,更多相关《【龙渲教程】vray最佳设定——irradiance map篇(8页珍藏版)》请在金锄头文库上搜索。
1、【龙渲教程】Vray 最佳设定Irradiance Map 篇本教学中, 我们将讨论在 V-ray 里面如何设置 GI,将会讨论到其原理、参数与用 Brute Force 和 Irradiance Map 做为第二级的 GI 反弹算法。Brute force GI 是一种基本的算法, 使用固定数量的光线(Rays),由原始的光源 打到场景中的某点, 在该点使用固定数量的光线(Rays)反射. 如果你还记得的话 ,我们认为当光线自光源发射出来, 打到场景中的对象表面, 会再分裂成很多光线, 打到场景中其它对象. 当然了, 越多从间接光源产生的反弹光线 (diffusely reflected r
2、ays) 那最终的算图结果噪声就会越少。在间接照明选单里面的 Brute force GI 参数, 这里有两个参数可调: Sebdivs 与 Secondary bounces。Subdivs 这个参数意思很简单就是反射射线的数目. Subdivs 的数值不等于实际的二级射线的数目, 而是该数值的平方, 也就是说 Subdivs=2, 就表示原始的光会在反射后分裂为 4, 如果这个数值是 4, 那二级光线就会是 16依此类推。Secondary bounces 这个参数会指定光线会反弹几次, 只有在 Brute force 算法最为第二级反弹的算法的时候才会出现。如果 Brute force
3、设定在第一级 GI 反弹, 那 bounces parameter 这个参数就会变的没有作用. Brute force 算法并非自适应的, 它只会计算每个像素的 GI, 并不会依照复杂度, 颜色, 与对象的细节来改变采样的细致程度. 因此, 很耗费计算机运算资源, 不管是场景中重要的画面, 还是不重要的地方都以相同的运算来处理.也难外它会被称为 Brute force 蛮力法. 我们也可以知道 Brute force 的计算是以Quasi-Monte Carlo (QMC)的方法来计算的, 这也是 Vray 早期版本的名称, 有时候会让旧用户搞混, 他们还在找 Quasi-MonteCarlo
4、 (QMC)在哪里。这种蛮力的算法是很不合理的, 它会用很漫长的时间算图, 即使是很简单的场景也一样. 因此, 不值的用这种引擎在第一级或是第二级 GI 引擎. brute force 这样的算法只会在特殊状况会用到, 当其它算图算法, 因其自适应性导致无法计算微小的细节, 这时候就会需要用到 brute force 算法。Adaptive Irradiance mapIrradiance map 是一种自适应(adaptive)的算法, 用来渲染全局照明的反弹效果.它的主要功能是找到场景中重要的区域, 计算 GI 与对 GI 采样比较稀疏的地区以内插的方式补充起来. 为了要了解Irradia
5、nce map 算法运作的方式, 让我们来看看它产生的图-称为 irradiance map。这个测试算图显示 Irradiance map 的采样 这张图显示大量的白点, 呈现 GI 采样的位置. 在场景细节比较多的地方, 会有比较多白点, 在平坦的区域白点比较少。这张测试图, 之前的 GI 教学有用过, 为了清楚说明, 我们把纹理贴图先拿掉, 让我们不会受到干扰. 请仔细看最密的白点区域, 这是房子的内部, 圆角的 ChamferBox, 每个靠近的位置或是球面对方块的那的地方, 还有方块跟墙的接触面, 这些地方有很多 GI 细节表现。这些是 irradiance map 的点, 这些点包
6、含了该点的 GI 的颜色与亮度, 其他区域则填满了灰色, 灰色区域是不含有 GI 信息的部分. 但是, 会由 irradiance map 以内插的方式填充起来. 换句话说, Irradiance map 只会计算最重要的区域而那些不重要被忽略的区域, 没有计算, 只以内插的方式算出来, 拿那些有计算的点来推算出亮度与颜色。很显然, Irradiance map 的自适应性就是在这里了. 相对于 Brute force (以下简称 BF), Irradiance map (以下简称 IM)不会计算场景中所有的像素, 它只会计算重要的区域, 因为这样能够节省计算机运算资源。irradiance
7、map 的 3D 呈现出采样的分布, 在摄影机机看不到的区域就完全不会有采样 .我们可以用Irradiance map viewer 查看器来查看, 我们可以很清楚地看到不只是 irradiance map 的 3D 结构, 我们还知道跟摄影机的观看角度有关, 特别是在摄影机无法看到的那面, 完全没有 GI 采样点。在算图的时候会跳出算图窗口, 这里显示是 IM 计算的状态, 是 4 段 prepass 的第一段. IM 的计算, 会用很优雅的方式找寻场景中需要放置 GI 采样的位置, 它会用到之前我们提到的低采样(undersampling)的技巧. 一开始的时候, 整个场景的 GI 会低分
8、辨率的方式计算, 通常会比算图的分辨率要低, 这个计算不只是自适应的, 像在用 BF 算法算图那样, 之后, 利用第一轮计算取得的数据,决定出最重要的区域, 对该区域进行精确的算图。于是就用更高分辨率的方式算图, 但只针对需要的区域, 这样个步骤会重复几次每一次都增加分辨率, 直到达到你在 IM 里面所指定的最高分辨率. IM 算图的最基与最高分辨率, 每次计算的差别都是以 2 的倍数增加分辨率, 也就是原本低分辨率的四倍的像素, 例如: 算图分辨率设定为 800X450, 下一步的低采样就会是 400X225, 在下一步就是用 200X113等等. 请注意, IM 可以进行低采样与过度采样
9、也就是说 IM可以计算比实际算图分辨率少或是多的分辨率 (分辨率的差异都是 2 的倍数)。每一次 GI 算图的阶段称为 pass, 那个用来决定重要区域的 pass 称为 Prepass. 这个 pass 计算的过程, 是当下是在哪个阶段,可以从算图窗口观察到, 会在开始算图的时候跳出来讯息。四张显示采样的算图效果. 在 Irradiancemap 里面有四个, 逐步的 prepass. 第一步不会对场景中比较细节多的地方添加高密度的采样, 其他三个步骤就会. 最后一次的 prepass 显示最终采样的分布状况, 每个算图都显示了 IM 分辨率. 在本例里面 IM 的最大分辨率是 800X45
10、0, 跟算图最终分辨率一样. 为了完全找到重要区域, 首先会用三个低采样的 prepasses, 以低的分辨率来计算: 100X56, 200X113, 400X225, 跟最后一个的 prepas 一起, 总共有四个 IM 的 prepass。请看第一个 prepass, 你可能会发现, 它没有找到任何区域, 整个影像跟 BF 算法的精度一样. 但是在第三与第四张影像就完全不同, IM 算法会找场景中细节较多的区域, 然后在那些区域洒下 GI 采样. 而在平坦没有细节的区域减少 GI 采样, 不重要的区域例如墙, 平坦的表面等等. 这些地方只给予少量的GI 采样, 然后之后用内插的方式计算出
11、来. 而且, 我们也可以很快地看到, 在不同的 prepass 采样的大小有不同. 因为高分辨率的 IM 算图, 会有比较小的单一采样数值, 也会有比较精细, 更精确的 IM. 我们可以很容易猜出 GI map 由 IM 算出来的, 即便是最终分辨率的来算图, 不使用 prepass, 就像 BF 算法那样, 最终的算图时间会跟 BF 一样冗长。算图的时候勾选显示 IM 采样, 这里看起来好像没有采样点. 事实上有很多很密的采样点, 很平均地放置在场景中, 即便是在那平坦, 不重要的区域。这张图显示 irradiance map, 在最终算图之前算了一次 prepass. 仔细看看, 好像没有
12、采样, 事实上正好相反, 在这张图里面, 全部都是采样. 这些采样紧紧地靠在一起. 因此, IM 并没有在某些区域增加密度,它只是从摄影机的角度把场景布满采样而已, 为了取得如此密的采样, 耗费了许多计算资源. 特别是, 之前所有四次的 prepass, 才消耗了五分钟, 而这次才一个 pass 就花费了 50 分钟。差别很明显, 不要误会第二的例子, 它的质量还是比第一个例子要好很多. 因为很密的采样, 而场景中不重要的区域, 通常就是那些平坦的面, 只具有单一颜色, 而该 GI 的颜色, 很均匀. 在两个例子里面, 都没有细节. 然而, 场景中重要的区域, 有的会, 有的不会用自适应来计算
13、有高度的细节. 这也是为什么没有必要花费 10 倍的计算机运算资源在计算那些平坦的区域, 因为做出来的结果是一样的. 我们相信所花费的时间, 使用 IM 与使用 BF 来比较, 差异是很明显的。一旦计算场景中重要的采样点 (含有 GI 颜色信息)计算出来了, 那些缺乏 GI 采样点的区域也开始进行内插计算出来. 而在以 BF 计算的那个例子里面, 在算图的时候, 进行计算固定数量的二级光线, 以半球的方向发射. 在前一篇的教学有提到。IM 的基本参数对于那些 IM 算法认为重要的区域, 每个 IM 采样点的二级射线的数目, 对整个场景的细节程度决定的分辨率. 这些参数都可在 V-Ray: Ir
14、radiance map 选单中找到。这是 V-Ray: Irradiance map 选单, 显示每个参数, 预设的数值可用下拉式选单找到. 基本的参数包含了 Min rate, Max rate, HSph, Subdivs, Interp. samples, Clr thesh, Nrmthresh, Dist. thresh, Interp. Frames . 选项区域则提供了 Show calc.phase, Show direct light, 与 Show samples parameter. 进阶选项则有 zones as Detailenhancement, Advanced
15、 options, Mode,与 On render end。目前的默认值, 提供 IM 主选单的快速设定参数, 下拉选单里面可以找到每种默认值的类型, 这些默认值从名称你就可以明白它的意思: Very low, Low, Medium, Medium animation, High, High animation,Very high. 然后, 最重要的是客制化的选项, 让你可以调整 IM 的每项参数, IM 是以 High 做为默认选项。下一个, 是基本参数选项. Min rate 决定了 GI 的第一次 prepass 的分辨率。 Max rate 决定了最终GI 算图的分辨率或是最后一次
16、 prepass 的分辨率。我们已经知道了, IM 算法会搜寻到场景中细节最多的区域. 如果你看以上的范例, 你会看到 rate 的数值, 决定了当前的 prepass 分辨率.当 rate 等于 0 的时候, 表示 GI 分辨率跟最终算图的分辨率是一样的. 当 Rate=-1 的时候, 表示 GI的计算会是最终分辨率的一半. 当 Rate=-2, 表示 GI 的计算会是最终分辨率的 1/4. 同理, 当 rate=1 的时候, GI 计算的分辨率会是最终影像的分辨率的两倍, 这跟采样不足与过度采样计算反锯齿的观念是完全一样的. V-Ray Adaptive subdivision 算法也是。Irradiance Map 的算法很具有弹性也是高科技的工具, 尽管逻辑上面把最终的 GI prepass 以最终算图的分辨率来设定. 也就是 Max rate=0, 其实没这个必要, 因为在质量上仅有很小的差异, 却会造成计算量的巨大负担。用不同的 Min Max Rate 来进行场景测试. 第一张图效果很棒,