如何更快地渲染?深入了解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/
相關閱讀推薦:
轉載請在文章開頭和結尾顯眼處標注:作者、出處和鏈接。不按規范轉載侵權必究。
未經授權嚴禁轉載,授權事宜請聯系作者本人,侵權必究。
本文禁止轉載,侵權必究。
授權事宜請至數英微信公眾號(ID: digitaling) 后臺授權,侵權必究。
評論
評論
推薦評論
暫無評論哦,快來評論一下吧!
全部評論(0條)