关于使用VRay来进行动画渲染的方法讨论在各大论坛中都多次被反复提及,但仍有很多误区,我不打算一一列举,在这里我直接简洁明了地列出正确的渲染流水线:
第一大类:仅仅是摄像机运动的静态场景动画的渲染
type one:IRmap+BruteForce(QMC)的组合:
第一步(单帧调试阶段):
调试好DMC sampler核心管理器的参数在单帧下已获得良好的质量。
第二步(动画前数据计算阶段,俗称跑光):
1.保持次级引擎BruteForce(QMC)开启,勾选全局设置的Don't Render Image以跳过不必要的渲染计算过程。
2.根据摄像机运动情况预估隔帧数量,使用MultiFrame increamental模式,计算完全部动画的IRmap。
3.打开IRmapViewer观察计算完成的IRmap采样点分布情况,将采样点不足的部分,缺失采样点的部分,通过手动补光方式叠加并补全,得到最终准备动画渲染的IRmap文件(这一环节非常重要)。
第三步(渲染动画阶段):
1.IRmap模式改为 from file并读入之前准备好的最终IRmap文件。
2.将次级引擎关闭,即设置为none(因为所有计算结果已经存入在了IRmap的每个采样点中)。
3.将IRmap设置中的interplation sample设置为 10-15 (最终渲染时插值采样不能过大,否则将导致闪烁)。
4.渲染!
type two:IRmap+LightCache
第一步(单帧调试阶段):
调试好DMC sampler核心管理器的参数在单帧下已获得良好的质量。
第二步(动画前数据计算阶段,俗称跑光):
1.保持次级引擎LightCache开启,勾选全局设置的Don't Render Image以跳过不必要的渲染计算过程。
2.设置LightCache模式为SingleFrame方式,并在选项中去除勾选"Store direct light"这个选项(这点非常重要,去除这个选项将极大地避免Lightcache产生的GI闪烁)。
3.根据摄像机运动情况预估隔帧数量,使用MultiFrame increamental模式,计算完全部动画的IRmap。
4.打开IRmapViewer观察计算完成的IRmap采样点分布情况,将采样点不足的部分,缺失采样点的部分,通过手动补光方式叠加并补全,得到最终准备动画渲染的IRmap文件(这一环节非常重要)。
第三步(渲染动画阶段):
1.IRmap模式改为from file并读入之前准备好的最终IRmap文件。
2.这里分两种情况,如果场景中有大量模糊反折射需要利用lightcache来优化计算时间,可以保持次级引擎中LightCache仍旧开启,并且仍然为singleframe模式,如果不需要这样计算模糊反折射,将次级引擎关闭设置为none。
3.将IRmap设置中的interplation sample设置为10-15(最终渲染时插值采样不能过大,否则将导致闪烁)。
4.渲染!
第二大类:摄像机运动,物体和光源都在变化和运动
type one:IRmap+BruteForce(QMC)
第一步(单帧调试阶段):
调试好DMC sampler核心管理器的参数在单帧下已获得良好的质量
第二步(动画前数据计算阶段,俗称跑光):
1.保持次级引擎BruteForce开启, 勾选全局设置的Don't Render Image以跳过不必要的渲染计算过程。
2.设置IRmap模式为Animation-prepass方式(它将生成一个IRmap序列而不是单个IRmap以对应整个动画)
3.计算全部的IRmap序列。
第三步(渲染动画阶段):
1.IRmap模式改为Animation-render方式,并读入之前计算好的最终IRmap序列。
2.将次级引擎关闭,即设置为none(因为所有计算结果已经存入在了IRmap的每个采样点中)。
3.将IRmap设置中的interplation sample设置为10-15(最终渲染时插值采样不能过大,否则将导致闪烁),并且将Interpolation frames设置为1(节省渲染时间)。
4.渲染!
type two:IRmap+LightCache
第一步(单帧调试阶段):
调试好DMC sampler核心管理器的参数在单帧下已获得良好的质量。
第二步(动画前数据计算阶段,俗称跑光):
1.保持次级引擎LightCache开启,勾选全局设置的Don't Render Image以跳过不必要的渲染计算过程。
2.设置LightCache模式为SingleFrame方式,并在选项中去除勾选"Store direct light"这个选项(这点非常重要,去除这个选项将极大地避免Lightcache产生的GI闪烁)。
3.设置IRmap模式为Animation-prepass方式(它将生成一个IRmap序列而不是单个IRmap以对应整个动画)。
4.计算全部的IRmap序列
第三步(渲染动画阶段)
1.IRmap模式改为Animation-render方式,并读入之前计算好的最终IRmap序列。
2.这里分两种情况,如果场景中有大量模糊反折射需要利用lightcache来优化计算时间,可以保持次级引擎中LightCache仍旧开启,并且仍然为singleframe模式,如果不需要这样计算模糊反折射,将次级引擎关闭设置为none。
3.将IRmap设置中的interplation sample设置为10-15(最终渲染时插值采样不能过大,否则将导致闪烁),并且将Interpolation frames设置为1(节省渲染时间)。
4.渲染!
另外,关于渲染中经常出现一些物体有奇怪白色亮点的问题,我在这里单独说明一下,这是由于模糊反射和深度反射产生的问题,原则上是物理正常的,不是bug,也很难免,这里提供两个方法:
第一,将出现白点的材质,改为VrayMaterial,并在选项中将"treat glossy rays as GI“设置为"Always",并且确保关闭GI设置中的产生反射焦散的选项,即Reflection caustics保持关闭;
第二,将高亮物体(比如在反射中出现的很亮的物体、光源等)的反射深度降低,或者用OverrideMaterial将其反射通道给一个纯diffuse的材质。
最后提及几点很多朋友关注的问题:
1.VRay渲染片树时到底该不该使用opacity通道,答案是尽量不要用opacity通道,因为VRay的IRmap计算过程不能很好的支持这一通道,将导致渲染速度非常的慢。正确的做法是把原本贴在opacity通道上的mask黑白图贴在VRay材质的refraction通道里,并反转invert,然后将折射率IOR值设置为1,然后勾选"affect alpha"选项。
2.最安全的渲染动画的方法是什么,毫无疑问,QMC+QMC,新版本就是全部BruteForce,这种组合的情况下因为不存在插值计算GI,所以GI导致的闪烁将完全避免,但你仍需解决分布式光线数量过少所带来的噪点问题,就是说,你需要极大的代价来解决这一点。
3.我永远不赞成将运动的对象和静态场景放在一起渲染,无论从影视制作的角度上来讲还是从渲染成本上来讲都不可取,有很多方法可以将两者分离再合成,这样是效率最高的。也能将问题最简化,更便于日后修改。
4.关于手动补IRmap采样点的方法
接前面提到的,当你用Multiframe跑完光以后,远处物体的IRmap采样点细节是肯定不够的,但你如果靠增加max min rate参数来试图解决这个问题,那么你就大错特错了,其实非常简单,用一个low级别的预设,在透视图下拉近你要增加细节的物体,然后single frame方式跑一次,存成文件,然后用IRmapViewer将两个文件合并就行了,用这种方法将所有细节不够的地方补齐,又快又效率,而且有针对性,绝不要想当然地用高参数跑光就能解决问题。