上篇文章已经讲述了 C4D 的预览流程和渲染流程是不一样的,所以会导致渲染结果会产生差异,也讲述了如何解决静物预览的渲染差异。今天我们来说一说如何减少计算量加快渲染结果。


因为之前 C4D R22/S22 发布过新功能展示,其中更新的中子(Neutron)节点式场景编辑,不知道会不会对计算速度有所影响,而本文作为一个通用的理解文章,所以我这里的举例说明将不会考虑 新旧 版软件的速度差异,把速度默认为相同,这样更方便理解。


好了,现在假设已知 C4D 的工具速度全部为等同值(实际上不可能),那么我们如何判断某个工具的计算量多少?如何优化工程(减少计算量)?


想要判断某个工具的计算量,我们需要回顾下初中的数学知识,速度 × 时间 = 路程


这里速度相当于计算速度,上文已经假设它为固定值,所以它不变

这里时间相当于计算时长,不同的工具所执行的时长是不一样的

这里的路程相当于得到的渲染结果的时间,我们依然要求它只能变小不能变大(变大就是负优化了!)


由上面三个已知要求,我们可以得到几个信息

速度已经固定,那么我们只能从减少计算时间上下手。


尽量举个简单的例子(如果有其他好例子请务必告知我呀),一个抽水机,在一个池塘中抽水

抽水机,知道吧,长这样的 ↓↓↓

1.jpg

抽水知道吧,这样的 ↓↓↓

2.jpg

(没有收一毛钱广告费啊,这)

假设我们只需要把池塘中的水抽完(意义不明的要求),而抽水的速度是不会发生变化的,抽水时间又要变短,怎么办?

非常简单,我们换个小池塘或者小水源,抽水的时间就变短了


现在回到 C4D 中,同样,一个场景中的需要使用某个工具(池塘),而这个工具的速度又不会发生变化,如何减少这个工具的使用时的计算时间?

也非常简单,我们减小这个工具的计算量就行了


现在我们需要一个参考值,作为判断计算量增减的依据

在 C4D 中,所有的工具都有自己的计算方式,不同的工具计算量都是不同的

我这里C4D R19 为例,做一个负载测试(指数据在超负荷环境中运行,程序是否能够承担)

随便导入一个模型,以克隆方式复制到 800 万面数(之前文章也说过,低版本 C4D 到 800 万面就会开始卡顿了)

3.jpg

现在是 35 万面,添加克隆,复制到 23 份

4.jpg

现在 800 万面左右

我们现在要减少计算量,但是需要一个参考数值,来判断场景更换前后的计算量到底有没有减少,其实 C4D 中自带了这个功能(虽然不是很好用)


使用快捷键 Ctrl + i ,查看工程信息

5.jpg

可以查看到这个场景中使用的内存量,大约 493892 KB,约等于 482.3 MB


现在我们可以通过好几种方式测试,首先直接转为可编辑对象

6.jpg

现在内存使用是 473313 KB,约等于 462.2 MB,已经减少 20 MB的内存使用


再返回到克隆模式,勾选实例

7.jpg

现在内存使用是 41157 KB,约等于 40.1 MB,已经减少 440 MB的内存使用


再把当前勾选实例的克隆,转为可编辑对象

8.jpg

现在内存使用是 20578 KB,约等于 20.1 MB,已经减少 460 兆的内存使用


以上三种方法都是前后内存对比,从而达到减少计算量的方法,这是正优化。

但是当你使用这种前后对比后计算量增加的时候,那就是负优化了,千万不用无脑使用,先进行内存使用量判断,再执行。


现在,我想你们通过查看内存使用的方法,应该已经学会了如何判断工具是否该优化,以及优化方法,当然,那是静帧的,现在我们来看看动画该如何进行优化

GIF.gif

点击播放循环几次后,当缓存超出限制后,自动会切换成方形线框预览模式,从而减少预览计算量


[[[这里知识点外的问题,为什么播放几次后才会切换成方形线框?

因为 C4D 的克隆(不仅仅是克隆,C4D 中大多数工具都是这样),它不保留缓存数据,每从头播放一次,就会重新缓存一次,当缓存数据达到上限后,就会降低预览方式,开始覆盖之前缓存,所以 C4D 导入多面数模型或者大量计算时,非常容易出错,出错后我们就需要手动进行缓存]]]


但是方形线框模式无法直观预览到动画效果,怎么才能正常的预览?

简单,烘焙动画。烘焙动画的意思是把动画转成关键帧的方式记录下来,那么它就不会一直刷新缓存,也就不会达到数据上限

GIF1.gif



通过之前的文章,我们可以得知,只要是导入到 C4D 中的几何体,那么就一直在产生计算,而 C4D 是一个层级式的软件,计算方式都有优先级别

以克隆为例



© 2018 Corporation 木客教育  ICP备案号:粤ICP备17088176号-1

技术支持:英铭网站建设
返回顶部
技术支持 英铭科技