為什麼一些 3D 遊戲的植被效果看上去還是像紙片一樣?《神秘海域4》的 3D 植被效果是如何實現的?

我看到目前遊戲普遍是那種紙片一樣的植被效果,網遊就不說了,但很多3A大作也是如此,包括巫師3、最終幻想15、GTA5等。其他光影效果再好每次看到這個都會不舒服……想知道是因為3d植被效果渲染成本太高還是其他技術原因?另外請問還有哪些遊戲的植被效果不是那種紙片的?


如果說的是別的遊戲,可能有不同技術

不過神海4除了Foliage Dynamic之外,基本靠的是美術能力

其實就是因為神海4大量使用新一代美術技術,才把substance這些新美術工具帶起來的

雕刻,substance,photoscan,pom已經是新世代美術的標準配置了

當然這些東西已經完全沒有什麼神秘可言了,畢竟頑皮狗的美術已經開始自己在網上賣教程和資源了。。。


紙片只要4個頂點,渲染壓力小。要大規模渲染植被的話,兩者性能差異非常大的。

KlayGE裡面近距離用的是模型,遠距離用的是長方形的imposter。上百萬棵樹的時候,即便有這樣的優化,仍然在一些顯卡上卡成鬼。


對,就是渲染成本高。

如果要老老實實的畫,本來單顆植物的細節就已經不少了,而且數量還巨大。

就連電影的渲染,遠處的植物也是要做簡化處理的。


推薦一篇Cryengine的文章,在GPU Gems3中有提到他們的植被技術:

Chapter 16. Vegetation Procedural Animation and Shading in Crysis

這篇裡面提到了他們的植被動畫的實現,以及葉片半透明效果的渲染手段。

總體來說還是比較簡單,也比較容易實現,他們把植被隨風的擺動分成了三個不同級別:主軀幹的運動,分支的運動以及葉片的運動,因為是在頂點級別改變位置,因此使用了一套這樣的頂點色:

每一個通道代表了不同細節級別的運動的顯著程度或者說該部分植被受風力時的阻尼係數。

具體內容和實現可見相關文章。

植被的渲染確實是一個相當耗時的過程,三角面多,重繪率高。所以近處用模型遠處用impostor是一種比較常見的優化手段,另外記得天刀他們似乎是在植被方面因為FS壓力比較大而沒有使用impostor,反倒是使用了較多頂點的模型,這樣的好處是頂點的形狀可以精確裁剪繪製區域,相應的減少FS這端的壓力,當然這可能也只對草這樣的東西比較有效(因為草葉比較細,相較於impostor裁剪後的草的像素繪製區域會小很多)。


我特意觀察了現實中的草木,發現本來就像紙片似的······


為什麼沒人提SpeedTree呢?

專門做植被的遊戲中間件,用它生成的花花柳柳老牛B了。

SpeedTree Animated Trees Plants Modeling Render Software


可以以這個視頻作為起點來尋找答案

&

https://www.youtube.com/watch?v=aZJQuHZQakQ


請看cryengine


看這個

頑皮狗材質美術師江毅冰專訪 | 機核網 | GAMECORES | 不止是遊戲

http://www.g-cores.com/volumes/19409


渲染的問題而已

引擎在渲染的時候,多面體的渲染要將渲染物切割為很多小塊,每小塊的光照,質感等渲染都是不同的,那麼勢必會增加硬體的要求。靜態物的渲染當然比動態的要簡單的多,當然如果你的美術夠牛,也可以做出很好的效果

可以想像比較光滑的樹葉在微風吹拂下輕輕飄動的時候那種感覺么,天哪,一棵樹要有多少片樹葉?


植被而已, 需要花大心思去做么...

如果你有無限的時間, 無限的錢, 無限的人力, 以及用戶有無限強大的電腦, 那應該會有一個非常逼真的植被.

否則, 植被就永遠會是相對較簡陋的設計(就目前來看是紙片).

如果你是項目負責人, 現在有多餘的閑錢/時間/人力, 你會去做更好的植被? 還是更好的角色? 或者更好的特效? 或者更好的劇情?

植被這個東西, 合格就行, 真不需要想太多.


看起來不是紙片的其實也是紙片。


Bayer Matrix


(離線渲染的)電影都是紙片, 何況實時渲染的遊戲


節省資源


其實如果用近(動態模型)+中(靜態模型實例)+遠(公告板實例)效費比還是很高的。

LOD切換用像素矩陣消失也不會看見明顯的突變。

案例可以參照天涯明月刀的植被系統。


因為是教科書一般的標準做法啊~_~ 不然成千上萬的小對象很頭疼呢~_~

2-4 地形-種樹工具


這個目前還是無解的,原因前面都說了。不過即使是插紙片,也有水平高低的區別,有的特別明顯,有的不容易看出來。

天刀的植被做的是比較好的,裡面用到的技巧是植被總是面對攝像機的,也就是植被並不是不動的,而是在你動的時候一直注視你的,這樣可以保證你總是看到開發者想讓你看到一面。

這個技巧用的很多,不過也可能會弄巧成拙。比如好像是御天降魔傳還是惡魔城忘了,一個有水兩邊都是山的場景,玩著玩著覺得兩岸的樹怎麼瞎動呢,就是前面說的原因,因為植被和山石相互穿插,所以轉動的過程中就露餡了。


樓主說的都不是以植被見長的3A遊戲,若看植被,還是cry engine或far cry 系列好些。

言歸正傳,回答樓主問題:

1.受polygon count 限制,不能為每片葉子建模,只能幾十片葉子用alpha test 貼圖在幾個三角面上去表現,即使如此,也因為over draw 的原因,葉子的層次被大大縮減

2.次表面散射,不可能做到光線追蹤,只有用些小技巧去意思意思

3,葉子投影也因為性能原因,被大幅縮水


很簡單,現在的遊戲如果3d渲染太高的話,勢必遊戲安裝包會變得非常大,那麼在運行過程中對電腦的消耗也是很大的(在此只舉例在PC端),渲染高的話細小到每一株植物每一件衣服的細節,那麼運存空間夠不夠是一個問題。開發出來後大部分玩家因為設備問題玩不了,那開發商就不願意做這樣的事了。而且,所花的人力物力都很高,成本高


推薦閱讀:

Redshift是否會對動畫產生革命性的變化?
物理材質與光線追蹤的關係?
windows平台下有類似framebuffer的東西嗎?
為什麼虛幻4的渲染要比unity強,強在哪裡了,想知道底層原理解釋?

TAG:遊戲開發 | 遊戲引擎 | 計算機圖形學 | 3D渲染 |