unity5.3 場景烘焙

現在的項目是個PC的Unity項目,一下子從手遊的運行時50 draw call變成動輒5K draw call,還真有點不適應。既然性能放開了,那麼就要有相應的效果匹配,所以開了N個燈光進行對大場景的照射。一個材質的draw call數在shader只繪製一次的情況下就會變成 N次draw call調用。儘管是強勁的PC也出現了卡頓的現象,那麼就進行了光的烘焙,記錄一下Unity烘焙的要點吧。

  1. 導入的模型都要在屬性窗口中Model的 Generate Lightmap UVs勾選上,這是讓lightmap匹配你的UV。如果你UV展得不均勻,那麼得到的烘焙陰影效果也不會好。
  2. 分好場景中GameObject的層,燈光和烘焙照射時可以分得開。例如UI就放到UI層,人物等活動的就放到活動的層,不動的建築放到建築層等。
  3. 把要烘焙的物體設置爲static。
  4. direct光設置一個主的,實時光照,其他的光都設置爲baked的,注意室內點光源也是這樣。baked的燈光根據實際情況選擇是否開啓陰影。光線可以對某些層的物體不進行照射。
  5. 記住燈光的設置中Render Mode要選擇Important,如果不選,某些多燈光的位置會有閃爍的問題。烘焙的效果也是按important計算的,如果你發現烘焙後曝光,就是因爲沒有選中這個,才導致效果跟你現在的不一致。選中後如果曝光,說明你燈光的Intensity設置得過高了。
  6. unity中抗鋸齒和圖像效果(例如bloom等)二者只能選其一,很多顯卡也是這樣(但較新的ATI的某些顯卡都已經支持可以都開啓了,目前的unity版本還不行)。那麼根據項目的嚴肅情況,這裏還是選擇保留了抗鋸齒。
  7. 項目的player setting中的 Color Space根據效果選擇了 Gamma。
  8. 場景內幾乎大部分的物體的shader,一般都用Unity5的stand了。很多都配置了normal map,unity可以自動製作normal圖,很不錯。燈光多的時候,有normal圖的材質感還是很不錯的。反光度也需要根據材質調節一下。
  9. Edit->Project Settings->Quality,看情況設置一下像素燈光數,可以適當增大,垂直同步在不追求實時性的時候一般就關了吧。
  10. 打開window->Lighting點擊Scene,如果有天空盒子的拖現在的天空盒子,如果不需要實時GI的把Precomputed Realtime GI勾掉。根據項目限制的大小,設置一下Atlas Size一般1024或512的。1024的烘焙的速度會慢很多。點下Build按鈕,經過很慢的過程後就有烘焙效果了。中途切場景的話烘焙工作也會停止,切回來再點可以繼續。
  11. 如果出現了'Compositing' job failed with error code: 3 ('Failed reading Direct file.').這樣的烘焙錯誤,清空一下渲染出來的圖,勾上realtime GI,烘一下,就關閉,再勾掉,勾上BakedGUI烘焙就好了。
  12. 烘焙中OA的參數最好還是設置一下,效果不錯。(就是 Lighting-》Scene-》Baked GI-》Ambient Occlution)
  13. 儘量不要室內室外都製作在一個場景裏,燈光會相互干預,例如,你屋外的平行光的陰影硬度設置得很高,光強設置得很高,那麼即時你屋內的燈再亮,看上去也是漆黑一片,不過可以用邏輯動態調整一下(人在屋內就減弱屋外的燈光)。
  14. 好的效果還是要靠光線、shader、和烘焙出來的反射效果,你需要一臺渲染工作站來加快烘焙速度。
  15. 對了,還有一個點,在烘焙的時候會產生很多臨時文件,在Edit->Preferences->GiCache中設置臨時文件的位置和大小,如果設置得太小,存不下的時候會報錯的。
Playersetting中的RenderingPath還是選擇Forward吧,爲了享受抗鋸齒效果和透明貼圖,上述的幾點也是針對Forward來進行的設置,對於這個項目一個實時方向光用來產生動態陰影差不多夠了。其他的使用烘焙出來的陰影。

在後續的烘焙中爲了保持金屬的反光和沒反光沒UV的管線正常顯示,整理了一個方案,拿圖片記錄一下。


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