UE4學習筆記1 (渲染)

2021-10-09 07:24:15 字數 2298 閱讀 8568

網格體模型的優化方面(幾何體渲染):

從技術上來說最好減少模型數量增大模型尺寸,大的模型雖然會減少繪製次數,但是對於繪製的可能性反而增加了,

同時對於光照貼圖(光照貼圖一般最大4096*4096)

以及碰撞檢測(比如說乙個球碰撞到柱子上了他得到的是整個房間的碰撞資訊)

記憶體也會產生影響。

模組化網格體

折中方法:使用少量大型模型或者大量小型模型(傾向於後者)

用單獨的模型構建場景之後合併模型,一般只合併損耗最大的模型(合併後最好用同一種材質),不會合併所有。

1、網格體經常使用,並且面數越低最好。

2、只合併同一區域的網格體

3、只合併同一材質的網格體

4、網格體沒有碰撞或者碰撞很簡單的

5、非常小的網格體或者只接受動態光照的網格體

6、遠距離的幾何體可以把一些模型合併

確保每個lod的面數是前面乙個lod的大約50%或者更少。

利用hlod減少繪製呼叫次數。

著色器和材質:

頂點著色器的位移一般用於視覺效果,cpu不會知道模型已經發生了位移(物理碰撞之類的還是保持不變)。

遠距離觀察物體時可以禁用動畫、特效,偏移來減少開銷。

為了實現紋理流送以及多級漸進紋理,將紋理的邊長設定為2的指數冪

1、材質或者著色器能檢視的紋理取樣器擁有最大數量上限通常最大值為16並且只有13個可以使用。但你可以使用共享取樣器,讓你使用多達128張不同的紋理(只限於dx11或dx12)

2、紋理大小相關問題主要是延遲和卡幀

3、畫素著色器對於效能有很大的影響,因為畫素著色器有大量的工作要做(光照 反射 霧 等渲染)

(主要是幾何體渲染匯中的繪製呼叫的數量 畫素著色器 半透明 動態陰影 主要4大因素導致實時渲染變慢)()

乙個複雜的材質如果螢幕畫素越多,損耗就越大

反射:反射捕獲只在固定的範圍內有區域性效果,並不精確但非常快速且需要預先計算

平面反射也是區域性的,類似反射捕獲從給定位置捕獲內容,反射僅限於平面,適合需要精確反射效果的表面(平滑表面)(鏡面)

ssr螢幕空間反射,反射所有物件,並且是實時反射,精確但是噪點大損耗大,只能渲染出現在螢幕上的內容

1、當乙個專案未經過烘焙時,反射捕獲會在關卡載入時執行捕獲,在關卡中新增過多反射捕獲可能導致載入變慢

2、當許多反射捕獲重疊時,損耗會變大,因為畫素著色器會多次計算,建議重疊不超過8個

3、天空光照能為遊戲世界提供低成本的備用反射捕獲

4、可以將ssr的質量提公升到標準質量之上以減少噪點(r.ssr.quality)

靜態光照:

出於效能考慮,將光照的部分計算分流到預計算或預渲染階段(靜態光照)

就流程而言:它會在編輯器中進行預計算,並將大部分結果儲存在光照貼圖中。在效能方面非常快速,但會增加記憶體佔用量而且預計算靜態光照需要花費很長時間。

就質量而言:靜態光照可以處理輻射和全域性光照,獲得真實的陰影效果以及真實且高質量的軟陰影。(由於uv布局的關係,光照中可能出現接縫)

因此巨型模型會缺乏足夠的光照貼圖uv空間。

光照貼圖本質上就是一張紋理,是一張烘焙有光照和陰影資訊的,然後紋理會和底色相乘。

ilc用來解決動態模型上的預計算光照(lightmass character inirect detail volume 可以處理空中的ilc)

1、靜態光照總會以完全相同的速度渲染

2、光照貼圖解析度會影響記憶體和檔案大小,而不是幀率

3、衰減半徑很大或者源半徑很大的光源會降低重新構建時間(時間變長)

動態光照:

流程:1、動態光照借助g緩衝實現實時渲染

2、光源可以被隨意改變、移動、新增或刪除

3、不需要準備任何特殊模型就能產生效果

4、陰影對於效能的影響非常大

5、渲染動態陰影有很多種方法,意味著需要時間和實踐才能找到合適的方法和混合方案

質量:1、陰影的效能消耗更大,通常需要降低渲染質量來降低動態陰影的巨大消耗

2、動態光照不會對大部分內容產生輻射或全域性光照

3、動態光照通常比靜態光照看上去更清晰更具「現場感」

4、動態陰影不太需要考慮模型大小

5、動態光照同樣不會產生軟陰影,雖然動態軟陰影也能實現

陰影:4種主要的動態投射型別

1、(最常用)常規動態陰影

2、逐物件陰影(固定光源陰影)

3、csm(級聯陰影地圖)

4、距離場陰影

光源+深度貼圖+世界法線貼圖+(攝像機到幾何體距離、幾何體到光源距離、攝像機位置、光源位置)生成陰影貼圖=動態陰影、動態光照

可以將靜態光照用於微弱和遠距離的光照,可以用靜態光照來渲染攝像機附近的間接光照然後再這基礎上使用動態光照來突出著色和陰影

UE 4 學習筆記 1

ue4 unreal engine 4 虛擬 虛幻 引擎 4 遊戲開發是一項高度複雜的 開發工作。基本知識內容 但是是否需要學完這麼多知識才能開發遊戲?顯然,這樣學習遊戲開發入門成本太高。於是,前人將基礎知識的複雜 進行了封裝 使得入門的遊戲開發者可以重點關心遊戲邏輯和功能方面的 無需接觸最底層的知...

UE4 學習記錄1

問題一 speedtree匯入ue4,報錯 標頭檔案有問題?解決 由於ue4支援的speedtree格式是srt,所以首先需要srt格式,其次spm檔案等也是要有的 問題二 3dmas場景模型匯入ue4,就分散了,位置不對,飛了?解決 1.maya裡面,凍結座標,所有物體座標歸零 玻璃破碎效果 很好...

UE4 風格化渲染

本篇思路是基於後處理實現的。獲取光照結果 由於diffusecolor 光照計算 最終顏色 又得益於ue4是延遲渲染,mrt可以儲存許多緩衝資訊,故在後處理獲取diffusecolor很簡單。因此可以反推初光照計算結果。最終顏色 diffusecolor。增加菲尼爾 在後處理獲取法線圖,即可進行菲尼...