共计 2221 个字符,预计需要花费 6 分钟才能阅读完成。
如何更快地渲染 - 概述:
我将把本文分为两个次要局部:
- 能够优化的外部渲染因子
- 能够优化的内部渲染因子
您会发现外部渲染因子与您想要更快地优化 / 渲染的场景严密相干,须要更改场景元素和渲染设置。
另一方面,优化内部渲染因子基本不须要或简直不须要更改场景。这些是内部因素,例如整体硬件性能或渲染管理器拾取场景的形式。
您能够优化两者中的任何一个并取得不错的减速,或者能够同时解决外部和内部因素,并看到渲染工夫缩小得更多!
工夫至关重要,所以让咱们开始吧!
如何更快地渲染 - 方法论
有两种办法能够解决此问题:您能够试着尝试以下某些我的项目,心愿对您有所帮忙,或者能够剖析场景和环境,而后利用正确的修复程序。
后一种抉择所需的步骤很简略 :
1、找出为什么场景渲染如此迟缓的起因 2、修理它
这又使咱们想到了另一件事:相对而言,“慢”是什么?
您的场景可能会进行十分杰出的优化,您的硬件是最好的,然而您对领有数百万棵树的森林进行 25K 全景渲染仍须要 5 分钟吗?
好吧,思考到场景的复杂性,这实际上一点也不慢。但这不是您在这里的目标,对吧?
您心愿场景的渲染速度比当初快,这就是咱们将要实现的指标。
这使咱们回到减速场景的两个步骤,并将其更改为:
1、找到须要起码工夫和金钱来解决的最大瓶颈 2、修理它
这次介绍差不多实现了,只是一件事:我置信您会在您的职业生涯中构建更多的 3D 场景,并在未来从事许多我的项目。从创立任何我的项目的一开始,就须要将本指南中的想法利用到整个我的项目中。
不要在最终须要进行渲染时才进行优化,要在构建场景时就思考视口或渲染性能的优化。
可能更快地渲染,使您在解决场景时能够更频繁地进行迭代,提高质量,缩小破费的工夫,最终使你成为一个更具竞争力的 3D 艺术家。从长远看来,能够使您要求更高的费率或更高的薪水。
渲染引擎如何工作
咱们将从高层次的角度开始钻研渲染引擎的工作原理,以及如何减少渲染工夫以更好地指出为了使场景渲染更快而须要更改的内容。
为了简略起见,我能够这样说:一般来说,在任何给定场景中,咱们只有 3 种类型的对象:
- 发光的物体,例如灯或太阳
- 物体反射和折射光的水平不同
- 咱们认为的相机
实际上,咱们的事实世界是相似构建的,咱们的眼睛有时是照相机。
渲染引擎“渲染”或计算 3D 场景的外观,与咱们理论的世界十分类似。
像太阳一样的光源收回的光会从一个或多个外表反射,直到射入咱们的眼睛,而后产生的光使咱们以不同的形式看到物体。
渲染时,您的计算机必须认真地“计算”真实世界中由物理实现的操作。
例如,采取从外表反射的光线。计算机必须计算以下内容:
- 光线从物体以什么角度反弹
- 排汇了多少光线
- 多少光线沿不同方向或进入外表散射
- 多少光被反射或折射
那只是一个简略场景中的一条光线。设想一下,计算机必须为场景的每个外表计算很多很多光线。
侥幸的是,PC 的 CPU(处理器)和 GPU 可能疾速且十分善于进行此类计算,比咱们的人类要好得多,特地是 GPU(图形卡或视频卡)是针对此类图形和“光线跟踪”定制的”计算。
当初,咱们须要做什么?
只管咱们能够更深刻地钻研渲染引擎的工作原理,然而下面的形容应该曾经足以剖析和优化场景以更快地渲染:
因为渲染引擎所做的大部分工作是在场景中拍摄一束光线,而后从物体上反射回来,因而咱们曾经能够得出以下论断:
- 渲染无噪图像所需的光线越少,渲染过程将实现得越快
“无噪音”:这是一个新名词,咱们将疾速介绍一下:
您最有可能看过它。低质量渲染的图像不平滑或不清晰。它们到处都是噪点或颗粒,因而很难分辨细节。
起因很简略,这是本文所须要的入门实践的最初一部分,所以再多花一点工夫。
这是乐音的起源以及咱们如何打消它:
任何图像(是否渲染)都由像素组成。渲染引擎为每个像素采样。
为了简略起见,咱们将其搁置在场景相机中的渲染引擎通过每个像素拍摄一束光线,而后晓得该特定像素前面的内容。这也称为“采样”。
射出光线穿过像素并击中木头,那里有木头。射出光线穿过像素并找到金属,图像的那个区域中有金属。很简略。
然而,这是重要的局部:像素不是一维的,而是二维的。基本上,每个像素都是一个二维正方形。一堆正方形在一起就是图像。
那么为什么这很重要?因为咱们穿过一个像素来查看背地 3d 场景中的光线或样本是一维的。为了取得像素整个正方形区域前面的平均值,咱们将必须通过该像素和每个像素发射多条光线(采集多个样本)。
举这个例子:
图像起源:维基百科
如果咱们仅通过 X 射线照射到橙色三角形,则渲染引擎会认为整个像素都被橙色三角形填充 / 笼罩,而实际上它仅笼罩了该像素的右下局部。
通过对该像素进行屡次射线 / 采样,咱们将晓得该像素的 90%实际上是红色 / 灰色而不是橙色(有些也是绿色的)。因而,应用多个样本,咱们能够扣除该像素的均匀色彩。
因而,如果咱们每个像素仅应用一个或大量样本,则咱们不齐全晓得整个像素背地是什么,而在采样样本的一维点之后。
后果:咱们的谬误阈值很高,并且咱们失去了嘈杂的图像。
咱们通过每个像素拍摄的样本越多,误差阈值或噪点阈值就越低,并且最终图像的颗粒度也越小。
!那是对渲染理论工作形式的外部运作的一次考查。
当初请记住,所有渲染引擎都有本人的优化某些事物的办法,并且有一些办法能够伪造或优化某些过程,然而对于任何渲染引擎,通用性能都能够被广泛应用。
您对场景进行的采样越多,后果越平滑。
咱们也能够这样说:如果场景中没有太多事件产生,那么与场景中充斥了简单物体,简单资料或简单照明的状况相比,您将可能取得更少的样本。
未完待续 …