![]()
這是第474篇UWA技術知識分享的推送,精選了UWA社區、UWA AI問答的熱門話題等技術知識點,助力大家更全面地掌握和學習。
UWA社區主頁:community.uwa4d.com
UWA QQ群:793972859
本期目錄:
TMP字體Atlas內存優化實戰
TMP內嵌圖集紋理壓縮改造
本次推送的實戰案例來自于使用UWA服務的項目的真實且典型的問題。在某個項目上經過以下兩個方法優化后,能將字體內存從64MB下降至5MB以內,效果顯著,非常值得其他團隊參考借鑒。
實戰案例
Q:GOT Online報告中顯示,我們項目游戲字體Atlas出現了雙實例冗余且開啟RW動態圖集內存占用過高的情況,是什么原因?該如何優化解決?
![]()
A:字體Atlas實例數量為2,通常是由于該字體既在初始包中的初始場景中被引用,又在后續AssetBundle資源中重復引用,導致有2個對應的Atlas實例。建議將初始場景中使用的字符單獨創建對應的小字體,從而避免初始場景中有大圖集和大字體的引用。
當前字體Atlas是開啟了RW(Read/Write Enabled,開啟此項會導致 CPU 和 GPU 各存一份,內存瞬間翻倍),屬于動態圖集機制,因此單個字體是2×4096×4096/1024/1024=32MB。開啟RW主要為支持動態補字,實時將未預加載字符填充至圖集中,避免游戲出現缺字亂碼。從內存優化的角度上來看,可以預先收集游戲的大部分字符集,將Atlas設置為靜態圖集配置,這樣就可以減少16MB的占用,對于不在靜態圖集中的字符,可以通過TMP的Fallback機制,設定一個小分辨率(比如512×512)的動態Atlas進行字符補充。
實戰案例
Q:TMPAsset內嵌Atlas紋理無法壓縮是什么原因?有什么腳本改造方案?
A:當前字體Atlas紋理屬于TMPAsset內嵌子資源,無法單獨進行紋理壓縮等參數配置。可通過Editor編輯器腳本對該紋理進行獨立復制,將TMPAsset材質球關聯替換為復制后的新紋理,并移除原TMPAsset內的內嵌紋理。
剝離后的獨立紋理可自由配置壓縮格式,如ASTC6×6、ASTC8×8等,進一步降低內存開銷。經真機測試,壓縮后文字美術表現無明顯差異。
Atlas優化前后內存占用對比:
優化前:64MB
優化后合計:4.75MB
初始場景 512×512靜態圖集:0.25MB
4096×4096靜態圖集(ASTC8×8):4MB
Fallback兜底紋理512×512(Alpha8):0.5MB
無論是社區里開發者們的互助討論,還是AI基于知識沉淀的快速反饋,核心都是為了讓每一個技術難題都有解、每一次踩坑都有回響。本期分享分別來自UWA AI問答和UWA問答社區,希望這些從真實開發場景中提煉的經驗,能直接幫你解決當下的技術卡點,也讓你在遇到同類問題時,能更高效地找到破局方向。
封面圖來源于網絡
今天的分享就到這里。生有涯而知無涯,在漫漫的開發周期中,我們遇到的問題只是冰山一角,UWA社區愿伴你同行,一起探索分享。歡迎更多的開發者加入UWA社區。
UWA官網:www.uwa4d.com
UWA社區:community.uwa4d.com
UWA學堂:edu.uwa4d.com
點擊下方名片關注我們,將我設為星標,及時接收小編每日推送哦,性能優化不迷路~
近期精彩回顧
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.