因為一些原因,所以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的平台下開發了。
FastScene
9 個月前
沒有留言:
張貼留言