克隆十几万棵树需要多少显存?

电脑性能在不断升级,软件功能在不断更新。
扪心自问,我的作品真的优秀到,被电脑配置限制住脚步了吗?
因为群里有人说分布的树木占用显存很大,我自己测试了下,发现现在的情况已经比前两年好很多了。。
不过本篇文章,并不是想要告诉你,克隆那么多树木到底用了多少显存。
而是这样一步步去测试的过程,去了解这些功能,了解影响问题的原因到底是什么。
其实这也是我学习的方法,差不多每个功能,每个插件,每个参数,我都是这样去测试去研究的,而不是看教程听别人告诉你。
新建空工程下,初始显存是1Gb,这个初始占用每个电脑不一定是一样的,还有系统占用的显存,这些都是控制不了的,不需要去理会,就像买的2T硬盘实际只有1.81T一样,并不是你的显卡是24G显存,你就能用到24G。
只需要记住自己空工程下可用显存是多少就好了,比如我24G现存,可用大概19Gb。C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
新增一个hdr后,hdr图片的尺寸是4096*2048,大小是13.6mb,显存增加了95mb。
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
换一个hdr,大小是10000*5000,38.9mb,显存增加了412mb。
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
同样这个hdr,我们把他尺寸缩小成1000*500,显存就只占用1019mb,增加了6m。
这里我们就可以看到图片的分辨率,对显存占用的影响,除了hdr,材质球里面的贴图大小,都是一样的。
而不同分辨率的hdr对自己场景有什么影响,这个就需要你自己去测试,一般影响的是hdr背景的清晰度,和金属材质反射内容的清晰度。
如果你的hdr只是提供光照,不需要背景,或者背景是加景深虚化的,那就没必要使用很大分辨率的hdr。(个人经验是,大部分场景都不需要。)
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
这里我们换回之前的dhr,然后增加一个平面和立方体,会发现显存几乎没有什么变化。
此时修改一些oc设置等等,也不会对显存造成影响。
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
从预设里新增一棵树,这棵树是37w面,显存增加了141mb,这141mb包括了树的对象多边形,和贴图。
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
我们把贴图删掉,可以看到显存比之前单独hdr多出来137mb,这137mb就相当于是37w面模型占用的显存。
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
这里我克隆了六万多了立方体,也凑成大概37w面,可以看到显存占用差不多的,这里是为了验算一下。
这里测试立方体的时候还有个只是点,我先克隆六万个立方体,如果是默认的实例,会直接卡死的,我27线程的cpu,128g的内存都会卡死,也许没卡死需要多等等。。不过懒得等了,处理办法就是先改成克隆实例,然后C掉后,再把里面的实例对象一部分一部分改成实例,然后一部分一部分连接+删除。
这里大家可以自己试试,怎么处理才能克隆六万个立方体,最终C掉成一个三十几万面的整体。
一个三十几万的模型,是完全不会卡的。。但是六万个立方体却会卡死,这是为什么呢?
因为软件在计算的时候,对象的数量,和面数,是分开来计算的。。一般是cpu来计算对象数量,内存来计算对象面数。
内存计算几十万的面数很容易,但是cpu计算几万个模型,就很难了,自然也就会卡死,所以需要我们一部分一部分处理。
这里也就出现一个小技巧,就是当你工程对象很多很卡的时候,可以尝试把一些模型链接+删除变成一个模型。
也可以先打组备份下再链接+删除,备份的对象隐藏后是不会计算的。
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
这里我们克隆一百颗树,实例模式,显存变成14.49Gb,本来一棵树是141mb,这就相当于实实在在的增加了一百颗树的显存。
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
我们把实例改成渲染实例,和多重实例后,发现显存占用只有一个棵树的显存。
这个好像是新版本oc对渲染实列优化了,前两年以前版本的oc,渲染实例和多重实例,都是会计算显存的。
你看,就是这样看着没有意义的测试,在测试的过程中,我又学到了新得知识。
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
这里我复制了三个克隆,可以看到,实际只增加了三棵树的显存。
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
这里我改成oc的分布,同样克隆了三组100颗树,可以发现和渲染实例占用显存是一样的。
这里也说明,新版oc,其实没必要再为了节省显存而使用oc分布了,已经对C4D克隆优化好了,之前克隆实列是占用显存的,一百颗树就要一百颗树的显存。
功能上,肯定是C4D的克隆更方面,功能更多,oc分布本身就是个半成品功能。(oc官方帮助文档有写。)
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
但在实际制作中,很少会只选择一种类型的树,可能是好几种类型的,比如现在用三个分布,总共9个原树木对象,现在显存也占用到了2.293gb,其实就是这9颗树的显存。
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
我们把这9颗树拖出来,可以看到分布之前和分布之后,显存占用都是一样的。
这里把模型拖出来而不是放分布里面,是因为关闭分布后场景中就没任何东西了,并不是显示子模型,这点和克隆不一样。
到这里我们也可以确定的说,C4D的克隆实列,和oc的分布,都是完全不会占用显存的,不管你克隆分布多少都一样。
如果你说因为克隆分布太多而显存溢出,那肯定就是其他原因了。
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
现在场景中有几十万棵树,只重要了2.87gb显存,使用的树也是精度比较高的。
那为什么很多人制作植物森林的时候,显存却完全不够用呢?
C4D周练作业-克隆十几万棵树需要多少显存?-苦七君
现在我们大概了解了这个显存相关的基础概念,如果你的显存只有8gb或者4gb,可能9颗树都带不动,那接下来怎么去优化呢。
首先模型,现在一棵树都是37w面,但是对于这种大远景,根本不需要那么高精度。换个几w面的模型,就能大幅度降低显存,如果是近景。那就可以近处的用高精度的,远处的用低精度的,甚至远处的用贴图。近景甚至只用树的一半,只留能看到的树枝。
其次就是贴图,我们现在贴图很简单,所以对于贴图占用显存的情况还没去测试,但是根据上篇文章所说的,对于这种大远景,你实际的贴图大小可能只需要100px,上面测试的共贴图大小是500px。
如果你的贴图都很大,材质也很多,那在贴图材质这块也是有很多可以优化的地方。
如果你的材质都是预设材质,那就会浪费掉很多显存,因为预设材质里面的贴图参数等等都是比较高的。
到底自己场景显存溢出是因为什么呢,就像上面这样,去测试,找到根本原因,能优化的地方优化。
即使真的无法优化了,那也要考虑考虑,你的工程大小,和你的渲染效果是正比嘛?你的画面效果,真的需要那么大的内存和显存么?
 
多自我怀疑,就可以驱动自己去想办法解决问题。
 
顺便在这放一个之前老鹿优化别人工程渲染速度的文章。
40分钟一张的图,优化到8分钟一张!
之所以能优化,并不是因为技术问题。
而是因为你觉得渲染时间长,很正常。
我觉得渲染时间长,不正常。既然不正常,那我就会去优化。
甚至还有人不优化,是因为他觉得渲染一张图要四五十分钟,会显得很厉害。。。
 
有人说费那么多时间去测试,不如多做点项目赚钱点买3090,这里再给你分享个经验。
我从1060,980ti,2080ti,3090各种显卡一路用过来,差不多每个动画的渲染时间都是一样的,以前980ti动画一分钟左右一张,现在3090做动画一样还是一分钟,两分钟一张。
工程也一样,以前4g显存不够用,也够用。
后来8g显存,够用,也不够用。
现在电脑算顶配了,该卡还是会有卡的时候。
因为你的配置,是随着你的技术升级的。
 
是配置不足够展现你的技术了,所以升级配置。
 
而不是升级配置做渣图。

订阅评论
提醒
0 评论
内联反馈
查看所有评论
返回顶部
0
作者很希望收到到您的看法和建议。(ง •_•)งx

显示

忘记密码?

显示

显示

获取验证码

Close