標籤:unity3d培訓 unity3d遊戲 unity培訓 unity3d學習 3d遊戲開發
對於做虛擬現實的朋友來說,烘焙貼圖應該不是一個陌生的東西。想要在有限效能的電腦上面即時運算較好的光影效果,一般都會採用烘焙貼圖的方法。而除了在3dmax裡面烘焙貼圖之外,Unity3D也內建了LightMapping烘焙貼圖的功能。下面我們來做一個小例子,對兩者的意義和效果做一個小對比。更多內容請訪問狗刨學習網 http://unity.gopedu.com 在3dmax裡面,我簡單的建立了幾個模型,並分別賦予他們不同的顏色:
然後使用3dmax內建的光線追蹤渲染一下,會出現這樣的效果:
很明顯的,光線追蹤之後的渲染效果比沒有光線追蹤時立體感強了很多。這是因為進階渲染器類比了真實環境裡面光線的各種反射和散射,使物體看起來接近真實的效果。
我們所要做的烘焙,其實就是把這種經過進階渲染器計算的光影效果,記錄在貼圖上面。
我對上面的幾個物體展了UV,並使用3dmax的烘焙功能,烘焙出相應的貼圖。並把這個帶著UV資訊的模型匯出為FBX,放進Unity裡面。
在unity裡面,我拉出了兩個模型,一個按照原來的顏色直接給予他材質,另外一個把3dmax裡面烘焙的貼圖貼上了模型,會出現的情況。情境裡面也沒有打燈光,假如是只有顏色的材質時,模型會沒有任何的輪廓和立體感。而貼上了烘焙貼圖的模型,看起來會和在3dmax裡面使用光線追蹤時渲染的效果差不多。接下來我們對只有顏色的這個模型進行LightMapping烘焙處理。選擇該模型,然後在Static裡面選擇Lightmap Static。
在功能表列的Window——>lightMapping開啟lightMapping面板,在bake欄裡面設定一下烘焙的參數,我這裡用了如下參數:
設定好之後,就可以烘焙了,在烘焙之前先儲存情境,然後點擊Bake Scene按鈕。經過漫長的等待(等待的時間取決於你的模型的複雜程度),烘焙結束,產生了貼圖,我們可以在maps裡面查看:
這時候,我們可以進行一個小對比了:
同樣是情境裡面沒有燈光,但不論是經過Lightmapping烘焙的模型,還是在3DMax裡面烘焙貼圖的模型,都有了較為真實的光影效果。既然兩者都能達到差不多的效果,那麼究竟他們之間有什麼差別呢?3dmax烘焙:1、可以使用各種進階渲染器對模型進行烘焙,比如Vray。2、可以烘焙像反射這樣的效果。3、因為光影是固定了,所以在引擎裡面只能按照在3DMax裡面的擺放,不然就會穿幫。所以模型貼圖不能在各個不同情境通用。unity的LightMapping烘焙:1、設定的參數相對沒有3DMax裡面進階渲染器豐富。2、只能烘焙光影的追蹤效果,不能烘焙反射。3、可以一個模型放在不同情境單獨烘焙,模型可以通用。
4、由於每個情境需要烘焙一組貼圖,所以如果情境多了,也會增加貼圖數量。
至於兩者之間的具體效果對比,這要根據烘焙時的具體參數來看。
這裡注意的一點是,無論哪種烘焙,你都需要對模型進行展UV操作,假如UV沒有展,或者UV的範圍超出了0-1的框,烘焙都是會出錯的。
unity內建LightMapping和3Ds Max烘焙貼圖的小對比