動態合批與靜態合批的網格記憶體佔用

UWATech發表於2024-06-25

1)動態合批與靜態合批的網格記憶體佔用
2)如何讓遊戲能自動調起手機內建的“遊戲空間”或“遊戲助手”
3)如何控制mesh.triangles值
4)怎麼讓舊的粒子原地不動


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

UWA社群主頁:community.uwa4d.com
UWA QQ群:793972859

Memory

Q:關於動態合批與靜態合批,有以下2個疑問:

1. 靜態合批後生成一個大網格,那麼原始網格還在記憶體中嗎?是不是編譯階段就已經完成合批,只有一個大網格會常駐記憶體,原始小網格已經沒有了。

2. 動態合批每幀生成可能不同的大網格,生成的網格傳送給視訊記憶體後,是不是就自動釋放掉了,記憶體中只有原始的網格資料呢?

A:前者記憶體中僅有合了以後的Combined Mesh記憶體;後者則記憶體中只有原始的網格記憶體。

感謝Faust@UWA問答社群提供了回答


Platform

Q:如何讓遊戲能自動調起手機內建的“遊戲空間”或“遊戲助手”,比如華為的系統(針對沒上對應手機應用商店的遊戲,比如測試期間或官網下載的包,上了對應手機的應用市場的包是能自動呼叫的)。這樣系統可以傾斜更多的效能跑遊戲,玩家體驗也會好些。

針對以上問題,有經驗的朋友歡迎轉至社群交流分享:
https://answer.uwa4d.com/question/666e740b3d306f3e9d594c74


Rendering

Q:請教個問題,mesh.triangles超過了65535,怎麼處理呢?

動態合批與靜態合批的網格記憶體佔用

A:Mesh可以設定Format,IndexFormat設定成32位,不過還是建議拆。

感謝貓頭鷹@UWA問答社群提供了回答


Rendering

Q:我這個粒子系統是Local的,當我移動或者旋轉父物體時候,舊的粒子會時刻跟著父物體移動,怎麼能讓舊的粒子原地不動呢?

動態合批與靜態合批的網格記憶體佔用

我有個工件需要焊接一下,我現在用的粒子特效表現的焊接效果如下:

動態合批與靜態合批的網格記憶體佔用

但是焊接完這一塊後我這個工件要旋轉180度,現在這個焊接的粒子特效不能跟著一塊旋轉。

我用World模式就可以完成這一段,但是不能旋轉,當我改用Local,新的粒子和舊的粒子都會跟著發射口走,但不能留下焊接的痕跡。

如何在工件旋轉後,被焊接的痕跡也跟著一起移動呢?

A1:掛一個指令碼在OnEnable裡,記錄下自己的Position,再在LateUpate裡設定自己的Position為初始化那個位置,這樣就保留世界座標了。

感謝偶爾不帥@UWA問答社群提供了回答

A2:如圖,把工件的transform放這裡。

動態合批與靜態合批的網格記憶體佔用

感謝jump晃悠@UWA問答社群提供了回答

封面圖來源於網路


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

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

相關文章