LOD – Level of Detail 實作 ( C4D to Unity3D )

LOD_level_of_detail

目的:

本文的教學目的主要以:

  • A. 了解什麼是LOD?
  • B. 在C4D軟體中如何快速製作不同精細度層級(Level)的模型
  • C. 製作好的模型,進入Unity3D如何正確設定。

前言:

Level of Detail – 簡稱LOD 是早期Real-time render engine 常用的一種減低運算負載的技巧,現在的動畫軟體也都有納入這樣的功能,除了遊戲界以外無論是動畫或是BIM領域都有大量使用。 LOD是什麼? 簡單來的說就是,近看是一個高面數高精度貼圖的模型;而遠看呢? 模型在同一個地方,已經被系統偷偷的換成粗糙的模型,甚至被換成一個僅僅只是耗用兩個三角面的看板,而看板上只有一張貼圖代替了整個模型。

LOD_level_of_details
遠方的模型使用低面數的模型,節省大量運算資源。

畢竟遠景的物件,距離Camera已經非常的遠,就像人的眼睛,無法看清楚遠方的物件。所以遠方的物件就用頂點數量少;面數少的模型去著色,效果也是一樣。

但對於處理器運算來說,卻少掉大量計算消費。

LOD的計算是根據攝影機到物件的距離來判斷,若離攝影機越近,系統會自動套用精細度越高的模型。

原廠說明文件的範例 – LOD 0 面數較高的模型

物件距離攝影機遠到一定的距離,系統會自動換成LOD1,精細度比較差的模型。

模型精緻度系統是自動切換了,但貼圖的對位、材質顏色的控制,都要能掌握好,不然人類一眼就看出系統已經偷偷換了模型,反而造成反效果,讓遊戲或場景變得不夠沉浸。

不同Level的模型、貼圖、材質,在製作之前都需要細細考量。

在C4D中快速實作不同Level的模型細節:

其實LOD最重要的目的之一是替模型減面、降低運算資源消耗。本文在這邊提供的是一種C4D快速減面的方法。

也就是使用C4D R19版以後新增的功能 – Polygon Reduction。關於實際操作減面教學請點下面這裡。有興趣的人請自行觀看,這邊就不多談。

C4D_Polygon_reduction

假設我們有一個高面數的精緻模型,需要再製出兩個Level的 中模與粗模。

我們可以這樣做,把原本的高精模型使用Polygon Reduction 降面,假設是75% 與95%減面強度。如下圖,做好後即可當作LOD的模型,例如原本的就是LOD0、而減面強度75%就可以當作LOD1、減面強度95%就是LOD2…

當然這個75%、95%調整的參數可以自己調控,這邊只是舉一個例子。請依照自己的專案需求來調整。

C4D 內建的LOD功能:

C4D內建的LOD功能,只要把物件放入綠色的LOD下,並更改Criteria 為Camera Distance,在C4D軟體裡面一樣可以達到依照攝影機與物件的距離來自動更換不同精細度等級的模型。在模型匯入Unity3D裡面也會看到一樣的介面,一樣可以調整變換模型的距離。

如下圖,Camera 移動到不同的位置,模型會自動切換。

LOD_C4D_GIF

貼圖與UV在LOD上的注意事項:

模型使用Polygon Reduction來做減面,固然是很方便,但千萬要注意,透過這方法減面後,其實他的幾何拓墣(Geometry Topology)已經長得不一樣了。 因此也會造成原本拆好的UV,在不同精緻度的模型產生貼圖錯位、不連續的感覺。

如下圖,外型一樣,同一個模型透過Polygon Reduction完後,造成貼圖偏移。

如先前所說,LOD的方法是系統根據Camera的距離自動的在背後偷偷地變換模型,而人類很容易在有明顯特徵的貼圖或造型看出不同。

例如下圖: 這三個模型外觀是同一個,但交通錐白線的位置不同高度,或是貼圖接縫錯誤,甚至材質顏色不同,很容易在系統置換模型的時候,被使用者看出破綻。

因此建議在有特別特徵的地方,一樣把網格(Mesh)進行調整,讓它看起來有一致性的高度或尺寸。如下圖,不論高精度或低精度的模型,貼圖上的白線,可以有一樣高度的環切。讓拆UV的時候,容易對齊。未來在LOD切換的時候也不容易看出破綻。

如何將C4D製作好的LOD模型匯入Unity3D與設定:

根據Unity3D 原廠說明文件可以看到:

上面意思是說,若你的模型名稱後綴 為_LOD0  、 _LOD1 、 LOD2 …. ,然後他們被放在同一個LOD的結構下,Unity3D在匯入模型檔案的時候會自動判斷生成LOD的模型佈局。

例如: Player_LOD0Player_LOD1 and Player_LOD2

若你使用的是C4D則可以直接透過內建的LOD功能,將模型都放到綠色的LOD父物件結構下。如下圖。 匯出時,先在Project視窗點選LOD,再選取File -> Export -> FBX (.fbx)。R19以後的C4D都會自動幫我們把Unity3D 要使用的LOD設定好。不用再逐一改名打後綴的LOD*編號了。

對於匯入Unity3D 細節若還不了解的人,可以看看下面的參考影片。但影片前面是在講觀念與架設環境建議可以先跳過。

C4D匯入Unity3D的參考影片:

結論:

最後必須要說的是,LOD是一個幾乎是必備的模型應用技巧,因此在製作模型的時候,最好一次就把不同Level的模型一次考慮進去。讓建模的拓樸與UV拆法,都能有一樣的規劃。在Polygon Reduction有限度的減面幫助下,在進行人工調整,才能預期達到品質好又快的工作流程。

其他低模的建構技巧與工具其實還有蠻多可能性的,本教學僅探究以C4D出發的快速方法,也期待大家一起交流更多。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *