[gdc18]farcry5的地形渲染技術

[gdc18]farcry5的地形渲染技術

來自專欄 安柏霖gamedev

ubi在地形技術上持續輸出,gdc18上面這篇farcry5的地形,也很不錯。

===overview===

(推薦大圖觀看)

這裡我們可以看下過去幾年,ubi在場景渲染上的演化:

  • 15,刺客信條,gpu driven pipeline : GPU Driven Render Pipeline
  • 15, farcry4, adaptive virtual texture : blog.csdn.net/toughbro/
  • 17, ghost recon wildlands, pipeline : zhuanlan.zhihu.com/p/33

所以到了farcry5,可以說具備了之前產品的所有優點:高效的pipeline,製作出超逼真場景的能力,非常高的渲染效率;

並且在此基礎上,運行效率進一步提升,細節處理更加到位。

積跬步以至千里!

細節版:圖估計太小,各位手動放大了看吧

(推薦大圖觀看)

=======憤怒的廣告條=========

安柏霖:騰訊北極光《無限法則》《天涯明月刀》誠招程序?

zhuanlan.zhihu.com圖標

=======憤怒的廣告條=========

===gpu driven===

在terrain渲染上,可以說是非常適合gpu pipeline了。

可以看到,基本的渲染工作已經都在gpu上做了,cpu做一個streaming工作,然後就一邊叫好去了。

然後gpu搞定這些額外的負擔花了多少時間呢?0.1ms,班納博士對綠巨人的感覺。

具體細節,可以看前面文章

安柏霖:GPU Driven Render Pipeline?

zhuanlan.zhihu.com圖標

===懸崖處理===

adaptive virtual texture在處理z方向投射的地形材質各種猛。

但是在處理xy方向的投射,就不行了,這裡farcry5還是回到了傳統的tri plane projection,這樣三個方向投射,不同情況要blend,就會有48次texture sampling。

然後遠距離terrain的tiling比較嚴重,farcry5要做不同距離不同tiling係數,直接sample數量翻倍:96個。。。

然後就使用了隨機混合的技術來處理,最終可以將sampling數量降到12.

這裡farcry5的技術,他們命名為」stochastic cliff shading」

隨機混合,其實就是使用有噪點的alpha test來替代alpha blend,本質上是一個screen door effect,圖示如下:

這個最大的優勢就是避免了alpha blend,每個pixel只需要shading一次,而不是多次來做blend,性能非常的好。

其實除了farcry5的地形,多向投射和變參tiling,這項優化還有這些地方可以使用:

  • lod切換,fade進場景的時候
  • cascaded shadow map不同cascade之間過渡
  • 頭髮,草透明等等(不過質量略低)

由於farcry5使用的是deferred texturing的方式,還要處理stable和alias的問題,這個在i3d的「hashed alpha testing」被非常好的解決了。

所以最後得到了質量很好,效率非常高的3向投射的地形。

=cliff geometry=

在檢測到是懸崖類地形的時候,會procedural的生成一些geometry,讓懸崖看起來更給力了。

===deferred texturing===

farcry5的叫法是「screen space shading」。。。命名非常容易讓人誤解,這個做法一般叫做deferred texturing

具體就是在屏幕上渲染material id這種信息,然後統一的在screenspace把material data讀出來用,可以shading可以填充gbuffer。

具體幾個pass:

- 0, shader id渲染depth和shaderid,這樣shaderid的事情就解決了

- 1, gbuffer, material data,利用了地形的特點,位置就可以索引sector,進一步在quadtree里可以找到material信息

然後uv的導數問題是deferred texturing的經典問題,這裡uv導數正比於position的導數,所以確實各方面非常的巧。

===sum===

farcry5的這個文章,我是非常喜歡的,把大家提的很多的做法,在具體的地形模塊上做了非常好的落地,也有了非常好的結果。

尤其是cliff stochastic shading差點這條路就走不通了,剛剛好17年的i3d有文章,有時候運氣也是實力的一部分呢。


推薦閱讀:

Dirty Game Engine
[GDC16] Optimizing the Graphics Pipeline with Compute
Matrix and Transform Conversion 1/3
[GDC17] Ghost Recon Wildlands:Terrain Tools and Technology
[翻譯]Life of a triangle - NVIDIAs logical pipeline

TAG:遊戲引擎 | 計算機圖形學 | 實時渲染 |