可能是最近也可能是之前,許久沒進行測試。
在Physbones限制256組件後官方總是不提及太多關於物理骨骼的改變。
隨著最近發現自己視角測量的frametime的一些變化
發現有以下特性變化:
物理骨骼(PB)與蒙皮網格變換分離了,這使得物理骨骼本身再多也不影響額外的GPU開銷等。
這使得自身視角的物理骨骼開銷低得多,目前物理骨骼與他人視角的開銷是一樣的...
但是新的問題來了:
自身視角的蒙皮網格和網格始終是運作的,大約24個蒙皮網格會對自身產生(5600X 標準4.65Ghz)1ms~1.1ms的CPU開銷及多餘的多邊形開銷(必然可見且一定完全看到)
這促使在擁有更多光源/陰影或一些處理的地方,會大大加劇多邊形開銷(對像素影響很低或沒?)從而導致自身的GPU負荷,但對於他人視角來說看不到即是零。
而且同時也會增加自身的CPU開銷甚至達1.5ms到2ms左右的自身耗時。(網格則比蒙皮網格便宜數倍,但不建議擁有數倍於蒙皮網格的網格,因為網格數量會導致『超級嚴重』的frametime波動,嚴重影響自己體驗)
所以蒙皮網格和網格盡可能合併,或是不需要活動(即使自己看不到)也要保持關閉從而讓自身開銷降低。
現在物理骨骼自身和他人視角相等且都很低。
這些特性無法在編輯器中直接測量出來,只能在遊戲中實際獲取數據。
________
小知識,可以藉由前端部份的頻率和前端的數量計算多邊形性能,一般來說使用頂點著色器著色普通網格和蒙皮網格,效率僅5%~20%,且越少多邊形效率越低(呈現平方關係),並存在更多瓶頸(前端獲取數據瓶頸,導致頂點著色器效率極低下)。
實際效率通常低於10%,理論上一個5GPC(或換成AMD的SE)擁有最大每週期5個三角形吞吐,以2.5Ghz運作時大概擁有12.5GT/s(125億三角形性能每秒)
(這裡不講複雜的極限效率如何到達和許多瓶頸限制)
實際上只能跑到約1.25GT/s(12.5億),並且多邊形不能和像素後端一起並行,這意味著一幀的時間僅只能有限完成多邊形負荷後跑像素負荷。
如果你希望頂點著色器負荷在50%左右耗時,則實際上一秒內僅只能擁有6.25億三角形,剩下給像素著色器工作。(一個25萬活動三角形->Unity優化後至50萬->背面剔除25萬->陰影(提升到50~75萬)
以此計算50萬在有陰影情況下(多光源多陰影更貴不納入計算)->30個avatar約1500萬,所以只能跑41.67fps。
像素著色器大致上填充率效率通常有50%以上,分辨率越高直到帶寬/光柵化/寄存器/緩存瓶頸為止。(每個分辨率的像素根據不同情況在2D約5次像素 以50%計至少10填充率 live2d約15~20次像素(40填充率) 3D toon目前水準約40~60次像素(80~120像素)3A更高(以TMU/ROP計)
_____
可以自己估計一下對於自己GPU開銷有多大
在Physbones限制256組件後官方總是不提及太多關於物理骨骼的改變。
隨著最近發現自己視角測量的frametime的一些變化
發現有以下特性變化:
物理骨骼(PB)與蒙皮網格變換分離了,這使得物理骨骼本身再多也不影響額外的GPU開銷等。
這使得自身視角的物理骨骼開銷低得多,目前物理骨骼與他人視角的開銷是一樣的...
但是新的問題來了:
自身視角的蒙皮網格和網格始終是運作的,大約24個蒙皮網格會對自身產生(5600X 標準4.65Ghz)1ms~1.1ms的CPU開銷及多餘的多邊形開銷(必然可見且一定完全看到)
這促使在擁有更多光源/陰影或一些處理的地方,會大大加劇多邊形開銷(對像素影響很低或沒?)從而導致自身的GPU負荷,但對於他人視角來說看不到即是零。
而且同時也會增加自身的CPU開銷甚至達1.5ms到2ms左右的自身耗時。(網格則比蒙皮網格便宜數倍,但不建議擁有數倍於蒙皮網格的網格,因為網格數量會導致『超級嚴重』的frametime波動,嚴重影響自己體驗)
所以蒙皮網格和網格盡可能合併,或是不需要活動(即使自己看不到)也要保持關閉從而讓自身開銷降低。
現在物理骨骼自身和他人視角相等且都很低。
這些特性無法在編輯器中直接測量出來,只能在遊戲中實際獲取數據。
________
小知識,可以藉由前端部份的頻率和前端的數量計算多邊形性能,一般來說使用頂點著色器著色普通網格和蒙皮網格,效率僅5%~20%,且越少多邊形效率越低(呈現平方關係),並存在更多瓶頸(前端獲取數據瓶頸,導致頂點著色器效率極低下)。
實際效率通常低於10%,理論上一個5GPC(或換成AMD的SE)擁有最大每週期5個三角形吞吐,以2.5Ghz運作時大概擁有12.5GT/s(125億三角形性能每秒)
(這裡不講複雜的極限效率如何到達和許多瓶頸限制)
實際上只能跑到約1.25GT/s(12.5億),並且多邊形不能和像素後端一起並行,這意味著一幀的時間僅只能有限完成多邊形負荷後跑像素負荷。
如果你希望頂點著色器負荷在50%左右耗時,則實際上一秒內僅只能擁有6.25億三角形,剩下給像素著色器工作。(一個25萬活動三角形->Unity優化後至50萬->背面剔除25萬->陰影(提升到50~75萬)
以此計算50萬在有陰影情況下(多光源多陰影更貴不納入計算)->30個avatar約1500萬,所以只能跑41.67fps。
像素著色器大致上填充率效率通常有50%以上,分辨率越高直到帶寬/光柵化/寄存器/緩存瓶頸為止。(每個分辨率的像素根據不同情況在2D約5次像素 以50%計至少10填充率 live2d約15~20次像素(40填充率) 3D toon目前水準約40~60次像素(80~120像素)3A更高(以TMU/ROP計)
_____
可以自己估計一下對於自己GPU開銷有多大