【知乎】如何評價華為Mate60 Pro玩原神出現(xiàn)貼圖錯誤?
如何評價華為Mate60 Pro玩原神出現(xiàn)貼圖錯誤?

Coresi7
騰訊光子工作室 游戲圖形開發(fā)
琴梨梨OvO
?等?3,570 人贊同了該回答
就證明他們的CPU和GPU主要是GPU真的是自己自研的,游戲廠商需要時間給它做適配。
不說CPU,就說商用版本的GPU,很多GPU以及對應(yīng)的驅(qū)動程序都會為游戲引擎做出來很多妥協(xié),trick和小修小改,這些東西累積的多了,就會變成它們自己的壁壘。
比如說,pow(a, b)這個函數(shù),假如因為shader運算有問題,傳入A的值是負值,則GPU運算結(jié)果是不可預(yù)知的,那應(yīng)該GPU運算結(jié)果是NaN呢還是0呢?前者的話,與NaN進行的任何運算輸出結(jié)果都是NaN,輸出到屏幕會變黑,效果不對;后者,計算結(jié)果看起來是沒問題的。
我們做渲染,絕大多數(shù)情況都是“看起來沒問題”的,為了“看起來沒問題”但是可以取得最佳性能,每一個和大家見面的游戲都做了數(shù)不勝數(shù)的優(yōu)化,甚至是奇淫技巧的優(yōu)化,以盡可能使得發(fā)出去的游戲,發(fā)熱降低,幀率穩(wěn)定,節(jié)省性能空間來開啟更高更好的效果。這種事情多了,肯定會多多少少寫出來這種bug的。
同樣的道理,除以0,與模為0的向量進行叉積,在俯視角為0的情況下進行投影矩陣運算,用0去做正切(tan)運算,一個特別大的數(shù)和一個特別小的數(shù)進行浮點數(shù)運算但是給的浮點數(shù)精度不夠…………這種計算結(jié)果在數(shù)學(xué)上沒有意義的問題實在是太多了。當(dāng)然,為了杜絕這種問題,我們可以每一次都去約束輸入和輸出值,對每一個計算的輸入和輸出進行檢查等手段來解決,但是這種約束也好,檢查也罷,都是要消耗額外的性能的。結(jié)果就是發(fā)熱卡頓降幀等大家所不希望看見的結(jié)果。
這個算是游戲bug,但如果游戲體量太大,或者游戲側(cè)因為技術(shù)原因無法來得及盡快更新解決,那么手機廠商自己也會在驅(qū)動層嘗試應(yīng)用一些方法去修復(fù)。比如說,現(xiàn)在大多數(shù)手機,pow(a, b)在a的值為負值的時候,輸出值就是0。某些老款型號才會輸出NaN。故絕大多數(shù)情況下,我們不需要再為這個a額外做一個abs或者clamp之類的運算來約束了??雌饋韮?yōu)化并不大,但是假如這種運算是給若干覆蓋屏幕面積特別大的半透明面片逐像素運算的,故每秒可以發(fā)生上百萬甚至上千萬次呢?這性能不就省出來了非常多了不是。
也就是因為華為一切都是自己研發(fā)的,這類經(jīng)驗和坑積累的少,踩得少,才需要逐個積累經(jīng)驗適配。
另外,這款機型本來和我們打招呼是晚一些才會發(fā)布的,結(jié)果發(fā)布的時間比預(yù)期早了億點點,所以運行我們的游戲也會有點小問題。雖然我們緊急制作了個補丁,但估計得稍晚些才能和大家見面。確實也打了我們一個措手不及。作為游戲開發(fā)者,也希望這種真國產(chǎn)自研的產(chǎn)品多多和大家見面,不然如果有朝一日美國等西方國家極限卡脖子,造成我們沒有了游戲賴以生存的硬件環(huán)境,那我們能吃什么喝什么呢。
最最后:
估計華為廠商為適配這些大大小小的問題會給這個手機頻繁發(fā)更新,如果更新的話,希望大家能及時接收。人是活的,問題總會解決的,稍安勿躁。
編輯于 2023-08-30 15:18