unity5.X的場景烘培速度慢到令人髮指是什麼原因?有什麼提高速度的優化方案?

設置如圖。一個並不大的場景烘培一次要7,8個小時。同樣的場景使用4.X版本只要幾十分鐘。有點忍不下去了,這引擎怎麼改成這樣了?

--------------------------------------------------------------------------------------------------------------------------------

折騰了兩天已經放棄用unity5烘培了,速度慢得無法正常使用。

先湊合著用實時光吧。

搜了一圈也少見這個問題有人提,是現在用unity5的人少,還是碰見這個問題的人少,或者用unity5烘培的人少?

實時光照的效果也不能令人滿意,光影太平均缺少變化,沒有細節。並且效率也是個大問題...

不知道關於unity5的光照效果有什麼好的方法和技巧沒有,還望有經驗的大神分享。

個人認為現在這些改變反而使unity5的使用體驗變差了,有想升級版本的小夥伴還需謹慎。


我記得我差不多一年前就說過這個問題

unity5開始渲染進入一個死結,首先就是enlight渲染不夠快,但是有沒有類似群集渲染的方式可以暴力性的加快渲染,我個人感覺是同等的效果基本要慢上5-10倍,但是沒法找到有效的優化方式。

所以說我現在基本是使用4.6和5.2雙版本的,需要渲染效果的用老版本,當然實在特殊需求下就自己做個帶lightmap的材質,用其他軟體bake再倒入unity.

Ps,獨立版本的enlighten是參數更多,允許群集渲染等等的,unity5的版本明顯閹過

本來這個東東想用unity5做烘培的,然後。。。。 為什麼我眼中含著淚水,因為我愛這片土地愛的深沉 T T


因為4.x的烘焙用的是Beast,只是烘一下靜態貼圖就完了;5.x的烘培用的是Enlighten,不僅是烘培靜態貼圖,還要構造用於GI計算的空間信息,反正為了PBR這個烘培確實是比4.x費了(更具體的細節不明,看有沒有大神能答疑了……)

不過Unity自己也知道這烘培速度不行,所以他們也在嘗試優化……昨天剛出了5.3版,裡面就專門優化了烘培速度,不過你若是現在烘培就要七八個小時……那估計最多也就能降到4小時吧……

別人傳授我的經驗是,要麼先用很低的參數快速烘培看看大致上的效果傾向,或者另建一個小場景烘培找合宜的參數,然後再做正式烘培……就你貼的參數感覺可以降低一下Baked Resolution和Indirect Resolution試試……

再不行就只能升級電腦了嗯……至強E5你值得擁有。然後官方說過正在研究烘培的時候引入GPU計算,不過還遙遙無期就是了……


這幾天做大場景項目仔細研究了一下速度問題

烘焙室外用enlighten主要是卡在job2上面,我們來具體分析一下

這些參數不用我說了吧,很影響時間的有箭頭指的那些(特別說下lightmap Size,比較大的話很吃內存,內存滿了就很慢很慢。而且還可以約束場景的光照解析度,其他都不變的情況下,這個參數調小就能提速很多,因為單個物體的解析度被約束了)

想加快的話改小這些就可以了

但是!!效果自然降低了

具體什麼參數效果合適,可以看看Unite Europe 2017

Unite Europe 2017 - Bake it "til you make it

我們在烘焙大場景的時候要特別注意,texels per unit 這幾個字,他的光照解析度是按照尺寸大小來計算的,每單位多少個像素(ue4是按照模型來計算的,每個模型多少解析度)。如果這個值稍微大點,那麼大場景就會烘焙一個巨大無比的光照貼圖,pc端的話還不如直接預實時了,手機的話,秒爆顯存啊。

那麼我們改小一點,是不是就很快了啊?

答案當然是快了,但是也是很慢!

比如這麼簡單的一個場景,開了1像素每個單位的解析度,job2都卡了很久很久,具體多久我也不知道,因為我第二天來看以為死機了就直接關了,啊哈哈哈哈

因為我把模型放大了100000倍

這下聰明的你應該知道為什麼了吧

unity傻乎乎的去計算面積,然後再開始計算光子,如果場景比較大,那麼unity就算啊算啊算啊

那麼我的解決辦法是,縮小整個場景,增大單位光照解析度以及indirect res(indirect res一般最高不超過10,官方推薦的是室外是1以下,我們縮小了場景的話就開個個位就可以了)(注意開了ao的話,也要縮放變化),當然不重要的模型我們要縮小他的光照解析度(甚至設置為0)

是不是很機智?

不過一般室內我才用enlighten,涉及到光線複雜的地方enlighten有優勢,室外的話我用progressive

不以場景大小喜,不以final gather悲

關鍵是,不計算場景大小,看到什麼烘焙什麼,看不到的慢慢烘焙,簡單粗暴

什麼縮小場景?

都用progressive還去折騰尺寸幹嘛?

其實還可以用octane的render to texture 功能,這個和場景大小也沒有關係的

所以我現在是室內用enlighten(2017.2還優化了光照的反彈。。。。。。PS:ue4.18可以直接天光照明了),室外用progressive


我都不烘焙了,直接刷實時效果


之前我也一直很糾結這個問題,但今天我覺得可能之前都誤會了這個版本的烘培了,unity5是有個預烘系統(這個名字我說得不對別怪我,沒認真看過unity系統的書籍,能理解這個意思就好了),這個系統就是把目前的燈光信息預先走個流程,預先計算後面烘培出來的效果

就是這個Auto(把燈光都打好了再點Auto,不然它在預烘的過程並不會添加Auto後的燈光)預烘一遍時已經能看到lightmap的燈光信息圖了,但是這個只是個緩存文件,並不會被保留

【PS:Auot完之後如果想關閉燈光看看效果的話,記得把Auto的勾去掉先,因為Auto是實時更新燈光信息的,不然緩存的lightmap信息會消失掉,場景又回到沒有燈光烘培前的情況】

所以要再Build一遍才能生成lightmap的文件,因為前面已經預先烘培了一次有了lightmap的緩存文件了,所以這時再Build時間已經縮短了很多,有時烘培小場景的時候不知道是不是錯覺,覺得速度比unity4還快.....


分享個參數設置,速度還能接受

紅框里的很影響速度,你那裡需要改一下


不知各位有沒有遇到這種情況,以下這兩個文件是單獨烘培完realtime GI產生的文件,至少要30M.在Web端的可怎麼辦。。就算刪了之後 ,發現效果也沒啥變化,坑爹啊 浪費我幾小時。

繼續烘培Baked GI文件會更大,效果也沒什麼特別大的提升變,而且還是超級的慢。


作為一個新手,每次烘焙完老發現模型UV有問題,調一次烘一次,兩眼淚汪汪了,還是刷實時光好


你把反射源選成none試試,,,,,AO那個參數基本對速度沒影響


你這個參數亂調 IR AO 10?不慢才怪了


推薦閱讀:

Unity3d 拖拽賦值組件與通過Find賦值組件的優點與缺點?
3D 虛擬試衣系統 是否有簡單的實現方案?

TAG:遊戲引擎 | Unity遊戲引擎 |