天天看點

Unity 2018.3地形功能更新介紹

Unity 2018.3将更新地形系統,此次更新涉及改進的工具和利用GPU實作的更高性能。它還添加了HDRP高清晰渲染管線和LWRP輕量級渲染管線的支援,同時相容内置渲染管線和現有Unity地形系統。

  請擷取Unity 2018.3 Beta體驗更新内容,但是需要注意:Unity 2018.3 Beta版仍處于開發階段,新版本的使用者界面和API可能會受到未來改動影響。

  性能

  在性能方面,我們為地形添加了GPU執行個體渲染路徑。大多數情況下,執行個體化會大幅減少繪制調用。我們進行了大量測試都表明,它能減少50%以上的CPU消耗。

  你可以在Terrain settings中勾選‘Draw Instanced’來使用新的渲染路徑。

 啟用後,Unity會将所有大型地形資料,例如:高度圖和Splat貼圖等轉換為GPU上的紋理。

  我們可以使用GPU執行個體化功能來複制單個網格并采樣高度圖紋理來産生正确的幾何體,而不必為CPU上的每個地形更新檔塊建構自定義網格。這會将減少地形的CPU工作負載降低不少數量級,因為一些執行個體化的繪制調用會替換大量潛在的自定義網格繪制。

  它還能改進加載時間。我們不僅不用建構所有自定義網格,而且還能使用GPU來建構底圖預混合的LOD紋理,GPU完成該任務的速度更快。這還意味着,如果你想開發自定義地形着色器,可以重寫‘build basemap’着色器,生成比對底圖的LOD紋理。

  地形效果

  執行個體化也會改善地形法線的外觀。我們可以通過将法線儲存在由高度圖生成的法線貼圖紋理,并在像素着色器中進行采樣,進而從幾何體解耦地形網格法線。這意味着法線會獨立于網格LOD層級。是以,你可以提高“像素誤差率”來減少頂點消耗,得到更少的瑕疵。

 對比舊版各頂點法線(左)和新版各頂點法線(右)

  我們還為HDRP和LWRP開發了支援執行個體化渲染的地形着色器。HD着色器在改進後,支援各頂點法線和大量新功能,例如:高度和密度的混合模式、法線縮放、由紋理控制的表面金屬和光滑度。HD地形着色器受限于單通道,但它支援在一個通道混合最多8個地形圖層。

  可程式設計GPU工具

  在編輯器方面,我們公開了一個腳本API可用于建構自定義地形工具,以及一套實用函數,你可以使用它們在GPU上輕松實作無縫的交叉平鋪雕刻和繪制操作。

  新的TerrainAPI包含TerrainPaintTool和TerrainPaintUtility,前者是地形工具的基類,後者包含用于修改地形資料的實用函數。

  通過這些改動,我們将現有地形工具轉換為GPU操作。除了使這些工具速度更快,也為我們提供了筆刷大小,改進的筆刷預覽,以及通過自動無縫拼接來繪制地形平鋪邊界的功能。

新的标記地形工具仍處于預覽階段,将于Unity 2018.3b 6推出

  我們還開發了筆刷功能,例如:筆刷旋轉,随機化。還有一些更進階的繪圖工具,例如:高度圖和網格标記,克隆筆刷等。這些繪圖工具的功能還未在Unity 2018.3中提供,但将于不久後釋出,敬請關注。

  多地形支援

  我們使處理多個地形平鋪的過程更為簡單。除了地形之間的無縫繪制,你還可以自動管理相鄰地形間的連接配接。此前,開發者需要編寫腳本來手動連接配接地形。

  勾選Terrain Settings中的‘Auto connect’,地形會自動和相鄰部分連接配接,使用相同的分組ID。

擴充現有地形時,你可以使用全新的‘Create Neighbor Terrain’工具來沿着空白邊界快速添加比對的地形平鋪。

我們努力減小調整尺寸和修改分辨率所産生的影響。在Unity 2018.3中,當修改分辨率時,高度圖和Splat圖會重新采樣,而不是像之前那樣清除資料并丢失所有内容。我們還将在未來改進所有涉及調整大小的操作。

  新資源類型

  為了簡化工作流程,我們還加入了二個與地形相關的全新資源類型:TerrainLayer和Brush。

1

TerrainLayer

TerrainLayer資源允許我們定義獨立于地形對象的地形材質,進而能夠輕松跟蹤多個地形中相同材質的變化,這樣能實作無縫繪制和材質修改。

  我們擴充了TerrainLayer資源以支援“遮罩貼圖”紋理,可用于任意着色目的,還擴充了腳本界面,為TerrainLayer資源提供與着色器相關的自定義GUI。

更多unity2018的功能介紹請到paws3d學習中心查找。

繼續閱讀