Unity 優化 渲染優化

2021-08-10 12:11:52 字數 1056 閱讀 5124

渲染優化主要是減少gpu的壓力。

1、透明效果

overdraw就是過度繪製,是指在一幀的時間內(16.67ms)畫素被繪製了多次,理論上乙個畫素每次只繪製一次是最優的,但是由於重疊的布局導致一些畫素會被多次繪製,而每次繪製都會對應到cpu的一組繪圖命令和gpu的一些操作,當這個操作耗時超過16.67ms時,就會出現掉幀現象,也就是我們所說的卡頓,所以對重疊不可見元素的重複繪製會產生額外的開銷,需要儘量減少overdraw的發生。

當進行大量的半透明 fragment 渲染的時候就會產生大量的 overdraw。究其原因,就是當渲染不透明 fragment 的時候,可以根據深度緩衝中的資料將不必要的 fragment 剔除掉,即使深度檢測通過了,也只需要直接寫入顏色資料即可。而渲染半透明 fragment 時,無法通過深度緩衝剔除,而且需要讀取已有的顏色,使其與新的顏色進行混合。

2、光照

使用光照貼圖避免實時光照。

3、mipmap

ui(沒有距離變化的ui)關閉mipmap,人物模型存在移動的可以適當使用mipmap。

4、後期處理

比如像高斯模糊,徑向模糊之類的這些後期渲染效果,就不要在手遊上使用啦,因為幀率掉得太厲害,卡爆了。

5、shader

①使用fixed。

②減少判斷邏輯結構,if。

③計算量較大的盡量放在頂點函式而不是片元函式。

④shader一般打成乙個assetbundle,遊戲一啟動就載入。

⑤少用類似fog/alpha test/alpha blending。

⑥使用頂點和片段著色器,而不使用表面著色器。

6、頂點數+三角面數

①減少面數。

②關閉不用的多餘相機,減少渲染。

③lod,可以簡單了解******lod這個外掛程式,當模型較遠的時候,就能減少面數,與mipmap類似。

7、ui

ui一直是大頭。

ui動靜分離,避免頻繁的重建mesh。

hud實現:計算螢幕中角色在螢幕中的位置,根據螢幕中的位置來計算各自hud的位置,並根據hud的數量分別放置在乙個或幾個panel/canvas下。

Unity優化 Unity優化技巧高階開篇

所謂的優化,目的應該是盡可能減弱某種消耗,而在unity上來說,大概可以分為以下幾種 程式的執行速度,一般是指執行幀率,也包括載入速度。是我們首要考慮的重點,也是將會花最多的精力去 的話題,執行幀率是遊戲類專案的乙個非常重要的效能指標,幀率的下降將直接導致遊戲體驗的下降。程式的資源消耗,一般是指包體...

渲染優化 lock unlock

昨天參加了公司組織的nvdia的培訓,講了一些關於d3d的優化和可能的瓶頸所在,具體的條目就不說了,這裡說一些關於資源的lock和unlock,以及我在gl下的測試。老師講到向draw 這類函式是將其指令放入指令佇列,帶填滿後或者強制重新整理時交給顯示卡去畫,也就是說它並不是即時的,而像對資源的lo...

渲染優化 lock unlock

昨天參加了公司組織的nvdia的培訓,講了一些關於d3d的優化和可能的瓶頸所在,具體的條目就不說了,這裡說一些關於資源的lock和unlock,以及我在gl下的測試。老師講到向draw 這類函式是將其指令放入指令佇列,帶填滿後或者強制重新整理時交給顯示卡去畫,也就是說它並不是即時的,而像對資源的lo...