日本超碰在线免费看,日本A级不打码按摩片,学生把老师弄高潮视频,一二三四国产精品,久久av色,免费麻豆av,两个男人互操

服務(wù)熱線熱線:

13818745178

九游(ninegame)娛樂中國官方網(wǎng)頁-企業(yè)入口

行業(yè)洞察

當(dāng)前位置: 首頁 > 資訊動態(tài) > 行業(yè)洞察

2020-03-25 UE4實時渲染

發(fā)布時間:2025-06-15點擊次數(shù):

  劃水大半年,還沒正式開始做項目。簡單記錄一下最近看的ue4實時渲染(RTR)原理,以后在實際項目中應(yīng)該能用到。當(dāng)然,以下內(nèi)容只是我對虛幻4實時渲染的初步理解,可能會有一些認知上的不足導(dǎo)致理解有誤。

  實時渲染有兩種實現(xiàn)方式,延遲渲染(Deferred Rendering 適用于復(fù)雜的應(yīng)用)和正向渲染(Forward Rendering 適用于簡單的應(yīng)用)。在ue4中默認使用的是延遲渲染,以下內(nèi)容也是基于延遲渲染的。

  當(dāng)對象尺寸足夠小,距離鏡頭足夠遠時,可以不進行渲染,以提高性能。在UE4中,可以使用 剔除距離體積(Cull Distance Volume)來設(shè)置距離剔除。

  提前計算出攝像機在各個位置時,actor的可見性,并存儲在場景中。在運行時,當(dāng)攝像機移動到某一區(qū)域,可以立即獲取到當(dāng)前狀態(tài)下各個actor的可見性。適用于中小型、靜態(tài)對象較多、攝像機移動區(qū)域受限的場景,用空間換時間。在UE4中開啟世界場景設(shè)置(World Settings) 預(yù)計算可視性(Preputed Visibility)后,使用預(yù)計算可視性體積(Preputed Visibility Volume)來實現(xiàn)這一功能。

  這個環(huán)節(jié)要注意的就是繪制調(diào)用(Drawcall)次數(shù),性能的控制和優(yōu)化就在于繪制調(diào)用的次數(shù)。一組相同屬性的多邊形是一次drawcall,一個材質(zhì)是一次drawcall,這里能做的就是合并模型減少繪制調(diào)用。

  但是,合并模型會影響遮擋剔除、光照貼圖、碰撞檢測使他們更加復(fù)雜,還會增加內(nèi)存開銷。因此合并模型遵循以下原則:

  1.使用次數(shù)多,面數(shù)少的網(wǎng)格體。(可以在 **窗口-統(tǒng)計數(shù)據(jù)** 中篩選) 2.在同一空間內(nèi)。(不同空間的網(wǎng)格體合并后,會使遮蔽剔除和碰撞檢測變得復(fù)雜) 3.擁有相同的材質(zhì)。(不同材質(zhì)會導(dǎo)致多次繪制調(diào)用,合并了也不會有改善) 4.不需要碰撞或者碰撞體積簡單。 5.體積非常小或只接受動態(tài)光照。 6.距離攝像機很遠。(可以使用HLOD來實現(xiàn))

  另外,對于草地一類的需要大量重復(fù)繪制的網(wǎng)格體,可以使用實例化網(wǎng)格體組件(InstancedStaticMesh)來實現(xiàn)。

  利用頂點著色器可以實現(xiàn)水面、風(fēng)吹草地的動畫效果,在材質(zhì)編輯器中修改世界坐標偏移。

  三維模型最終要渲染到二維的屏幕上,三維到二維的轉(zhuǎn)換就叫做光柵化(Rasterizing)。

  模型是由一個個三角形面構(gòu)成,光柵化就是要將一個個三角形對應(yīng)顯示在一個個像素點上,在這里像素點是以2 * 2矩陣為最小單位進行計算的,因此即使一個矩陣中只有一個像素點對應(yīng)上了三角形,那其他三個點也會參與一次計算。如果一個矩陣的4個點分別對應(yīng)著4個三角形,此時就會有2 * 2 * 4次計算,4個像素點執(zhí)行了16次計算,這就是過度著色(Overshading)。

  在ue4中可以使用視圖模式-優(yōu)化視圖模式-四邊形過度繪制來查看場景中的過度著色。

  模型距離攝像機越來越遠時,近大遠小,他在屏幕上的繪制區(qū)域也會變小,三角形的密度就會變大。這就可以使用距離剔除和LOD來進行優(yōu)化。

  光柵化之后,就開始渲染圖像了,這些圖像就是GBuffer。從這時開始的計算,都不在基于幾何體了,而是基于GBuffer。

  GBuffer是一組圖像,他包括靜態(tài)光照貼圖、法線貼圖、金屬色組合貼圖(R:金屬性,G:高光,B:粗糙度)、紋理貼圖、深度緩沖等10張圖像。如果你的游戲是60fps,那么每秒就會有600張圖像被渲染和傳輸。

  如果紋理的寬高都是2的指數(shù)冪,那么ue4會在導(dǎo)入紋理時自動生成多級漸進紋理,多級漸進紋理可以有效的改善模型縮小時產(chǎn)生的噪點。

  著色器是一段運行在GPU上的程序,像素著色器用來計算每個像素點的值,廣泛應(yīng)用于渲染的每個步驟。材質(zhì)系統(tǒng)、光照、霧、反射、后處理、顏色校正等都是有像素著色器實現(xiàn)的。

  ue4提供了很多HLSL的模板代碼,從而支撐起一個可視化材質(zhì)編輯器。通過在材質(zhì)編輯器中簡單拖拽編輯,然后編譯成著色語言。

  像素著色器的渲染很慢,因為涉及像素著色器的工作內(nèi)容太多了。分辨率越高,材質(zhì)越復(fù)雜,影響也就越大(消耗 ≈ 像素點數(shù) * 材質(zhì)復(fù)雜度)。使用視圖模式-優(yōu)化視圖模式-著色器復(fù)雜度可以查看材質(zhì)的復(fù)雜度。

  在場景中添加一個球體反射采集(Sphere Reflection Capture)或者盒體反射采集(Box Reflection Capture),然后構(gòu)建反射采集(預(yù)計算)。在游戲中用預(yù)編譯好的紋理,直接疊加到反射材質(zhì)上就有效果了(速度快)。但是,因為是預(yù)編譯好的靜態(tài)文件,只有攝像機和反射采集對象在同一位置時才能看到反射的最佳效果,否則會產(chǎn)生偏移,并且反射的影像不會隨著場對象的移動發(fā)生變化,因為他是預(yù)編譯好的靜態(tài)紋理(不精確)。而且攝像機一旦離開反射采集球體/盒體的范圍,就看不到反射效果了(只影響局部區(qū)域)。

  添加一個平面反射對象(PlanarReflection)在光滑平面上,這個平面就可以精準的實現(xiàn)反射效果,但是反射到的內(nèi)容會被渲染兩次,導(dǎo)致渲染工作量翻倍。

  特點:實時,有噪點,性能消耗很大,只能反射出當(dāng)前可見的幾何體(站在你后面的人,不會映在你面前的鏡子中(可怕))

  像反射一樣,光照和陰影在實時渲染中也很難計算,需要占用大量硬件性能,并且計算速度慢,因此對于光照也會使用預(yù)計算/預(yù)渲染,生成光照貼圖,在渲染時和模型的底色貼圖相乘,這就是靜態(tài)光照。

  7.靜態(tài)光照的質(zhì)量取決于光照貼圖分辨率和UV布局,UV布局可能導(dǎo)致光照貼圖出現(xiàn)接縫。而光照貼圖的分辨率會有上限,導(dǎo)致巨型模型沒有足夠的空間存儲貼圖和UV,為了避免浪費,遠距離的模型也不應(yīng)該使用高分辨率光照貼圖。

  但是,這些光照貼圖都是基于已經(jīng)存在于場景中的靜態(tài)模型渲染的,如果在游戲運行后,走過來一個模型,他是如何對光照做出反應(yīng)呢?

  使用顯示-可視化-體積光照采樣可以查看ILC的存儲點,每個點中就存儲了光照信息。在動態(tài)模型的lightmass設(shè)置中可以設(shè)置間接光照緩存的質(zhì)量,從而確定如何使用場景中的ILC

  1.最常用的類似就是常規(guī)動態(tài)陰影(Regular Dynamic Shadows),設(shè)置為可移動(Movat)并且打開投射陰影(Cast Shadows)的光源,就會生成常規(guī)動態(tài)陰影,陰影特點是清晰甚至過于銳利。

  2.逐對象陰影(Per Object Shadows)或者叫固定光源陰影---將光源的移動性設(shè)置為固定(Statior)。固定光源陰影會通過靜態(tài)陰影和動態(tài)陰影混合實現(xiàn)陰影效果,效果比常規(guī)動態(tài)陰影柔和一些。

  4.距離場陰影(Distance Field Shadows),級聯(lián)陰影雖然可以實現(xiàn)很好的過度效果,但是對于處理超遠距離的陰影,還是有性能上的浪費,這時就需要距離場陰影。距離場陰影使用距離場信息計算陰影,而不是幾何體信息,他的效果不夠精確,但是消耗低。需要打開項目設(shè)置引擎渲染LightingGenerate Mesh Distance Fields來生成體積紋理。

  5.插圖陰影(Inset Shadow)他的本質(zhì)還是逐對象陰影,在一些動態(tài)模型上能提供更高的陰影分辨率,角色通常會默認開啟插圖陰影,這樣即使附近沒有適合的光源,也能投射出高分辨率的陰影。

  7。膠囊體陰影(Capsule Shadow)非常簡單的陰影,消耗也非常低。

  4.幾何體到光源的距離。(這個就是大量消耗性能的地方,需要用光源當(dāng)作攝像機,渲染出一張只有深度信息的360度全景貼圖)

  然后用這4個信息合成一張陰影貼圖,再用這張陰影貼圖去和光照貼圖、法線貼圖、紋理貼圖等去混合,生成最終效果。這些都是像素著色器做的事情。

  7.幾何體的面數(shù)會影響動態(tài)陰影質(zhì)量,在陰影復(fù)雜的環(huán)境中,需要降低多邊形數(shù)量。

  10.適當(dāng)混合使用靜態(tài)和動態(tài)光照。(例如將一個強度弱,范圍廣的靜態(tài)光源和一個高強度小范圍的可移動光源組合使用,就可以實現(xiàn)近距離動態(tài),遠距離靜態(tài)的效果。技術(shù)上來講,也可以用一個固定光源來代替這兩個光源。)

  距離霧會隨著距離而消退。通過像素著色器將深度緩沖、霧的基礎(chǔ)色、光照和之前渲染的圖像混合在一起,就實現(xiàn)了霧的效果。

  1.用正向渲染來渲染透明,再將結(jié)果混合到延遲渲染中。(修改材質(zhì)細節(jié)面板的光照模式為“正向著色”)

  2.半透明的著色模型盡量不要使用“默認光照”,而是用“無光照”并且改變自發(fā)光效果,手動去適配周圍環(huán)境光。

  在渲染的最后階段,再次使用GBuffer和像素著色器進行渲染處理,這就是后期處理。在ue4的后期處理體積 PostProcessVolume中可以做出很多效果。

  平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

  【GPU精粹與Shader編程】(二) 《GPU Gems 1》全書核心內(nèi)容提煉總結(jié) · 上篇

  毛星云網(wǎng)名「淺墨」,微軟MVP,《Windows游戲編程之從零開始》作者 本文將總結(jié)提煉“GPU精粹三部曲“11本...

  【GPU精粹與Shader編程】(三) 《GPU Gems 1》全書核心內(nèi)容提煉總結(jié) · 下篇

  毛星云網(wǎng)名「淺墨」,微軟MVP,《Windows游戲編程之從零開始》作者 本篇文章將總結(jié)提煉“GPU精粹三部曲“1...

  OpenGL 圖形庫的使用(四十)—— 高級光照之延遲著色法Deferred Shading

  版本記錄 前言 OpenGL 圖形庫項目中一直也沒用過,最近也想學(xué)著使用這個圖形庫,感覺還是很有意思,也就自然想著...

  版本記錄 前言 OpenGL 圖形庫項目中一直也沒用過,最近也想學(xué)著使用這個圖形庫,感覺還是很有意思,也就自然想著...

  【GPU精粹與Shader編程】(一) 開篇 & 全系列11本書核心知識點總覽

  毛星云網(wǎng)名「淺墨」,微軟MVP,《Windows游戲編程之從零開始》作者 系列文章前言 《GPU Gems》1~3...九游娛樂中心九游娛樂中心

上一篇:國產(chǎn)成a人片在線觀看網(wǎng)站_國產(chǎn)成a人片在線觀看網(wǎng)站V

返回列表

下一篇:js中如何渲染