C4D大型场景渲染优化专业级档案
Posted GSan设计
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C4D大型场景渲染优化专业级档案相关的知识,希望对你有一定的参考价值。
在本文中,我将说明几种用于减少Cinema 4D中繁重计算的方法,以便在处理大型场景时保持渲染速度。这能大大降低渲染时间。
人们始终希望Cinema 4D能够实现更快的渲染。尤其是在处理大量对象方面,用户可以采取许多步骤来帮助自己。以下许多信息可能是某些或许多人的常识,但是我很少看到人们在他们的场景中使用所有这些技巧。
采取了几步优化后,就可以实时进行动画处理。当然,效率是主观的,如果设置场景所需的时间比完成工作所需的时间长,那么并非总是值得采用所有这些技巧!我通常在一个场景中花费至少几个星期(如果不是几个月的话),所以对我来说,在创建元素时几乎总是值得优化的。知道最有可能导致渲染问题的原因是成功的一半。
如果您认为Maxon可以改善某些方面,请使用“功能请求”页面告知他们。我可以肯定的是,开发人员也希望它更快,但是请让他们知道如何改进它,以便您可以更快地工作!
一个小的免责声明:本文中的所有内容均基于过去几年在Zeitguised处理大型场景时的个人经验。我绝不是任何类型的程序员,因此某些术语和解释可能在技术上不准确,并且Xpresso设置可能并不干净。但是建议是诚实,实用的,希望会对某些人有所帮助。随着新的工作流程方法的发现或可用,我将继续更新本文。我也欢迎您提供所有反馈和任何其他提示!
我经常看到建议,只是“在视口中关闭”。不要幻想在视口中关闭对象的可见性会停止计算,除非它纯粹是多边形对象。C4D的对象和过程分为几类:
多边形
“可编辑”对象。由点,边,多边形等构成的基本对象。C4D的计算要比多边形数多得多,但是不用说多边形越少意味着速度越快。更重要的是,更少的物体等于更高的速度。
发电机
本身是参数化的所有对象,或创建否则将不存在的对象的所有对象。示例的非穷举列表包括基元,样条曲线,HyperNURBS(从R15开始的细分曲面),拉伸,扫描,克隆,实例,对称性,布尔,头发。如果它在对象管理器中具有可以启用/禁用的检查/交叉,则可能是生成器(除非它是变形器)。有些要比其他一些要重,但通常,它们是在视口中以及渲染的“准备”过程中放慢场景速度的主要原因。
变形器
这个组是不言自明的,任何采用现有对象并对其进行修改的事物。显然包括标准的Deformer对象以及角色Skin对象和Sculpt Tag。
表现形式
Xpresso(因此,Thinking Particles)和Python标签;字符标签,例如约束和姿势变形。Spline Dynamics和Cloth也被归类为表达式,Rigid / Softbody Dynamics属于它们自己的类别。
动力学
刚性和软体标记以及任何碰撞器。
层数
真正了解C4D方式的人数惊人的人仍然不使用Layers。也许有一个先入为主的观念,即它们主要是为组织服务的,您可以在对象管理器中更高效地完成这些工作。我不会试图说服您它们非常适合组织工作或特别直观,但是它们是目前暂时减少场景中计算量的最快方法。
图层允许您关闭特定图层的所有“生成器”,“变形器”,“表达式”和“动画”,以及在视口,渲染和对象管理器中隐藏对象。在大型场景中工作时,这是无价的。
图层浏览器提示
这并不是一个真正的教程,因此我不会过多地介绍如何使用图层。教程(以及帮助!)形式的文档已经很多。 简短的解释是,通过层关闭计算会加快场景的速度,您可能已经猜到了!但是,如果您已经了解一些基本知识,那么我确实有一些技巧:
•在图层管理器中将父对象拖动到“图层”时按住cmd会将其分配给它的所有子对象以及所有分配的标签。拖动时,光标图标将变为带有叉号的正方形,以表明这一点。反之亦然,通过cmd将图层拖到“对象管理器”中也可以。这是将整个层次结构添加到图层的最快方法。
•将分配给图层的对象复制到已经包含图层的场景中时,如果图层的名称和颜色完全相同,则它们将被合并。在任何其他情况下,只需将图层作为新图层添加到您的Manager中即可。
正如您在图像中看到的那样,即使2个“蓝色”层共享相同的名称,颜色差异也意味着它们不会合并。2个“红色”层相同,因此被合并。
层限制和解决方法
我希望Maxon可以改善图层系统中的某些区域。自从最初撰写本文以来,许多令人惊奇的人为改善Layer工作流程做出了贡献。我现在保留了本机工具的最初缺陷,并提供了解决方法的链接。Donovan Keith引入了一套完整的工具,使使用Layers的工作变得更加轻松和高效,CV-Layer Comps。我将在页面的下方解释这些插件的作用,让您不妨聆听并观看此人亲自解释并立即开始
静音层
没有“静音”图层的本机方式,只有“独奏”方式。我宁愿选择不单击8次即可杀死整个图层,因为使用独奏模式会带来其他问题。CV-Layer Comps插件可以解决此问题,以及始终与之相关的下一个问题。
注意:尽管现在可能已经使单个脚本变得多余了,但我还是要感谢James Chiny花费时间和精力制作了原始的“静音层”脚本。现在,它可以作为CV-Layer Comp套件的一部分使用,但是如果您想保持简洁,那么这已经存在了很长时间,并且表现出色。他还有许多其他很棒的工具可以将其检出:http : //hypolylab.tumblr.com/
将新对象添加到图层
不幸的是,没有让C4D自动将新对象分配给图层的原生方法。这意味着在“独奏”模式下处理一个或多个图层时,必须取消独占所有内容才能将新对象添加到图层,然后重新进行独奏以继续工作。以前,我有一个令人沮丧的尴尬解决方案,其中涉及特定于窗口的快捷方式,但是CV-Layer Comps再次自动添加了此功能,因此,我强烈建议您使用它。
XPRESSO访问
图层管理器可通过Python访问,但不能通过Xpresso访问。“层”节点具有输出,但是只有一个可控制的输入,即“名称”,不是最强大的参数!我希望可以选择使用用户数据创建“场景管理器” Null对象,以轻松关闭图层的特定参数。这也将为动画图层提供可能性。通过在需要时适当地打开和关闭对象,这将使大型“飞越”场景的处理和渲染速度变得无限快。继续阅读以了解如何实现这一目标!...
层访问节点
Wunderkind Niklas Rosenstein凭借其强大的“ Layer Access” Xpresso节点填补了空白。它提供对任何层的输入访问,这意味着您可以设置元素动画 以及将多个端口链接到单个控制器。
下载:图层访问C4D场景
该节点位于Xpresso标记内,如果您知道任何Xpresso,则使用它应该非常简单。使用节点的属性直接控制它,或将其端口连接到其他节点(“ Layer”端口为“ Link”数据,其余为“ Boole”)。我展示了如何在PROXY SETUPS中实际使用它。
警告:CV层补偿管理器和NR的层访问节点不能同时处于活动状态,否则会相互干扰。如果要通过Xpresso设置图层动画,只需确保CV-Layer Comp管理器已关闭,反之亦然,如果要保持手动在Layer合成之间切换,则禁用Xpresso标签。
层次结构处理:当前,您可以在其他图层中嵌套图层,方法是:在cmd上单击父图层上的图标,将状态复制到其子图层;这很有用,但与对象管理器不一致。例如,如果您在对象管理器中关闭了父Null的可见性,那么除非您另外指定,否则它的子Null也将消失。只是需要注意这种差异,但我认为应该保持一致。有关层次结构的一个更严重的问题是,将分配了层次结构层的对象复制到另一个场景时,它们将失去所有组织,必须重新嵌套。
不一致的控制
最近,我尝试进行一个复杂的设置,每个对象涉及多个变形器,然后将每个对象克隆并折叠起来,因此最终产生了大量的繁重计算。我尝试将每个变形器分配给一个层,这样我就可以一次专注于一个变形。那时我意识到Layers对Deformer的控制有些奇怪。基本上,您不能将“变形器”本身分配给图层并通过“图层属性”将其关闭,该图层只能控制“变形对象”。
这是一个异常,不适用于“生成器”,仅适用于“变形器”。
签出选择对象,以了解有关控制上述复杂层次结构的信息。
图层书签/组合
您可能已经猜到这已经由CV-Layer Comps解决了。但是,没有本地方法可以选择状态并保存状态。
简历图层复合
如果您不进行查找就将它放在页面的最下方,我会感到很惊讶,实际上您可能已经安装了它。如果您不喜欢,请前往此处下载插件,并听Donovan正确解释所有内容:http : //www.cineversity.com/vidplaylist/cv-layers_comps
观看简要概述:
以下是所有内容的清单:
· CV-Layer Comps Manager:提供了一个简单的界面来快速保存和加载图层状态,类似于Adobe Photoshops的Layer Comps Manager。
· CV活动层:自动将新对象分配给场景层管理器中的选定层。
· CV-Load Layer Comps面板:加载包含所有CV-Layer Comps的面板-非常适合对接到Layers Manager。
· CV-新图层组合:基于当前图层状态创建一个新的图层组合。
· CV-下一个图层合成:在“图层合成管理器”中激活下一个选定的图层合成。
· CV更新层组件:更新所选图层组合以反映当前场景图层状态
· CV静音图层:将当前所选图层静音/取消静音。
· CV将图层重置为默认值:将所选图层的所有图层属性恢复为默认设置。
· CV选择活动对象层:选择与在视口/对象管理器中选择的任何对象相关联的层
· CV-Solo活动对象层:如果当前与其他层相关,则为与所选层相关联的任何层打开独占模式独奏会关闭它们。
· CV-Solo下一层:循环遍历所有选定的层-依次使它们独奏。
·CV-Solo上一层:与上一层相似,但方向相反。
如您所见,它可以解决我最想念的大多数图层管理器功能,并且可以提供很多其他有用的功能。我认为,唯一可以使我们成为无可争议的新Layer霸主的就是在Layer Comps之间进行动画处理的能力,以便可以在工作和渲染时的不同时间打开和关闭事物。
警告:CV层补偿管理器和NR的层访问节点不能同时处于活动状态,否则会相互干扰。如果要通过Xpresso设置图层动画,只需确保CV-Layer Comp管理器已关闭,反之亦然,如果要保持手动在Layer合成之间切换,则禁用Xpresso标签。
选择对象
我不希望这与一般的工作流/导航技巧有太大的区别,但是正如我提到的那样,没有办法通过“层”关闭一组特定的变形器,我将描述一种快速访问对象组以对其进行操作的方法。。
选择对象肯定是角色动画制作人员所熟悉的,并且它们的功能比我将在此处探讨的要深一些。正确阅读有关它们的信息,选择关键帧的东西非常有用。
基本前提是从一组特定的选定对象中创建一个对象,然后随时访问相同的选择。如果这些对象属于同一类型(在此示例中为Deformers),则可以快速控制共享属性。
示例:每个对象多个变形器
我试图为此大型层次结构创建一个基于图层的设置,通过动态“衰减”顶点贴图(通过附加效应器)运行时,变形非常沉重。您可以在“层”部分中了解为什么此方法不起作用,但基本上,层不能直接控制“变形器”的“启用”。
我仍然需要一种快速打开和关闭这些Deformer的方法,当然Xpresso Proxy Setup是强大而灵活的,但是有时会有更快的方法。通过选择每个“ Bend_R”然后创建一个选择对象,我可以简单地随时双击该对象以再次选择它们,因此能够禁用所有“ Bend_R”对象。然后,我对“ Bend_L”和“ TaperFFD”重复该过程。
代理设置
很多时候,我会创建一个元素的两个版本。完整的渲染质量对象,以及具有足够细节以进行动画处理的Viewport代理。这可以像用盒子和球体代替家具和植物的紧凑型环境一样简单,也可以像具有低多边形零件的完整装配式机器一样复杂,以进行响应动画。如果您从上面的Banque Populaire'Mutual'中查看示例,则代理对象在阻止动画和处理其他元素时足以显示自行车的位置。在此处查看该广告的制作。
最基本的设置是创建一个简单的User Data boole开关,以选择在视口中可见的版本。如果要保留层次结构中的控制权,并且仍然能够通过关闭其父级的可见性来隐藏整个组,则只需连接Math:Add,即可将Boole的默认0/1值设置为1/2。这意味着“在编辑器中可见”参数将在值“默认”(灰色:2)而非“开”(绿色:0) 和“关”(红色:1)之间切换 。下面的比较应该更清楚地说明:
我已经提到过,当涉及到视口速度时,关闭对象的可见性仅是成功的一半。考虑到“渲染质量”(高质量)状态可能包含许多不断计算的“生成器”,“变形器”和“表达式”,因此简单的可见性切换实际上是无效的,这会使事情变得棘手。如果仅在高分辨率多边形对象和低分辨率代理之间切换,那么这就足够了。
如果“高质量”组由更复杂的对象组成,则可以通过xpresso将所有内容链接到“用户数据”开关,并通过将“用户数据”链接到所有Generator和Deformer的“启用”端口来禁用计算。这会变得凌乱且难以维护。对象列表有帮助,但也需要大量工作来设置,要求您找到要禁用的每个Generator和Deformer并将其添加到列表中:
最近,尼古拉斯·罗森斯坦(Niklas Rosenstein)创建了一个名为“ Layer Access” (单击下载)的新Xpresso节点。与C4D固有的功能相比,这可以通过Xpresso对Layer Manager进行更多控制。我目前最喜欢的代理设置方法是利用此节点并分配我的“代理”和“总部”组以分隔各层,并将所有可见性和计算链接到一个“用户数据”控件。请参阅以下图像,以了解如何开始。很棒的是设置的速度和简单性以及可控制的数量。如果存在要保持可见/计算的特定对象,则只需从“ HQ”层中删除该对象即可。否则,cmd +将整个HQ组拖动到一个层,然后将该层拖到“用户数据”字段,将一键终止该整个组的每个计算。我认为这非常令人兴奋!
收集,合并和烘焙
收合
请坐,这是一项干预。您沉迷于保持整个场景参数化。是的,就是你!停下。稍后,我将专门讨论生成器和变形器,以及如何在保持参数不变的情况下对其进行优化。但认真的说,如果您不需要设置那些参数的动画,则应该在完成第二步后按C使其可编辑。如果仅此而已,C4D实际上可以处理很多多边形。
当然,您应该迭代保存,并在客户端敲门时将可访问的参数版本保存在安全的位置,但是所有这些拉伸,扫描,对称,弯曲,扭曲等都在破坏您的视口和渲染速度
合并
C4D在尝试计算许多对象时会费劲,这已经不是什么秘密了,但是要注意的是,这并没有直接关联到场景中的多边形数量。如果可以折叠并将100个具有100个多边形的对象合并到一个具有10000个多边形的对象中,则实际上它在视口中和渲染时会快得多。尤其是当该复合对象被用作诸如Cloner,Instance或Dynamics模拟之类的其他对象的一部分时。
烘烤
这不是那么干。有时,根据对象的复杂性烘烤到PLA会对视口性能造成可怕的影响。每帧读取大量数据需要大量计算,但是通常尝试将其锁定为多边形和动画(PSR和/或PLA)而不使用任何内部计算,这通常是一个好主意。在渲染沉重的场景时,这对于项目结束时更为重要。
示例:ZEITGUISED-银行/企业家
如果我暂时偏离视口性能并占用渲染时间,或更具体地说,是在初始渲染阶段进行场景导出/准备,请执行以下操作:
到最新的Zeitguised Banque Populaire电视广告“企业家”结束时,我们已将整个场景缩小为高分辨率(但经过优化)的细分多边形对象。尽可能没有Hypernurb,没有Cache,没有Cloners,并且场景的几何图形可以在几秒钟内导出。我们还使用代理对象和图层实时遍历几乎所有镜头并为其设置动画。您可以在这里深入了解这里。
将此与第一个Banque Populaire广告“ Vision”(在成为优化迷之前)进行比较:导出和准备要渲染的几何可能需要30分钟或更长时间,甚至开始考虑计算GI传递。那时,我们仍然拥有“实时”布尔声,对称性,数百个Hypernurb,重新定时的Mograph缓存,思维粒子,所有这些都一击即可。我们很天真,认为C4D可以计算出您扔给它的任何东西,无法在场景中移动,渲染是一场噩梦……于是,我开始了迈向更好的场景速度的旅程!
发电机
样条
可以优化的许多C4D默认设置之一。默认样条线“中间点”设置为“自适应”和5°。对于大多数情况,尤其是“扫掠”和“样条曲线动力学”,在使用“扫掠”或“拉伸努尔”时,我更喜欢使用较低的Uniform细分以获得更清晰,更合理的分辨率。
扫描和挤出
对于Sweep Nurbs,大多数人都使用Circle Spline。如果您采取上述预防措施来降低分辨率,那很好,但是我实际上更喜欢仅使用N边样条来最大程度地提高效率。只需选择边的数量即可控制扫描的细分。我发现所有Nurbs的Filet Cap细分通常可以从默认值5减少。
细分表面
注意:在比R15细分曲面更早的版本中,称为HyperNURBS。我敢肯定,该术语将需要一段时间才能完全迁移到对话中。
通常,默认的2个视口细分和3个渲染细分过高,尤其是在视口中。根据与相机的距离,我建议尝试使用较低的细分进行渲染,但是在视口中,一旦确定了平滑网格的外观,就可以将大多数对象的平滑度降低到1甚至0,这样就不必了担心通过其他方法禁用它们。
我还尝试限制场景中细分曲面对象的数量。如果您有一组需要平滑的对象,请将它们放到Null中,然后放在细分曲面中,如果要平滑某些对象,可以使用Stop Tag来阻止Generator(和Deformer)影响层次结构中的特定对象。在一个小组中,而不是其他人。绝对避免将细分曲面放置在其他细分曲面中!
实例
我假设大多数人已经定期使用实例,无论是实例对象还是通过Mograph。每个人都可能知道何时可以启用和不启用“渲染实例”:例如,如果需要将实例视为几何体并以任何方式变形,那么您就不 走运了。常规实例在视口中没有提供比真实副本真正的速度提高,但是它们使事情变得更加可控。
我最近在使用代理设置的实例时注意到的一种行为是,如果高多边形对象位于实例化组中,则无论其可见性如何,都会对其进行计算,并会使您的场景陷入困境。尤其是当实例具有动画效果时。一种快速的解决方案是在制作动画时从代理设置中临时删除高多边形版本,然后将其放回层次结构中进行渲染。诚然,这不是一个奇妙的工作流程,但可以完成工作。
基本原则
像样条线一样,创建时默认的原语细分很高。例如,一个圆柱体有36个细分,例如,如果将此圆柱体用作Cloner对象中的一百个小铆钉之一,则这些默认设置是疯狂的。显然在这里使用您的判断:考虑对象是大还是小,是否在细分。
多维数据集上的圆角细分和球体的细分也是如此(尤其是在使用“渲染完美”的情况下)。请注意这些默认设置,并在可能时降低它们。
对称
老实说,C4D的对称性目前非常糟糕,尤其是在折叠时的选择方面。我有意识地避免写很多插件或脚本,因为我打算写另一篇有关一般工作流程技巧的文章,但是对于建模情况,我会认真建议使用免费的True Symmetry插件或Cactus Dan的功能齐全的Symmetry Tools。
为了在整个轴上简单地复制一组对象,我在要镜像的轴上使用-1比例的Instance对象,这会在折叠时停止所有对象的合并,并且还提供了使用渲染实例的选项,可加快场景的速度很大。
如果确实需要使用“对称”对象,则暂时关闭“焊接点”(Weld Points)属性(如果没有沿中心消除的接缝,则永久关闭)将可以更快地进行计算。本技巧也适用于Connect对象。
详细程度
这是一个场景范围的功能,在某些情况下可以提供帮助。它将减少Hypernurbs的细分,减少Clones的数量,并通常简化场景以帮助加快视口。问题是控制不多,但是如果它主要由Generators组成,则对于一键快速使场景更快变得非常有用。
在该下拉菜单的旁边是“过滤器”,这是一长串用于打开和关闭的全局选项。生成器和Hypernurb在这里是分离的,还有粒子,变形器,样条线(实际上也指克隆器...我不确定为什么)等等。
显示标签
大多数人可能都熟悉此标签,但是值得一提的是,它还包含一个更可控的“详细程度”参数。它具有百分比滑块,而不是整个场景的LOD,显然可以分配给场景的更多特定区域。在将大量对象克隆到表面上并且将其用作“视口密度”类型参数时,我经常使用它。
层次结构:样条线为空
最近给我的一个很好的建议是使用Generator作为层次结构的顶级父级。我们习惯于将Null对象用作父对象,但是对象管理器中缺少一个选项...启用。通过使用样条线(不会以任何方式影响子级的生成器),现在可以通过Cmd +单击其启用图标(选中/叉号)来启用/禁用该层次结构中的每个生成器和变形器。
我建议选择一个很少使用的参数样条线(在我的情况下为4面),并将默认大小设置为0,以避免视口混乱。将此特定样条线停靠在布局中,并在需要该控件时将其用作Null。
快速提示:创建任何对象(例如Null或Spline!)时按住Alt键,将自动使它成为您当前选择的对象的父对象,并具有相同的坐标。按住Shift键可以使其成为一个孩子。
图形
Mograph模块也被计算为生成器,但有用的是,它具有自己的Mograph缓存标签以加快视口中的速度。它还可以自动在标签内的“克隆”和“断裂”上存储动态,也可以在场景之间复制。
我在上一页中提到过,显示标签可以通过减少克隆数量来减少视口计算,但也可以推荐Florian Sepp的“ FS Preview Accelerator” 。这个标签会在播放过程中杀死克隆,因此您可以构图并保持播放速度。显然,这并非在每种情况下都是理想的,但在某些方面,它肯定比创建复杂的代理设置来实现相同的结果要快。观看下面的视频以获取完整概述。
下载:FS预览加速器
以上是关于C4D大型场景渲染优化专业级档案的主要内容,如果未能解决你的问题,请参考以下文章