這幾天花一點時間,將DOF的效果放入render piple中,雖然是蠻老舊的技術了,不過有了SM 2.0以及MRT功能後,實做起來程式碼更簡潔了。目前是使用ps將Z值寫入一個FP貼圖中,之後會針對ATI的DST最佳化,而目前的focal range演算法也很陽春,之後會再實做一個更複雜的版本。接下來應該會開始做cube shadow map 或是 per pixel displacement。
目前市面上的3D加速卡,只有ATI的卡是可以支援HDR+AA的,也就是我們的卡支援FP貼圖的MS,所以我的老闆一直要求我們要想辦法說服遊戲開發者來支援HDR+AA。不過ISV通常都在趕進度,除非他們覺得很重要,不然要他們支援特定功能,說破嘴也不一定有效。在DX9要做FSAA主要的麻煩在於第一貼圖並不支援MS,只有Surface支援MS。第二是當你使用MRT時,就無法做FSAA了。第一個問題還好解決,只是要多浪費一塊surface空間,當要將此surface當作貼圖時,再將整塊Surface blt到貼圖上,而且還會損耗一些效率。第二個問題就無解啦,只能放棄MRT了。
因為目前在幫Splinter Cell - Double Agent做support,所以UBI將所有source code都給了我一份,上個禮拜就試著修改他們程式來支援HDR+AA。不過由於程式碼很多,大多又沒註解,也沒人可問,所以花了一段時間track code,昨天終於將HDR+AA的功能大部分完成了,只剩一下一個部分還沒解決,應該下禮拜一二就能解決,到時就可以上傳給UBI,希望他們能有時間加入最後的版本中。開啟FSAA後的畫面漂亮許多,可惜無法放圖上來給大家看看,不過PC版本11月就會出了,到時有ATI加速卡的人可以是著打開HDR+AA來看看,畫面品質絕對好很多。
-
No comments:
Post a Comment