【Unreal Engine4】實時渲染流程
虛幻引擎中文技術直播 第1期 虛幻引擎4的實時渲染流程_嗶哩嗶哩_bilibili
游戲引擎渲染流水線如下圖:
UE4官方直播渲染流程:
1.Logic

2.culling(裁剪)
這個階段也可以叫做剔除,裁剪主要負責哪些物體要渲染到屏幕上,哪些不繪制,在CPU階段,該階段已經把大量不可見物體排除了
有三個因素影響裁剪,按順序:
(1)距離:根據(jù)攝像機到物體的距離進行裁剪
(2)視椎體:和相機的角度有關,可視范圍一般為放射狀的錐體
(3)遮擋:如果物體a在物體b前面且a不透明,那么遮擋部分就不渲染,這個放在最后剔除

在ue4編輯器中選中物體,會有一個黃色的圈叫Bounds,這是判斷是否裁切(剔除)的邊界。

在StaticmeshActor下面Rendering面板有控制最大渲染距離,如果該物體距離相機超過該距離就不渲染

2 DrawCall
減少DrawCall的方法:

GPU相對于CPU的優(yōu)勢:
可以理解為GPU有幾百萬的并行線程,可以同時處理頂點,像素
3 頂點著色和像素著色

ue4對頂點著色控制不多,因為模型都是外部軟件做好導進來的
對于像素著色,在光柵化階段,把對應頂點畫出三角形,三角形又有圖元和像素組成,再對像素進行著色
4 深度緩沖
ue4根據(jù)DepthBuffer來區(qū)分哪些物體在前面,避免重復繪制

ue4先拿出DepthBuffer來判斷哪些物體畫哪些不畫

在G緩沖中包含了這些信息,把這些數(shù)據(jù)處理好也即把BasePass處理好了

對于每個信息都可以在這里去查看

PBR(基于物理的渲染):盡可能模擬現(xiàn)實中每個物體的基礎的物理屬性
比如反光強度,粗糙程度,基礎顏色,金屬度,高光
在延遲渲染中,多個逐像素光源對多個物體時,只計算一次BassPass,再計算光照
5 靜態(tài)光和動態(tài)光
靜態(tài)光在運行之前就把光照顏色和陰影做好了,通過LightMass內置程序,將這些信息放到一張圖片上,靜態(tài)光缺點是消耗內存,因為一張圖很占內存

動態(tài)光

固定光源

6 反射


ue4一共以上三種反射,反射做完了進行alpha的特別處理


最后做后期處理
