2009年2月27日 星期五

對SSAO的優化方式和一些感嘆

因為一些原因,所以scene manage暫時不能去動,

其實這一塊還有進步空間。

現在只能以我的部分去試著作一些最佳化。

今天把水底下的任何物件不去作SSAO的運算,

這樣做有好處是:

1.減少pixel的大量運算。
2.在視覺上有正確性的幫助。

第一點的意思比較直覺,因為能夠減少SSAO的運算當然是最好的,

這也是當初用1/2的frame buffer的原因。

第二點要說明一下了,我看過很多的SSAO demo,

就是少了水底下的物件要怎去呈現!

唯一在unreal 3 的demo中,就有看到了。

它還是水底下中有運算到SSAO,但是這作的話,反射的效果會很不明顯。

而且如果沒有反射和折射的效果的話,只是單純的noraml map去抖動,

那水面下會看到SSAO運算到的物件,簡單說:可能會看到黑邊。

所以第二點就是把水底下的物件不去運算SSAO。

其實當我在優化時候,突然想到還有一種優化方式,

不過現在還在實作中,可行性滿高的。

以上的優化方式只是針對GPU的瓶頸去處理的,

CPU的瓶頸還是要去修改scene manage的演算法。

最後,個人一些感嘆:

我看過一些台灣人作出一些高技術的demo,

但是在產品往往看不到此技術。

其實我覺得作出來demo跟商品化還是有一段距離,

尤其是高技術層面的,因為除了還要跟美術去磨合之外,

還有一些問題要去處理,尤其是效能上的。

就好像做出SSAO,但是放上去只剩下幾張fps在動,

我想這根本無法商品化。還有,就是玩家的顯示卡!

這點是很頭痛的,一個game engine,為了考量大量市場,

所以把技術層面降低再降低(聽說仙X Online是這樣?!)。

再掌握高技術同時,也要考慮到底下的人,

如果底下的人想要看此遊戲的完整畫面,只能乖乖去升級,

順便幫Nvidia和AMD賺錢XD。

不過要切記的是,技術愈來愈高並不是單純看高質量的遊戲畫面

它背面還有針對效能上的提升,所以才有高質量的遊戲畫面誕生。

不講GPU和CPU,光是DX9和DX10之間,我就覺得差滿多的。

所以再過幾年,國人還是在遊走DX9的fixed pipeline的同時,

別人早在DX10或DX11的平台下開發了。

沒有留言:

張貼留言