http://research.scee.net/files/presentations/gdc2009/DeferredLightingandPostProcessingonPS3.ppt
Today the phyreengine can do much more then what we see or think before.
SSAO w 2SPUs > 160fps
Defferred Rendering
3 shadow cast light, 100 point light 2xMSAA 720P > 60fps w 3SPUs work
No MSAA 2 SPUs, it seems so amazing (maybe) that SPU can help for MSAA.Volumetric lighting w 1SPU > 60fps (downsample shadow map)
SPU差不多解決了geometry performance的問題,現在要回頭投注SPU資源去照顧GPU了….
看來不錯,
Phyre算是為了PS3這種獨特架構設計的引擎.
花了很多心力在解決效能瓶頸(RSX)
雖然SPU沒有TEX和Rop與大量texture memory.
也受限於LS不適合任意的繪圖讀寫……
無法取代GPU的Fragment pipeline.
但這次把PostEffect部份獨立出來,
用GPU算完的Frame Data,交給SPU做PostEffect.
這已經和3D Rendering沒有關係了,
純粹是對那個1280X720的Pixel Buffer做數值運算.
PostEffect沒有任意的繪圖讀寫,很適合256KB LS.
所以SPU可能有不錯的效率.
PostEffect幾乎不需要VS,所以VS是99.9%閒置的,
C1等US架構,可以把48US全部做PostEffect.
RSX只有24PS,在需要大量PostEffect時相當吃力.
如果佔Rendering time 1/3的Post Effect,
能將大部份工作由SPU來做(雖然無法全部)
可能提升2~3成的Fragment performance.
不過有些潛在的問題.
SPU需要等GPU處理完才能對這frame data做處理.
GPU也要等SPU算完才能完成這個frame.
解決方法是多一個buffer.
GPU算完frame0的data , 移交給SPU做PostEffect
同時GPU去處理下一個frame1.
等frame1處理完,gpu再去抓frame0 SPU算完的資料.
當做最後的畫面.
所以會有1個frame的顯示delay,
不過30+fps時這應該不是大問題.
對計憶體的負擔可能比較麻煩.
因為本來256+256就很吃緊了.
要把VS完全取代又要取代部份PS的工作.
這麼重視繪圖,當初就該用好一個的GPU.
每次看到第一廠用SPU改善RSX的繪圖能力
總是忍不住想到,如果當初直接把SPU的電晶體
用在GPU上,應該不用這麼麻煩.
其實拿一半4SPU 100M電晶體就等於增加16組PS+Tex.
…….靠軟體處理來彌補不平衡的硬體架構,
實在很浪費寶貴的開發成本與開發時間.
其實我不太喜歡Deferred Lighting.
Radiosity Light Mapping也可以處理大量光源.
連陰影都一起ok.
而且效能好很多,算在貼圖上的光,你要多少有多少,
完全不另外吃效能.
雖然只能做靜態,不過幾盞動態光源另外算就好,
大部份遊戲場景光源也都是預先就打好不會即時改變.
不過的確很讓人懷疑當時SONY找不找得到更好的GPU….
尤其是他們當初一開始”先想CELL”,
不過的確很讓人懷疑當時SONY找不找得到更好的GPU….
尤其是他們當初一開始”先想CELL”,