PS2和PS3都有向量處理器,為什麼沒有遊戲引擎(或公司)能把針對PS2的向量優化技術移植到PS3上?

索尼PS2和PS3遊戲機,都是主CPU+向量處理器+圖形硬體的方式,只不過PS2的EE只有2個向量處理器,而PS3的Cell有4個。

為什麼沒有遊戲公司(或遊戲引擎)能將PS2時代的向量優化的成果(比如成熟的針對遊戲開發的向量演算法庫),移植到PS3中?

從而導致了,直到PS3生命周期的後期,很多遊戲公司才熟悉PS3的向量加速優化技術,從而在PS3生命周期的後期才發揮出PS3的全部機能。


這個問題還得找當時在索尼第一方工作室做過PS2和PS3遊戲開發的人說。我只能從架構上來嘗試解釋這問題。


PS2和PS3的向量處理器是做什麼用的?

PS2的圖形加速硬體是不可編程的,即固定功能管線。而PS2的獨立向量處理器(即,VU1,非VU0)主要被用作TnL計算,如頂點空間坐標系變換,等,類似GPU中的Vertex Shader。即,對大多數遊戲來說,PS2的這個向量處理器的算力太弱,只夠支持基本的頂點運算的。

而PS3的圖形加速硬體是一個完成的nVIDIA GPU,這GPU是可編程的,Vertex Shader的功能完全不需要PS3 的向量處理器(SPE0~SPE3)代勞。而PS3的向量處理器主要負責非TnL運算,如物理效果的驗算、利用包圍盒原理計算各種碰撞檢測、利用高度圖紋理計算曲面細分等等。

所以,我認為,主要是PS2時代向量處理器的算力不夠充足,導致了開發者無法用他的算力完成頂點變換以外工作。進而到了PS3時代,當主機第一次有充足的向量算力後,大家才著手開發對應的向量運算庫。所以,這也就導致了PS2時代,遊戲廠商並沒有積累太多的向量優化技術,到了PS3時代還是重新研發適配向量技術的原因。


PS2 上面的向量處理器,就一定不能以用於物理驗算等計算么?

另外,也許會有人問,PS2 VU0就不能以用於物理驗算等計算么?不見得,我認為其可以做物理運算,PS2的向量處理器有CPU回讀功能,其VU0和VU1可以所任何計算,但,我認為,除非索尼第一方工作室可以做到如此NB的優化,不然只能達到上文水平。即PS2的獨立向量處理器只做頂點空間坐標系的變換,即傳統GPU上Vertex Shader的功能(此為推測,還要索尼第一方工作室的遊戲開發者來實錘)


推薦閱讀:

TAG:遊戲開發 | 遊戲引擎 | 家用遊戲機 | PlayStation3 | 向量處理器SIMD指令集 |