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 主题分享。

猜你喜欢

转载自blog.csdn.net/sovida/article/details/82883004