如何更快地渲染?深入了解3D渲染性能的指南!(2)
如何更快地渲染-概述:
我将把本文分为两个主要部分:
可以优化的内部渲染因子
可以优化的外部渲染因子
您会发现内部渲染因子与您想要更快地优化/渲染的场景紧密相关,需要更改场景元素和渲染设置。
另一方面,优化外部渲染因子根本不需要或几乎不需要更改场景。这些是外部因素,例如整体硬件性能或渲染管理器拾取场景的方式。
您可以优化两者中的任何一个并获得不错的加速,或者可以同时处理内部和外部因素,并看到渲染时间减少得更多!
时间至关重要,所以让我们开始吧!
如何更快地渲染-方法论
有两种方法可以解决此问题:您可以试着尝试以下某些项目,希望对您有所帮助,或者可以分析场景和环境,然后应用正确的修复程序。
后一种选择所需的步骤很简单:
1、找出为什么场景渲染如此缓慢的原因2、修理它
这又使我们想到了另一件事:相对而言,“慢”是什么?
您的场景可能会进行非常出色的优化,您的硬件是最好的,但是您对拥有数百万棵树的森林进行25K全景渲染仍需要5分钟吗?
好吧,考虑到场景的复杂性,这实际上一点也不慢。但这不是您在这里的目的,对吧?
您希望场景的渲染速度比现在快,这就是我们将要实现的目标。
这使我们回到加速场景的两个步骤,并将其更改为:
1、找到需要最少时间和金钱来解决的最大瓶颈2、修理它
这次介绍差不多完成了,只是一件事:我相信您会在您的职业生涯中构建更多的3D场景,并在将来从事许多项目。从创建任何项目的一开始,就需要将本指南中的想法应用到整个项目中。
不要在最终需要进行渲染时才进行优化,要在构建场景时就考虑视口或渲染性能的优化。
能够更快地渲染,使您在处理场景时可以更频繁地进行迭代,提高质量,减少花费的时间,最终使你成为一个更具竞争力的3D艺术家。从长远看来,可以使您要求更高的费率或更高的薪水。
渲染引擎如何工作
我们将从高层次的角度开始研究渲染引擎的工作原理,以及如何增加渲染时间以更好地指出为了使场景渲染更快而需要更改的内容。
为了简单起见,我可以这样说:一般来说,在任何给定场景中,我们只有3种类型的对象:
发光的物体,例如灯或太阳
物体反射和折射光的程度不同
我们认为的相机
实际上,我们的现实世界是类似构建的,我们的眼睛有时是照相机。
渲染引擎“渲染”或计算3D场景的外观,与我们实际的世界非常相似。
像太阳一样的光源发出的光会从一个或多个表面反射,直到射入我们的眼睛,然后产生的光使我们以不同的方式看到物体。
渲染时,您的计算机必须认真地“计算”真实世界中由物理完成的操作。
例如,采取从表面反射的光线。计算机必须计算以下内容:
光线从物体以什么角度反弹
吸收了多少光线
多少光线沿不同方向或进入表面散射
多少光被反射或折射
那只是一个简单场景中的一条光线。想象一下,计算机必须为场景的每个表面计算很多很多光线。
幸运的是,PC的CPU(处理器)和GPU能够快速且非常擅长进行此类计算,比我们的人类要好得多,特别是GPU(图形卡或视频卡)是针对此类图形和“光线跟踪”定制的”计算。
现在,我们需要做什么?
尽管我们可以更深入地研究渲染引擎的工作原理,但是上面的描述应该已经足以分析和优化场景以更快地渲染:
由于渲染引擎所做的大部分工作是在场景中拍摄一束光线,然后从物体上反射回来,因此我们已经可以得出以下结论:
渲染无噪图像所需的光线越少,渲染过程将完成得越快
“无噪音”:这是一个新名词,我们将快速介绍一下:
您最有可能看过它。低质量渲染的图像不平滑或不清晰。它们到处都是噪点或颗粒,因此很难分辨细节。
原因很简单,这是本文所需要的入门理论的最后一部分,所以再多花一点时间。
这是噪音的来源以及我们如何消除它:
任何图像(是否渲染)都由像素组成。渲染引擎为每个像素采样。
为了简单起见,我们将其放置在场景相机中的渲染引擎通过每个像素拍摄一束光线,然后知道该特定像素后面的内容。这也称为“采样”。
射出光线穿过像素并击中木头,那里有木头。射出光线穿过像素并找到金属,图像的那个区域中有金属。很简单。
但是,这是重要的部分:像素不是一维的,而是二维的。基本上,每个像素都是一个二维正方形。一堆正方形在一起就是图像。
那么为什么这很重要?因为我们穿过一个像素来查看背后3d场景中的光线或样本是一维的。为了获得像素整个正方形区域后面的平均值,我们将必须通过该像素和每个像素发射多条光线(采集多个样本)。
举这个例子:
图像来源:维基百科
如果我们仅通过X射线照射到橙色三角形,则渲染引擎会认为整个像素都被橙色三角形填充/覆盖,而实际上它仅覆盖了该像素的右下部分。
通过对该像素进行多次射线/采样,我们将知道该像素的90%实际上是白色/灰色而不是橙色(有些也是绿色的)。因此,使用多个样本,我们可以扣除该像素的平均颜色。
因此,如果我们每个像素仅使用一个或少量样本,则我们不完全知道整个像素背后是什么,而在采样样本的一维点之后。
结果:我们的错误阈值很高,并且我们得到了嘈杂的图像。
我们通过每个像素拍摄的样本越多,误差阈值或噪点阈值就越低,并且最终图像的颗粒度也越小。
!那是对渲染实际工作方式的内部运作的一次考察。
现在请记住,所有渲染引擎都有自己的优化某些事物的方法,并且有一些方法可以伪造或优化某些过程,但是对于任何渲染引擎,通用功能都可以被广泛应用。
您对场景进行的采样越多,结果越平滑。
我们也可以这样说:如果场景中没有太多事情发生,那么与场景中充满了复杂物体,复杂材料或复杂照明的情况相比,您将能够获得更少的样本。
未完待续...
敬请关注Renderbus云渲染农场整理发布的《如何更快地渲染?深入了解3D渲染性能的指南!(3)》
本文《如何更快地渲染?深入了解3D渲染性能的指南!(2)》由Renderbus云渲染农场整理发布,如需转载,请注明出处及链接:https://www.renderbus.com/share/how-to-render-faster-2
相关阅读推荐: