关于rendering:如何更快地渲染深入了解3D渲染性能的指南3

8次阅读

共计 4129 个字符,预计需要花费 11 分钟才能阅读完成。

如何更快地渲染

外部因素:优化场景

实践足够多,让咱们更快地渲染。

咱们当初将介绍的一些优化办法中的很大一部分将波及升高场景的复杂性,因而咱们能够缩小样本数量,同时依然取得无噪声的最终图像。

还记得缩小渲染工夫的两个步骤吗?第一步是 找出导致加速的真正起因

首先找到瓶颈–排除准则

查找导致加速的起因的最简略办法是利用排除原理。

举个例子:如果场景中有一百个对象,而其中一个对象导致渲染速度变慢,则找到该单个对象的最快办法是通过排除原理。

当初,我一次只能删除一个对象,最终,在最坏的状况下,通过一百次尝试,我才找到罪魁祸首,然而有一种更快的办法。

始终删除(或禁用)一半的对象并测试后果(从新渲染)。为什么?因为通过删除一半的对象,您曾经能够将查找罪魁祸首所需的对象数量缩小 50%!

所以当初咱们有 50 个对象。它仍会迟缓渲染吗?是?再次删除残余的 50 个对象中的一半。

它仍会迟缓渲染吗?没有?大!当初,咱们晓得罪魁祸首在咱们最初删除的那 25 个对象中。

因而,当初咱们只需两步,就能够将一百个对象缩小到 25 个。

继续执行此操作,直到找到对象。

(显然,这只是用于查找和测试问题所在的地位,请勿保留 / 笼罩场景。)

排除原理能够利用于任何事物。要命名网格、材质、灯光、关键帧。

始终尽可能放大问题范畴。尽可能地凑近罪魁祸首,您经常会发现解决办法比您设想的要容易得多。

您认为以下哪个论坛申请会容许其他人更好地帮忙您?

1、“请帮忙:我的场景渲染迟缓”2、“请帮忙:为什么我场景中的树木渲染速度比其余场景(Redshift)慢得多?”

我能够保障,如果您失去第一个答案,那就是:“请先放大问题起源”。

不过,第二个可能会立刻失去答案:“大多数 3D 树上的叶子上通常都带有通明的资料。尝试限度透明度跟踪深度,看看渲染工夫是否变好,或者渲染引擎是否具备在高透明度深度下更好地工作的着色器。”

Redshift 的模板垫即便在高通明深度下也不会升高速度。尝试应用它。”

当初,第二个听起来如同能够立刻解决您的问题。因为您曾经晓得导致加速的起因是什么,所以其他人能够更快地为您提供帮忙。

通过排除事物,您能够将它们排除在等式之外。

排除场景对象?渲染依然很慢吗?您的场景自身很可能会很好。

缩小了渲染设置?渲染依然很慢吗?您的渲染设置很可能很好。

替换您的 CPU 或 GPU?渲染依然很慢吗?CPU 或 GPU 很可能与渲染速度升高无关。

你明确了。那样简略。

当然,问题始终可能是不同畛域的联合,然而稍后咱们会解决。

记住,要缩小导致加速的起因。

而后咱们能够进行修复。

在本文中,我将介绍一些典型的区域,这些区域通常被认为是导致渲染速度变慢的起因,您兴许能够应用这些办法来解决您的问题。

不过,它们并不总是无效,因而,请尝试学习剖析和分析场景的技巧,这样就永远不须要内部帮忙。

人们会来找您,因为您是专家。它所须要的只是对 3D 世界中解决问题的一些见解(不仅仅是渲染)。

首先找到瓶颈–查看样品

简直每个古代的 Render Engine 都能够可视化每个像素采集的样本数量。这是 Redshift 的样子:

深色像素代表较少的样本,亮堂像素代表大量的样本。

可能渲染图像并高深莫测地看到哪些区域须要最多的样本,能够告诉您很多无关场景以及从何处进行优化的信息。

样本分布可视化会告诉您渲染设置是否配置谬误,或者是否存在某些场景对象,材质或照明仅须要太多样原本革除。

首先找到瓶颈–查看视口

很多时候,您所须要做的就是在“线条模式”下查看视口,以便它在视口中显示所有多边形轮廓。

以上面这个场景为例。高深莫测,哪些对象具备许多多边形,应该具备缩小的后劲:

视口屏幕截图设置为(暗藏)线视图

首先找到瓶颈–查看场景和对象信息

每个 3D 应用程序都能够显示整个场景或所选对象的多边形数量。这是在 Cinema 4D 中的外观:

还记得以前的排除准则吗?首先查看整个场景的多边形数。如果看起来很高,请抉择一半的对象,而后再次查看。

缩小对象抉择的数量,直到找到多边形计数过高的对象并进行优化。

如果您具备一个构造良好的场景,其中蕴含几个次要的对象组,则也能够单步执行这些操作并逐渐遍历层次结构,这可能会更快。

缩小多边形数量

渲染性能的一个重要因素是场景中多边形的数量。依据教训,能够说,对于大多数场景,多边形越少,渲染它的速度就越快。

以下是大部分工夫来自大量多边形的列表:

  • 原始网格物体曾经带有很多多边形。例如,导入的 CAD 数据或造型
  • 能够细分网格物体的修改器,每个细分的多边形数量减少四倍(例如 Cinema 4D 中的 HyperNurbs,Blender 中的细分曲面等)
  • 克隆
  • 通过组合 / 拉伸曲线生成的任何类型的 NURB 对象
  • 细分过多的参数对象
  • 微位移

当初,您不能就解脱这些,对吗?它们是必不可少的,但咱们的确心愿尽可能地对其进行优化。

该过程很简略:缩小多边形的数量,直到开始看到渲染中的视觉差别为止。

让我解释一下:您是否须要在每一侧都具备100 个细分的参数立方体?如果每边只有一个多边形,看起来会有所不同吗?不会的!

让咱们疾速看一下其中的每个:

原始网格

多边形太多的原始网格物体很快就会成为渲染迟缓的起因。

原始网格物体的问题是,它们可能很难优化。

除了向其中增加一些折减修改器(通常会节约大量的 UV 布局和多边形流动)之外,除了手动折减和 retopo 之外,您实际上无能为力。

当然,如果您具备这些 Raw 网格的源文件,它们的原始文件,就能够保留!

您的客户是否向您发送了要转换为多边形能力在 3D 场景中应用的 STEP 或其余 CAD 数据?指定要从中生成多少个多边形很容易。尝试一下。

您的场景中是否具备雕刻的角色,其中蕴含数百万个多边形?兴许您能够获取源文件并应用细分修饰符,而不是将疯狂的分辨率间接烘焙到网格中。这样,您能够将细分级别调整为适宜您的角色的屏幕大小。

基准是这样的:仅应用网格的屏幕尺寸所需的尽可能多的多边形或细节。

如果您的角色在背景中,那么与拍摄特写镜头相比,您应该可能缩小多边形的数量。

(让咱们疏忽一个事实,即为高多边形的原始网格进行拆卸和设置动画是我永远都不想做的……)

记住,我并不是说您应该低调并扭转场景的外观。您应该具备 实现场景外观所需的起码数量的多边形

您能够采取以下其余办法进一步缩小多边形的数量:

删除 / 禁用相机看不到的所有内容

渲染飞机在天上飞?我敢打赌,大多数外部对象甚至无奈通过相机看到。禁用那些座椅,轮子和其余外部结构网格。

渲染森林?删除相机前面的所有树木和草丛。不须要那些。

渲染客厅?我敢打赌,在反射中看到的任何货色都能够缩小很多。您无奈真正判断花瓶中反映的动物是否具备一百万或一千个多边形。

细分,修饰符,生成器,克隆,实例

修饰符、生成器和克隆是一种祝愿。它们使场景的构建变得容易得多,而不用破坏性地烘焙正在应用的网格。

他们越容易单干,就无奈最大水平地优化本人的后劲。

细分曲面 为例。它们细分整个网格,每个级别将多边形的数量减少四倍。不仅如此,您通常还能够抉择别离设置视口和细分和渲染子细分。

这看起来仿佛很显著,然而却带来了这样的危险,即您可能不会留神到视口显示和理论渲染之间的多边形差别。

您的视口可能是顺畅的航行,因为细分设置为 0,但它们可能设置为比渲染时更高的级别。检查一下!

诸如 Extrude 之类的生成器会依据一些特定参数生成根底网格的新多边形。

同样,您通常能够别离设置“渲染”设置和“视口”设置,因而请确保这些拉伸子步骤尽可能少。

克隆器 是渲染速度慢的罪魁祸首。设置起来很容易,请确保生成的实例是实在的内存实例,有时也称为渲染实例(或 3dsmax 中的 Multiscatter)。

这容许渲染器在其援用的内存中仅蕴含这些克隆对象中的一个,从而使克隆器的内存耗费仅是具备非渲染实例时所需内存的一小部分。

在树上克隆数百万片叶子?您的克隆程序只须要一个叶子所需的内存(或多或少),就能够实现真正大量的克隆。

即便您只是在克隆器或数组对象之外应用实例,也请确保将其设置为用作渲染实例,以便节俭内存。

NURB / 曲线组合

与拉伸相似,任何类型的 Sweep,Loft 或 Lathe NURB 生成器都会采纳样条线 / 曲线或其中的许多样条线 / 曲线,并从中创立 NURBs 对象,而后在渲染时将其无损地转换为多边形。

因为“曲线”能够具备很多顶点来使其平滑,因而请确保优化生成的“扫掠”、“放样”或“车床”,以实现仅应用所需外观所需的起码子步数。

有时您能够在 Generator 自身中设置子步骤,有时必须缩小曲线上的细分,以优化生成的对象。

参数对象

每个 3D 软件都带有一些参数化的默认对象,这意味着能够对它们进行肯定水平的更改,而不用破坏性地将它们转换为根本网格。

这些默认对象通常包含立体 / 曲面、立方体、球体、圆锥体、圆柱体、管等,并且您通常能够设置半径、高度、边数和其余参数。

因为这些是默认对象,所以它们带有预约义的参数,这些参数可能无奈针对场景或总体工作形式进行优化。

示例:如果增加须要用作地板的外表,则该立体的默认设置可能是曾经有许多细分的默认设置,从而使该立体蕴含数百个多边形。

这是齐全没有必要,你须要一个地立体是一个繁多的多边形(除非你想以某种形式取代它)。

查看默认对象,并尽可能减少多边形,而不会过多扭转场景的外观。

事实上,大多数 3D 应用程序都可让您保留参数对象的默认设置,因而,如果每次创立参数对象时都进行了雷同的调整,则可能须要从头开始设置默认参数,从久远来看能够节俭您一些工夫。

微位移

Micro-Poly 位移是渲染时会创立很多新多边形的另一件事,而通常不会在视口中看到。

同样,请确保您的确须要它们,或者是否能够应用法线贴图或凹凸贴图伪造它们,尤其是当它们在背景中或只能在反射中看到时。

如果的确须要它们,请查看细分数量,直到位移网格变得太毛糙为止。

多边形论断:为什么更少的多边形渲染速度更快?

事件是这样的:如果要在亮堂的日光下应用默认的灰色材质渲染角色转盘,则如果角色具备 10k 或 10mio 多边形,则很可能看不到任何区别。

多边形自身不会减少渲染引擎革除图像所需的样本数量。

然而,多边形确实会升高光线跟踪器的整体性能和光线树的构建速度。

因而,只管您不会看到“采样”的差别,然而在多边形较少的场景中,计算这些采样的速度会更快。

正文完
 0