這是第412篇UWA技術知識分享的推送,精選了UWA社區的熱門話題,涵蓋了UWA問答、社區帖子等技術知識點,助力大家更全面地掌握和學習。
UWA社區主頁:community.uwa4d.com
本期目錄:
- 為什么Unity里的變體數和UWA工具測出來的不一樣
- 使用TextureArray為什么會導致L1 Cache Miss率變高
- Gfx.PresentFrame耗時異常高
- AO方案中哪個更適合移動端
Shader
Q:為什么Unity里的變體數和UWA工具測出來的變體數不一樣呢?
A:shader_feature在編輯器中預覽只會保留第一個關鍵字的變體,所以會少顯示很多;但實際進入包體的是UWA AssetBundle工具顯示的量。
順便一提,通過變體收集的方式可以讓引擎在打包的時候自動去掉一部分shader_feature關鍵字導致的變體組合,節省部分內存。
該回答由UWA提供,歡迎大家轉至社區交流:
https://answer.uwa4d.com/question/674d1de4682c7e5cd61bf9b3
GPU
Q:做地形的時候用的ID圖的方案,將所有的地表貼圖做成了TextureArray,Xcode測試性能。發現TextureArray導致Texture L1緩存的Cache Miss率高達77%,且不用就不高了,設備是iPad Air 5。
請問是相鄰像素的TextureArray的ID不同導致Cache Miss嗎?
針對以上問題,有經驗的朋友歡迎轉至社區交流:
https://answer.uwa4d.com/question/674d2240682c7e5cd61bf9b6
Rendering
Q:部分安卓機型上,某個東西顯示出來的時候,Gfx.PresentFrame耗時非常高。
以下是真機測試、多線程渲染下的截圖:
目前還沒找到根本原因,但實驗發現:
1. 掛掉出問題的Shader的Clip函數,就不會有問題。
2. 刪掉工程內的變體收集器,也不會有問題(新版本和老版本相關的區別就是新收集了一波變體,然后打進了Bundle里)。
目前解決方案就是把變體收集器刪了,因為現在就沒做Shader預熱,所以收集器其實沒用到。
請問其本質原因是什么?
針對以上問題,有經驗的朋友歡迎轉至社區交流:
https://answer.uwa4d.com/question/674ab5a93d306f3e9d594db6
Rendering
Q:請問以下AO方案中,哪些適合移動端呢?
SSAO、SSDO、HBAO+、GTAO、MXAO、LSAO、VXAO、DeepAO、以及上一年Meta的PSAO。
A:一般動態物體就是烘培AO,也就是單個物體有,靜態物體就是LightmapAO也是烘培的,移動端從性能考慮大多還是走烘焙。
只有那些大世界的場景實在是太大才會想各種辦法去設計一個GI效果,比如SSAO去湊整個環境的AO效果。
感謝南瓜@UWA問答社區提供了回答,歡迎大家轉至社區交流:
https://answer.uwa4d.com/question/674d1ff2682c7e5cd61bf9b4
封面圖來源于網絡
今天的分享就到這里。生有涯而知無涯,在漫漫的開發周期中,我們遇到的問題只是冰山一角,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.