3DMAX+VRay动画渲染闪烁是什么原因?应该怎么解决?

VR渲染 3年前 (2022) CGRNAV
1,273 0 0

3DMAX+VRay动画渲染闪烁是什么原因?应该怎么解决?

原因1:VRay动画渲染闪烁是因为发光贴图采样的不连续造成的;(标准情况)

原因2:摄像机运动,物体和光源都在变化和运动,其实还有种情况是场景复杂,但设置的参数较低所致。(个人情况)

解决办法:一般情况+专业解答

解决办法1:一般情况就是渲染光子图,每隔20到30帧渲染一次光子图,光子图的保存方式为多帧或者添量增加的方式,渲染动画时调用光子图渲染,可以有效减少渲染后闪烁的情况;

 

专业解答

第一大类:仅仅是摄像机运动的静态场景动画的渲染

type one:IRmap+BruteForce(QMC)的组合:(发光贴图+暴力计算)

第一步(单帧调试阶段):

调试好DMC sampler(DMC采样:这个新版本vray根本不需要设置,老版本一般也没必要改参数)核心管理器的参数在单帧下已获得良好的质量。

 

  第二步(动画前数据计算阶段,俗称跑光):

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(V射线材质 dog.jpg),并在选项中将"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"(影响 alpha 通道)选项。

 

 2.最安全的渲染动画的方法是什么?

 

毫无疑问,QMC+QMC,新版本就是全部BruteForce,这种组合的情况下因为不存在插值计算GI,所以GI导致的闪烁将完全避免,但你仍需解决分布式光线数量过少所带来的噪点问题,就是说,你需要极大的代价来解决这一点。

 

 3.能不能将运动的对象和静态场景放在一起渲染?

 

无论从影视制作的角度上来讲还是从渲染成本上来讲都不可取,有很多方法可以将两者分离再合成,这样是效率最高的。也能将问题最简化,更便于日后修改。

 

 4.关于手动补IRmap采样点的方法

 

接前面提到的,当你用Multiframe跑完光以后,远处物体的IRmap采样点细节是肯定不够的,但你如果靠增加max min rate( 最大最小采样)参数来试图解决这个问题,那么你就大错特错了,其实非常简单,用一个low级别的预设,在透视图下拉近你要增加细节的物体,然后single frame方式跑一次,存成文件,然后用IRmapViewer将两个文件合并就行了,用这种方法将所有细节不够的地方补齐,又快又效率,而且有针对性,绝不要想当然地用高参数跑光就能解决问题。

版权声明:CGRNAV 发表于 2022年4月8日 下午7:07。
转载请注明:3DMAX+VRay动画渲染闪烁是什么原因?应该怎么解决? | CG人导航

相关文章

暂无评论

暂无评论...