北大cm学姐ppt:[讨论]VRay渲染误区2[VRay中文网]

来源:百度文库 编辑:中财网 时间:2024/05/11 02:06:12

关于VR的渲染,我只能说有太多的误区了, 先说说IRmap的渲染方式问题, 大多数人是这么做的:

1. 把反折射关掉,在素模情况下跑光解算IRmap,然后调用时,还原材质和反折射开关,渲成图

2.先跑小尺寸的IRmap,小图情况下调节好后,然后渲染大图,尺寸控制在小图尺寸的4倍

3.渲动画的时候隔帧渲IRmap,隔5帧或隔10帧,具体看情况来决定间隔帧数,然后调跑好的IRmap来渲染动画

上述三种是我认为目前普遍存在于VR使用者中的错误思想,

先说第一种吧,不给材质,用素模渲,关反折射,跑光, 然后调用渲成图,  这种方式的错误在于,不加反折射不带材质渲染跑出来的IRmap与加材质加反折射跑出来的IRmap是绝对不一样的,理由很简单,IRmap不仅仅起到生成一次反弹中受光采样点位置的作用,它还必须在确定的采样点上求解出该采样点实际的照明结果,说得通俗点,包括二次反弹引擎的计算结果也是一并存储在 IRmap的每一个采样点中的,你把所有物体用素模并且不开反折射跑一次光,不管你二次反弹引擎用的什么,QMC也好,lightCache也好,photonmap也好, 它的色溢基本就是灰色,而且不开反折射的情况下,照明实际亮度要弱,你带材质带反折射去跑光,色溢肯定是材质颜色相关的,而且因为反射的原因,光能会有更多的反弹机会,亮度是另一种表现情况, 所以把两种完全不一样的结果当成一样来对待,就是这种方式的错误.

接下来我说下第二种情况, 先渲染小图,调节好跑小图光,再渲大图,   稍微了解一点IRmap的人,都知道,IRmap算法是视口依赖算法,不管你是否控制在4倍范围内,当你用一个小图的IRmap去渲大图时,质量就在损失,放大越多损失越多,其得到的结果必然比你之前认为好了的小图预测结果要差, 相当于,你每次在渲染完小图后,都在祈求渲大图时质量不要损失太厉害,你心里对渲染质量是没底的,你在冒险. 而且这种方式是极为天真的,因为IRmap的求解精度实际上不完全由渲染尺寸来决定,还由min max参数共同决定,我之前反复强调过,你渲640*480 min -2 max -1 所得到的IRmap和你渲320*240 min -1 max 0 得到的是一模一样的IRmap, 为什么你能想到的仅仅是去改变渲染尺寸呢,我尺寸不变的情况下,改变min max的作用和你min max不改,改变渲染尺寸是没本质区别的,关系是摆在这的,有任何意义吗? 最后你费尽心思在小图上调试好的效果其实并不是你在大图中想要的最终效果,有意义吗?

我个人跑光从来是最终出多大图我就在那个尺寸上调节, 调节min max 和阀值来观察效果,这样最终的效果永远是你在当前状态下就能把控的,而且你会说,那远处细节总有黑斑怎么办?提高min max? 降低color threshold ? 降低 normal threshold? 如果是这样我可以告诉你你把这些参数打得再高也解决不了根本问题,而且你的渲染时间将让你彻底对做图绝望.因为根本问题压根不在这,如果远处的几何体确实没有细节,其原因在于它在图幅中所占的像素本身太小了,就那么一丁点,就算你放采点点的解析度再高,采样点落在这些像素上的可能性也非常的小,没有实际意义,我跑光从来不用超过low级别的质量, 根本没必要,既然远处细节所占像素少导致再多的采样次数也不够在上面放上更多的采样点,那么你随便拉个什么透视图,拉个近的视角让这些缺少细节的对象尽可能占据你的视图,渲一个low跑一次不就得了,大部分的采样点都会落在你需要的地方,然后把这次渲的IRmap与你上次渲的叠加在一起,就得到了你实际需要的可以渲最终质量的IRmap,配合VR的IRmapViewer工具来观察采样点情况,你完全可以做到心中有数,哪里采样够了哪里不够,并且你永远不需要把参数打得很高,你每一次手动叠加的跑光都在你的掌握之中的,并且是非常快速的,这种手动按需叠加IRmap,以原始最终图幅为基准的跑光才是正解

我最后讲下第三种情况,做动画的朋友们注意了, 你无论隔多少帧,只要你隔了帧,你跑的IRmap就是在冒险,你心里是没底的,而且如果你渲500帧的动画,就算按隔20帧来算,你也要渲25帧 IRmap,并且渲完后你得祈求不要有错误,希望摄像机运动过程中所有看到到对象你的采样点都顾及到了, 可惜的是,你不是神仙, 你把握不了,以一个摄像机环绕小球一圈的动画为例,假如时间为500帧,你这种方法就是非常不科学的,其实要使得IRmap满足动画的需要,就是让小球的表面在动画过程中摄像机看得到的地方都布上足够的采样点就可以了,而要做到这一点你只需要环小球拉近一个角度,渲最多5帧不同方向的IRmap,其采样点足够遍布小球的每个表面,在我看来渲四次足矣,这个你可以自己把握,采样点拿到VRay IRmap viewer 里看一下遍布了就可以渲动画了,何必去渲它25帧呢,心里还没底. 隔帧渲的朋友其实就是想偷懒,心想放在那渲久点无所谓省心,但出细节出品质的动画永远不是省心可以做得出来的,不检查IRmap采样点的VR使用者基本都是不合格的.




------------------------------


在这里再罗索一下。irradiance map的叫法是发光贴图,无论发光贴图还是灯光缓存(lightcache)都不是什么光子图,而且它们的计算中都不会涉及光子的计算。只有光子贴图(photonmap)和焦散(caustic)的计算中才会发出光子(photon),记录它们的计算信息的文件才叫光子贴图(photonmap,*.vrpmap文件)。所以在这里请各位VR使用者不要把发光贴图和灯缓存及其计算的信息文件称为光子图了。

各个GI引擎的计算内容可以参考下表:


此主题相关图片如下:form.jpg

另外的一个误区就是大家老往VR材质里的环境通道里加上output贴图,从网上了解到对其作用的解释就是这样做可以让反射和高光可以得到加强什么的。其实VR材质里的环境通道控制的是该VR材质自己的反射环境,要赋予有该材质的物体反射到全局环境的部分才会起作用,如果场景为全封闭或者利用模型+VR灯光材质制作窗外配景、及因为VR灯光的影响高光和影响反射的作用而使场景里的物体没有办法反射到全局环境,那么无论在VR材质里的环境通道加上什么贴图,都是不起作用的。而且,如果场景不是全封闭、VR灯光不影响高光和反射等作用下使物体能反射到全局环境,也没必要各个材质里加上output贴图,还不如直接在VR全局反/折射环境里放上output贴图。

下图就是一个例子:


此主题相关图片如下:ev_reflect.jpg