1. 程式人生 > >Unity 2018.2 新功能(XR相關)

Unity 2018.2 新功能(XR相關)

概述

Unity 2018版本週期將圍繞Scriptable Render Pipeline (SRP)、Shader Graph、C# Job System、Entity Component System、Burst Compiler等核心功能展開,2018.2即在此基礎上新增新的功能,本文將分享新版本在XR(VR / AR / MR)方面的更新。

輕量渲染管線(Lightweight Render Pipeline,LWRP)

新版本中的 LWRP 做了一系列效能優化,適合硬體效能不高或很吃資源的硬體平臺,如移動平臺、VR平臺等。目前LWRP支援所有VR平臺,但是要在VR中使用多重取樣抗鋸齒(MSAA)需要等 2018.3版本。另外,LWRP目前尚不支援ARCore、ARKit、Hololens、Magic Leap平臺,官方說明如下:

Basic LWRP is currently supported on all VR platforms, however, it will not support Multisample anti-aliasing (MSAA) until 2018.3.

Please note that LWRP is currently not supported for handheld AR, like ARCore or ARKit, or HoloLens or Magic Leap devices. New product plans will be communicated at a future date.

高清渲染管線(High Definition Render Pipeline,HDRP)

HDRP在體積霧、平面光澤度反射、螢幕空間反射/折射代理、Shadow Mask等方面均有改善。目前HDRP處於預覽(Preview)狀態,由於缺少某些材質屬性(如SSS等)支援HDRP,Shader Graph 技術僅是對其提供有限支援,官方說明如下:

Limited support means that only a subset of HDRP features is available in the Shader Graph. There are currently no advanced material features (SSS, clear coat), and tessellation is not currently available either.

但是,這跟XR幾乎沒有任何關係(至少在2019年以前),因為HDRP目前不支援任何VR/AR平臺,官方說明如下:

Please note the HDRP is not currently supported on any AR or VR platforms. Support for these platforms is scheduled for 2019. New product plans will be communicated at a future date.

不過HDRP仍然是塑造高品質CG內容的利器,因為我們已經看到《死者之書》在WWDC上的表現。

漸進式光照貼圖(Progressive Lightmapper)

在2018.2中,Progressive Lightmapper已經去掉了預覽狀態,成為烘焙光照貼圖的首選項,實測烘焙一個VR場景的速度也有明顯的提升。

1199677-c5d8a3654448b2b3.jpg

在之前的版本中,光線的衰減主要受燈光元件的範圍(Range)屬性影響,而在現實世界中,昏暗的燈光和明亮的燈光,其衰減效果是受其強度影響,於是在新版本中便可以對烘焙的燈光衰減模式進行配置,這些模式包括: Legacy、Linear、InverseSquared、InverseSquaredNoRangeAttenuation,效果如下圖所示,在指令碼中由列舉型資料FalloffType指定。

1199677-d5986e873e3e12f9.png

在HDRP中預設使用Inverse square衰減模式,官方說明如下:

While legacy falloff is still supported, we now also support linear falloff, distance squared, and distanced squared with attenuation to zero at the range limits. Inverse square falloff is enabled by default in HDRP in order to match real-time lighting, and enables physical units for light intensity.

需要注意的是,配置衰減模式需要在編輯器(使用[ExecuteInEditMode ]標籤)中通過指令碼實現,具體程式碼實現如下所示:

1199677-7b1712c35289207c.jpg
Shader Graph

Shader Graph 新增對HDRP的支援,如前所述,僅是有限支援,主要包括PBR和Unlit兩類主節點。另外,在PBR和Unlit主節點上,新增了Position屬性,如下圖所示:

1199677-0ca61bed33005c21.jpg

主節點右上角新增設定選項,點選可對Shader進行相關的渲染設定,比如選擇PBS的工作流程(Workflow),Metal代表類似Standard Shader 中的Metal/Rough工作流程,而Specular則對應Spec/Gloss工作流程。

1199677-3fb2ba04deaea9e1.jpg

同時,可對Shader暴露的屬性進行自定義命名,以方便通過指令碼進行引用,如下圖所示。這類似於使用Substance Designer暴露節點的引數供Unity呼叫。

1199677-ea39c77dfd2e8ab1.jpg

對於Shader的路徑,在新版本中亦可對其進行設定,在Shader Graph中修改儲存以後,材質的Shader選擇列表將同步更新,如下圖所示:

1199677-92bf1cf9966cd337.jpg
Texture Mipmap Streaming

此功能可減少Unity應用程式對紋理記憶體的使用,同時可提高初始載入時間。在紋理匯入設定中,勾選Streaming Mip Maps 選項即可啟用此功能,如下圖所示:

1199677-f542065c2e15f358.jpg

啟用後,當模型距離攝像機(頭顯)較近時,只載入解析度較高的Mipmap,高解析度的Mipmap將保留在記憶體中,隨著程式的執行,當記憶體預算超支時,高解析度Mipmap將從記憶體中釋放。關於記憶體預算的大小,可在Quality Settings中勾選Texture Streaming進行設定,如下圖所示:

1199677-c5c7059bbdc71f53.jpg
其它更新:
  • 面向Android平臺的VR應用(如Gear VR、Cardboard等)中目前支援基於OpenGL的Single Pass Instancing 技術。

  • VR專案現在可以在Game檢視中選擇輸出頭顯中的左眼或右眼內容,如下圖所示:

    [圖片上傳失敗...(image-18117d-1531789927702)]

  • 當試圖載入已經被載入的VR裝置時,Unity會提示警告資訊。

  • ARCore在匯出設定中目前支援API Levels最低14起。

  • 通過消除不必要的OpenGL狀態重置,改善了ARCore中的背景渲染效能 。

  • 以 Stereo Eye 模式使用 Camera.RenderToCubemap時將考慮到攝像機的旋轉。

  • ScreenCapture.CaptureScreenshot方法中加入了StereoScreenCaptureMode 型別引數,用於指定捕捉左/右眼中的內容。

  • 對於混合現實裝置,目前可使用 HoloLens Holographic Remoting 進行遠端除錯。


以上僅是Unity 2018.2在XR方面的部分特性,此外粒子系統、2D、Cinematics、Addressable Asset system、C# Job System等方面也有較大更新,限於主題,不再贅述,讀者可參考此次的發行說明進行詳細瞭解,一共包含183項改進和1426項修復。另外,VR技術研習社公眾號後臺傳送“2018.2”可獲得 Addressable Asset System、Entity Component System, C# Job System 相關介紹資料,如下:

  • Addressable Asset System 入門文件及視訊。

  • Unite Berlin 2018 - New Addressable Asset system for speed and performance 主題分享。

  • Unite Berlin 2018 - Entity Component System, C# Job System and Burst 主題分享。