提高Blender渲染效率的几大妙招
提高Blender渲染效率的几大妙招
在3D动画制作中,渲染效率是决定工作效率的关键因素。对于一条5分钟的动画(30帧/秒),意味着有9000帧需要渲染。如果单帧渲染需要1秒,也要等待2.5小时才能完成。而现实中的动画渲染,单帧不可能达到这么高的效率,复杂场景下,5分钟的动画短片渲染一周都不算稀奇。因此,如何节约渲染时间,提高工作效率就成了各位动画爱好者从一开始就应该学习的重点。
GPU加速:选择OptiX而非CUDA
Blender的Cycles渲染器可以使用GPU加速功能,在“编辑”菜单下的“偏好设置”里可以找到“系统”设置,此时如图1所示可以看到“Cycles渲染设备”有多个选项,这时候我们就要小心选择了,对于大多数NVIDIA显卡玩家来说,可能会优先选择CUDA,毕竟这是NVIDIA的招牌技术之一,名气很大。而且在渲染设备里可以同时勾选GPU和CPU,从逻辑上来说“一个好汉三个帮”,让它俩同时工作,效率应该就是最高的,但果真如此么?
我们用实际测试来进行对比吧,分别采用CUDA加速同时勾选CPU+GPU和只选择GPU,以及另一个大家可能没听说过的OptiX加速,同样是同时勾选CPU+GPU和只选择GPU,其他设置一概不动。从测试成绩表1可以看到,CUDA加速的速度比OptiX慢,而同时勾选GPU+CPU要比只勾选GPU更慢,有没有一种很“反直觉”的感觉?
渲染设置 | 渲染时间(越短越好) |
---|---|
CUDA加速:CPU+GPU | 12.83秒 |
CUDA加速:GPU | 11.22秒 |
OptiX加速:CPU+GPU | 8.52秒 |
OptiX加速:GPU | 6.3秒 |
事实上,大家没怎么听说过的OptiX加速,才是更适合Cycles渲染器的加速模式,因为相对于通用型的CUDA,OptiX专为光线追踪设计,能够更充分地利用NVIDIA RTX系列GPU中的RT Core进行高效的光线追踪计算,更适合处理具有复杂光照效果的场景,能够在渲染时提供更精确的光照和阴影效果,而且显著提高渲染速度。因此我们在选择Cycles GPU加速时,NVIDIA显卡用户一定要首选OptiX加速,AMD显卡用户相对简单一些,只需要选择HIP加速即可。
至于CPU+GPU模式的不足,就是典型的1+1<2的代表,因为图形渲染注重并行算力,这恰恰是CPU不擅长的部分,让它参与到渲染流程就意味着GPU反倒需要放慢节奏来等CPU完成工作,从而导致渲染速度下降,所以大家在进行Blender渲染硬件时一定不要贪心,只选择GPU即可。
图4:采样精度从16下调到8,不细看的情况下其实差别不大
降低采样精度与优化降噪器
Blender的Cycles渲染可以通过降低采样精度来提高速度,但并不是采样精度越低越好,因为采样精度也直接关系到渲染画质,如果你是渲染单帧静态图片就不需要去大幅降低采样精度,但如果是渲染动画,考虑到观众在观看动态画面时,对细节精度的注意力其实基本都集中在画面主体上,所以我们完全可以一定幅度地降低采样精度,只要保证看得过去就行。
以图4为例,我们将采样精度从16下调到8,不细看的情况下其实差别不大,如果是动画短片,这种画质区别就更难以被观众感知到了,最重要的是单帧渲染时长从36秒下降到了21秒,整体工作效率大幅提升。
图5:顶点数量对渲染时间的影响
整理顶点数量,调低模型复杂程度
模型复杂度其实也是直观影响渲染效率的核心要素之一,这也是为什么我们在制作骨骼绑定动画时一定要选择低精度模型来操作的原因,只有这样才能保证制作、调整、修改的流程会更加高效。
图6:使用“精简”修改器减少顶点数量
渲染也是同样的道理,以图5为例,当我们将内部的体积立方体分辨率设置为256,256,256时,整个场景有83000个顶点,此时使用最佳渲染设置只需要15秒就能完成渲染。
但如果将体积立方体的分辨率增加到384,384,384,此时的场景顶点总数来到了21万个,此时再进行渲染,单帧所需时长就增加到了23秒。而从画面观感来说,两者虽有差别,但如果是渲染动画的情况下,不至于为了这一点画质提升就在效率上进行妥协。
图7:使用“精简”修改器后的效果对比
所以如果你的模型也比较复杂,建议就通过一些合理手段来降低它的顶点数量,比如降低细分登记,如果没有采用细分,或者已经应用了细分,那么也可以使用“精简”修改器的“塌陷”功能,按比例减少顶点数量,如图6所示,猴头在未使用“精简”修改器之前足足有12万个顶点,而在0.2倍塌陷设置下,顶点数量下降到了2.5万,渲染效率大幅提升的情况下,面型也保持在没有瑕疵的状态,比较理想地去除了额外的算力负担,值得大家在自己的项目里多多研究。