oc与显存的关系情况
- 打开C4D、cpu计算基础场景元件,场景推入内存。
- 点击渲染按钮,将材质、“渲染时计算”的物件计算,储存到内存中,并开始推入显存。
- 在显存里进行计算,把计算结果存到硬盘(渲染)。
- 如果显存大小不足以容纳内存中的场景,会把一部分留在内存。
- 因为每一张图计算要多次计算整个场景,如果超出显存,就会让场景数据在内存和显存频繁搬出搬进,占用bus带宽同时极大降低速度。
综上,换个大显存显卡,尽量不要用Out-of-core。
查看显存使用情况
优化策略
- 降低texture
- 贴图占用率:一张8KRGBA约占250M显存,一张可容纳4张4K以及16张2K(理论上)
- 降低贴图分辨率,使用2K、1K贴图(远景),根据贴图物件在画面所在大小确定
- 黑白贴图(如bump、roughness使用float模式读取)立省75%/66%
- 重复使用同一张贴图不会占用额外显存
- 对象、多边形优化
- 降低模型面数:1G显存可以容纳3~4M面。单个模型尽量不要超过500K面数
- 使用渲染实例(克隆、实例、渲染实例等)
- 使用oc标签进行曲面细分、倒角,而不是曲面细分工具、倒角
- 降低多边形面数(重拓扑)
- 综合降低
- 减少使用displacement,可以尝试转换成具体模型或烘焙
- 使用代理文件(orbx、RS代理)最少在编辑的时候不会太卡,渲染时候依然会占用显存
- 使用动画序列而不是多张图的blend(此点针对表情绑定)
- 关于orbx
- 可以降低工程初始化时间(渲染黑屏部分的时长)
- 画面会干净很多
- 适合大场景分片编辑,最后再丢给渲染。
- 显存、渲染时间方面并无优化
其他探讨
- 基础显存占据:1~2G起跳,这是基础的运行时环境,所以实际上显存要减去1~2G。
- oc scatter分布的优化参考OC scatter场景分布技巧(仅摄像机视线内可见)
- 以上策略Blender等同类软件相同。
- 如果在处理工程A,再打开一个显存需求较大的B,可能会因为A在显存的内容有缓存之类的,B会崩溃。这种情况重启一下电脑或软件清空一下显存里的缓存。