博客 / 詳情

返回

如何知道遊戲中不同型號GPU帶寬的瓶頸

1)如何知道遊戲中不同型號GPU帶寬的瓶頸
​2)​Unity如何避免文字單字成行
3)如何檢測部分安卓機型是否支持GPU Instance
4)如何篩選重複動畫


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

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

Performance

Q:遊戲中的帶寬可以用各種工具獲取,但如何知道不同型號GPU的帶寬瓶頸是多少呢?

當帶寬到達多少時,會出現發熱和降頻的情況?這個可以通過計算得出嗎?還是隻能是一個經驗數值?

A:CPU、 GPU或Bandwidth等都可能發熱。<br/>
優化這些就只能是預留幀率,比如預留35%的性能,供散熱Idle。比方説,目標幀率為30,那你可能至少要能渲染到40幀,這樣差不多能保證30幀的效果。

感謝makebalance@foxmail.com@UWA問答社區提供了回答

Script

Q:請問在Unity中,如何避免文字單字成行?在手遊審核中,不能單字成行。

比如下面這個:
“文字換
行。”

這個“行”,是不允許出現的。請問有什麼可行方案嗎?

A1:寫個小工具,全局掃描遊戲內文本,根據換行符分割,然後去掉標點符號,一個字的把來源和內容都篩出來,導一份日誌提單給策劃。審核需要那就必須改了。

感謝你相信光嗎@UWA問答社區提供了回答

A2:或者從源頭上調整,直接讓策劃控制字數。

感謝NG週@UWA問答社區提供了回答

Platform

Q:我遊戲內部分資源使用了插件GPU Instancer(對GPU Instance的封裝、剔除部分用的ComputerShader)。

在大部分手機上效果都是Ok的,但是有一些玩家反應説,他們的設備上顯示不出來。

我就特意加了Log,並用SystemInfo.supportsInstancing做了一下判斷,發現返回結果是True,輸出的是:
SystemInfo.graphicsDeviceName = Adreno(TM) 650
SystemInfo.graphicsDeviceType = Vulkan

並且我問了一下,其中一個玩家的設備用的是聯想Y700,還有一個是一加的9R,這些都是符合GPU Instance要求的。安卓版本也足夠高,一個是11,一個是13。

理論上只要是滿足ES3.1的機型都應該支持,主要是我現在不知道用什麼判斷當前機型是否支持,且“SystemInfo.supportsInstancing”這個判斷不出來。

請問有同學有相關的經驗麼? 就是為什麼有些設備無法使用GPU Instance?或者用什麼辦法可以判斷出來這些呢?

A:也有可能是機型不支持Compute Shader。可以分別做Demo,找一些雲真機測試一下。

感謝makebalance@foxmail.com@UWA問答社區提供了回答

Resource

Q:現有重複動畫篩選的需求背景,即clipA和clipB重複,美術當時做了一份然後拷貝複製重命名了,怎麼把這兩個識別出來?

我的想法:反序列化解析通過Curve的Keyframe信息對比,但是有些動畫有好幾MB,數據信息量多,請問有更好的辦法麼?

A:建議使用MD5對比。

感謝野生西瓜@UWA問答社區提供了回答

封面圖來源於網絡


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

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

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.