ue4 實時渲染 筆記

1、ue4 用的是延遲渲染,延遲渲染 不能msaa,只能taa。

2、culling

distance culling  超過一定距離剔除,是一種低成本剔除

f'rustum culling 視錐剔除,在視錐外剔除,也是一種低成本剔除

precomputed visibility  把一個物體分割成很多個小的區域box,通過一定的數據結構和算法。當攝像機在某個位置,就能知道有些塊兒是完全被某些塊兒或者物體遮擋的,可以不用畫。

occlusion culling 

3 、prepass/early z pass,ue4預先處理,當畫一個a物體的時候,如果b物體擋住a的一部分,那麼a被擋住的部分像素不用畫。就是有b看不到a的部分,畫a的時候不用畫。個人感覺此部分應該是在生成圖元的時候生效。而不是光柵化的時候用zbuffer。

4、drawcall概念,兩個極端例子比較好理解,同樣畫一萬個正方形的平面片,一種片是8000個三角形 一個材質,一種片是32個三角形  10種材質。運行結果都是挺耗性能的。但是十種材質的更費性能。

總結一下就是 增加drawcall的因素   物體的個數,單個物體的材質數,單個物體三角形個數(影響比較小)

很有用的命令  stat uint  stat fps  rhi 等等

------------------------------------------------------------------------------------------------------------

5、場景中避免單個過大過於複雜的staticmesh,(遠處的山,背景除外),比如複雜的建築物房間,因爲雖然單個的大物體(材質單一的情況下)渲染速度更快,但是弊端很多,比如物理碰撞檢測會有問題,lightmap最大值難以滿足,光線的優化也會有問題。

所以比較好的方法就是拆分成很多不大不小的小塊,形狀規則的小塊。

 

6、一些簡單的動畫 可以靈活運用材質的裏的 world pos offset 來實現。切記物體雖然動了 ,但是它的原點也就是世界位置時不變的,系統是不知道它動了

 

7、光柵化 和 gbuffer  ,儘量不要用密集排列細長的三角形,會有過度繪製的問題,影響性能

8、pixshader

9、光照和陰影

10、 反射

11、半透明和霧

12、後期處理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章