地表渲染過程中,使用不同技術得到的效果比較

通常在網絡遊戲的地表渲染中,都是使用4層紋理混合的方式來實現地表的混合,加上混合層,一共5層紋理。但這樣得到的結果通常比較呆板,效果並不佳。如下圖所示:



可以看出,如果僅僅使用頂點光照+紋理混合,得到的畫面感覺很平,而且能夠提供的細節非常少。因此,我們考慮在地表紋理的a通道內增加地表紋理的高度數據。這個數據可以由美術生成,也可以由程序自動生成。不過通常程序自動生成的數據並不精確。有了高度數據,我們就可以做很多事,可以在ps中通過4層紋理的平均高度,以及相鄰像素的平均高度來計算法線。然後我們可以將光照計算遷移到ps中來實現。帶像素光照的效果如下圖所示:




在ps階段有了像素法線,再通過像素光照計算,得到的效果的確優於頂點光照得到的效果。不過最終渲染出來的效果看起來還是缺乏一些質感,看起來比較彆扭。可以考慮在ps階段增加視差,因爲在ps階段計算光照,那麼在ps階段增加視差就僅僅需要增加一個簡單的步驟,就能得到非常好的效果。極大的提升整個畫面的品質。如下圖所示:




上圖可以看出,效果已經得到了極大的改善,磚的渲染效果十分明顯。而且對fps的影響有限。不過視差算法會帶來一個額外的問題,就是在地表有尖銳突擊的地方,會出現分界線。如果用視差剔除算法,可以解決這個問題,而且效果更好。但是,視差剔除的本質是類似於光線追蹤,雖然能提升圖形的效果,但也極大的降低了幀率。如下圖:




POM得到了非常真實的質感,可惜幀率只有20多幀。POM的算法是微軟sdk內的算法,其實還是有優化的餘地。


測試用的顯卡是nvidia 9600 gso

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章