[AD] #14 Amplify Impostors — 筆記
前一篇介紹我們使用 MTree 工具製作樹木物件,並且 MTree 本身就提供自動產生 LOD0 ~ LOD4 的模型資源,但後來我們對於此自動產生的模型資源不夠滿意,主要在於每個 LOD 層級之間的模型外觀變化過於明顯,在我們的使用情境中很難不發現切換 LOD 層級時的視覺差異問題。
事實上除此之外,HDRP 本身不再支援內建的 GPU Instancing 技術,所以既使使用 MTree 自動產生的 Billboards (LOD4) 也無法進行 GPU instancing 加速繪圖 (要正確使用 GPU instancing 需仰賴開發者使用 DrawMeshInstanced / DrawMeshInstancedIndirect APIs 自行開發與管理)。這樣對我來說等同於品質與效能都無法優化。
因此經過 Survey 後鎖定了 Amplify Impostors 這個工具,為 Unity Assetstore 界當中技術最強大之一的 Amplify 公司開發出來之強大 Impostor 工具包。
簡單的說 Impostor 就是升級版的 Billboard。原本的 Billboard 僅使用平面或是交叉的多個平面來代表遠方的物件投影外觀,因此近距離觀看就會出現破綻,或是遠距離在某些視角觀察也會有很大的破綻 (如由上往下視角)。
Impostor 做法則是改用隆起的 8 面體或是更複雜一些的半圓球面體來代表偽裝用的幾何,並且使用預先準備好的 360 度個視角拍攝貼圖,用以在即時繪圖時內插計算找到對應的視角貼圖內容 (如此講解很籠統,有興趣的人還是直接看下方 Reference 連結說明比較清楚)。
現在我可以使用 Amplify Impostor 工具迅速達成這個功能,針對要烘培製作 Impostor 的物件增加 “Amplify Impostor” Component,在 "References” 欄位中增加主要參考的 “Mesh Renderers” 對象,按下 "Bake Impostor” 就完成!
配合 Impostor 物件我調整 “LOD Group” 設定,只留下原始 LOD0 模型與 Impostor 版本,改用這個版本去安排地表上的森林環境,效果如下,整體偽裝效果是有明顯改善的。
Reference