小屋創作

日誌2024-07-12 07:12

坑爹的各向異性紋理過濾性能問題(??)

作者:垂暮龍-青月(動物朋友

一大早看到VRchat Dev update開始想吐槽這東西怎感覺不如自動改資產到各項異性紋理過濾到16x貢獻更大。

然後無聊把自己還製作的半成品打開來試驗一下,發現...坑爹了難怪一直測量計算紋理採樣性能怎樣都很難準確對上。

關閉各向異性和開啟各向異性過濾到16x性能在同個場景不同地方影響25~50%額外耗時...

而剛好做偏向風格化的Shader,這下子本身就很偏向紋理單元瓶頸了,而解析度一般都較高,人物不會太多不會影響幾何耗時過多,總是因此導致像素Shader瓶頸,而紋理單元總是瓶頸而影響巨大。

導致問題的原因在於驅動本身可能會覆蓋部分設置導致繪製做處理紋理相關的時候在採樣過濾被改善,其次最大原因在於目前現代的GPU架構是『自適應』式的。

實際上並沒有在紋理單元內部提供足夠大的buffer和固定內置很多的計算單元,足以輕鬆大量處理N個採樣點,而是自適應根據一定需求降低採樣級別(實際PC硬體只有2x、4x、8x、16x加速)。

也沒什麼方便好查的spec和profile會提醒這問題一直沒注意過。

你遊戲中設置為16x其實意思是最大16x而不是真的一直執行16x...

這一定程度上會導致紋理單元採樣週期增加,如果你剛好紋理單元瓶頸就會導致顯著減慢。

其次有mipmap等,再加上Shader存取模式才導致對VRAM存取的頻寬影響小得多,總是紋理單元瓶頸。

只能說測試還是太少,沒把各種可能考慮進去,強制開啟至16x(150fps)和關閉(210fps)

各向異性相當於執行了三線性在不同方向,Unity基本上專案設置『強制』時就是8x的意思(9~16x 但硬體實際上只有2x 4x 8x 16x,因為不是設置為16x所以實際為8x)

還想說可以吐槽一下行動GPU的填充率週期延長問題(手冊上寫了),但沒仔細考慮過PC是怎實現也很少詳細給,只是能說好一些

在手機上比方說你fp16格式下紋理採樣單元週期是1,fp32是2,再堆個三線性上去會變成4,吞吐就大幅下降了,尤其手機遊戲大多數偏向風格化導向設計,讓玩家注意力多在相對顯眼飽和度較高的地方,準確計算材質和製造許多高級效果好像不是那麼必要就是了。

爛手機舊架構你API給你8x 16x實際上只跑2x...沒做的硬體就不考慮能實際執行了!

PC上一般就是fp32的計算座標的處理的就是...

基本上雙線性吞吐週期就是1,到三線性估計也是1,各向異性往上多少都會導致需要更多紋理單元採樣的週期...

還以為是免費的 坑爹啊 然後由於現代基本上內置mipmap所以紋理駐留紋理cache影響性能只有1%左右甚至更低不miss,但是如果你是需要動態生成mipmap例如深度判斷剔除等需求,例如草剔除就很可能需要更進階的API標準和硬體加速改善了。

不過CS異步動態處理mipmap還是挺行的就是。

然後另外VRchat上,專案的總設定是無效的,所以無法靠專案設定覆寫所有紋理走各向異性,必須手動將需要的紋理進行調整才能產生效果。(無論avatar或world)

(現在版本有強制複寫AL9實際是AF8x AF需大於等於1還有一些條件要允許能開AF的紋理...)

另外可能是硬體實現問題,採樣量增長還會提高利用率,所以才導致實際只額外25~50%,實際影響更大。

______

VRchat官方人員說已經強制套用16x了????? 到底是我業障重到平行宇宙還是遊戲出現靈異事件了?
_____

問題出在Unity引擎的實現...  甚至可能裡面有許多坑 甚至許多遊戲引擎恐怕存在問題...

_________

Unity覆寫紋理各向異性會存在一點問題,實際上預設(VRchat也採預設)強制是設定為9,實際硬體工作為8x(只能處理2x 4x 8x 16x)

當數值為1~9之間設為9

正常情況下覆寫效果與性能測試應當是一致與驅動測試覆蓋8x相等,但是關閉(各向異性)或按每紋理甚至強制使用性能會相等...

只有使用驅動覆蓋關閉才能真關閉,奇怪的是即使在關閉各向異性下性能也與強制使用或手動設置至8x相等,跟驅動情形不一樣,但紋理是真的模糊了然後也沒拿到性能...

可能是Unity的神奇吧?

不過VRchat專案測試與關閉和2x相等與大致相等,強制開8x或16x(驅動)會更慢,但VRchat確實按照Untiy API進行設定那正常應該跑8x沒錯...?

但VRchat官方人員說已經強制16x,但你自己家的文檔寫使用Unity API的預設那應該是9(實質為8x)...??

但遊戲中仍存在異常的模糊和摩爾紋等現象(不過部份可以靠反鋸齒解決,但能靠反鋸齒解決代表跟紋理過濾屬於不同類型就是了)


2

0

LINE 分享

相關創作

【關於vrchat那檔子事】vrchat玩就來就像:

もえちゃん

【Unity】場景時間縮放(TimeScale)控制器

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】