Stories

Detail Return Return

為什麼使用發射Mesh的粒子系統會使Graphics內存暴漲 - Stories Detail

1)為什麼使用發射Mesh的粒子系統會使Graphics內存暴漲
2)SLG類型遊戲需要做動態幀率機制嗎
3)Use Sprite Mesh這個功能有什麼副作用嗎
4)為什麼不用的TMP字體也會被加載入內存


這是第436篇UWA技術知識分享的推送,精選了UWA社區的熱門話題,涵蓋了UWA問答、社區帖子等技術知識點,助力大家更全面地掌握和學習。

UWA社區主頁:community.uwa4d.com
UWA QQ羣:793972859

Memory

Q:之前在UWA的分享裏看到使用發射Mesh的粒子系統就會導致Memory Profiler-Graphics-<no name>內存類型暴漲問題。我們項目美術同學也想用這種粒子,所以得評估一下這個問題(Unity 2022.3.27)。

A:自問自答一下,實際測下來好多開關和方法都沒什麼用,限制這部分內存的只有發射Mesh的粒子系統組件數量、發射粒子的數量(通過Max Particle限制)和發射的Mesh的面數。

這麼一看要麼把這些因素控制到很低、要麼還是索性不要用了,因為上漲的內存比Particle數量乘以每個Mesh的內存還要大一些,太容易一下就佔好幾十MB了。

另外要卸載這些內存還沒法通過定向接口來做,非得調用RUUA。總之目前是不大敢用了,看後續有沒有修掉這個bug的Unity版本了。

針對以上問題,有經驗的朋友歡迎轉至社區交流:
https://answer.uwa4d.com/question/6858e8713d306f3e9d594eff


Editor

Q:請問做動態幀率的遊戲多嗎?像是SLG類型的遊戲有沒有必要?

A:這個問題比較大,是不是做動態幀率還是要看實際需求。高幀率一方面是為了提升表現、增加玩家粘性,但一方面也使得功率能耗大幅上升,且CPU、GPU每幀耗時開銷面對更大挑戰。所以,很多項目動態幀率機制作用於兩種情況:在一些畫面變化慢、對幀率不敏感的場景用低幀,反之用高幀率;還就是檢測到硬件温度很高,主動降低幀率來降低發熱。SLG遊戲中可能絕大多數升級建造培養規劃玩法都不算特別需要高幀的場景,但一些探索戰鬥過場之類的則可以考慮高幀。

針對以上問題,有經驗的朋友歡迎轉至社區交流:
https://answer.uwa4d.com/question/6858e71f682c7e5cd61bfab1


UI

Q:今天注意到這個開關,把項目大廳主界面所有Image組件都勾上以後,Overdraw降低了一些。這個功能靠譜嗎,會不會有什麼副作用?

A:效果上應該是以增加一些頂點為代價,自動把透明部分的Overdraw裁掉了。

副作用層面,由於頂點增加,動態的Image可能還有額外的UI元素更新耗時的副作用(每幀要計算的產生變化的UI Vertec數量更多了);反之靜態的Image理論上沒什麼副作用。然後UI這邊頂點數量的上升幅度不至於對GPU頂點計算那邊產生額外開銷。

舉例來説,一些非常常見的中空背景圖這種Overdraw較大的UI元素,基本是靜態的UI組件,開啓該設置就能達到優化效果,就沒必要讓美術主動去把紋理扣成中空的了;而其他的一些HUD、角色卡片上的有透明區域的UI則要慎用。

具體還是建議結合項目實際情況對比測試看下。

針對以上問題,有經驗的朋友歡迎轉至社區交流:
https://answer.uwa4d.com/question/6859207a682c7e5cd61bfab4


Memory

Q:我在排查TMP字體在內存中存在多份問題時遇到了些疑問。經測試,只要我們這邊生成了AssetBundle包,使用AssetBundle模式加載,就算加載的是一個空場景,內存中也會把TMP字體加載進入內存。

關於這個問題我沒有找到解決方法,後續我們在加載預製體的時候,若上面帶有TMP,內存中就會多一份字體、導致冗餘。請問這要如何解決呢?

A:你多出的字體具體是什麼?

一般有幾種情況:

  1. 可以先看看下圖這裏的引擎設置,會引入一個全局且單獨加載的後備字體:
  2. 確認首場景是否確實沒有任何TMP組件引用了該字體。
  3. 確認一開始加載的一些ScriptObject配置信息有沒有引用該字體。

這種字體圖集或Shader的冗餘還是比較常見的,最好的方法還是真機查看Memory Profiler,直接查這個對象的引用鏈信息。

針對以上問題,有經驗的朋友歡迎轉至社區交流:
https://answer.uwa4d.com/question/684fba3b3d306f3e9d594ef9

封面圖來源於網絡


今天的分享就到這裏。生有涯而知無涯,在漫漫的開發週期中,我們遇到的問題只是冰山一角,UWA社區願伴你同行,一起探索分享。歡迎更多的開發者加入UWA社區。

UWA官網:www.uwa4d.com
UWA社區:community.uwa4d.com
UWA學堂:edu.uwa4d.com
官方技術QQ羣:793972859

user avatar kangkaidesuancaiyu Avatar flappycat Avatar apicloud Avatar code4world Avatar
Favorites 4 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.