[Unity] Unity 2019.1正式版功能介绍

查看:1055 |回复:2 | 2019-11-26 13:02:39

您需要 登录 才可以下载或查看,没有账号?注册

x


03e43a4f-4a71-4432-ad3f-e98b2c65356a_640_2.jpeg





转载2019.1正式版的功能介绍,一共4篇,篇幅较长








广受期待的Unity 2019.1正式版现已发布,这是Unity 2019第一个技术前瞻Tech版本。未来几周,我们将发布Unity 2018.4 LTS长期稳定支持版本,帮助开发者在坚实的基础上开发稳定的作品。


Unity 2019.1加入了超过283项新功能和改进内容,包括:Burst编译器、轻量级渲染管线LWRP、Shader Graph着色器视图等多项脱离了预览阶段可用于正式制作的新功能。

Unity 2019.1添加了不少面向动画,移动开发和美术的新功能,以及多项简化项目工作流程和编辑器工作的更新内容。

受篇幅限制,本文我们将为大家介绍以下内容:


  • Unity 2019.1的重点功能及改进的概要功能。
  • Unity 2019.1平台新功能及改进。包括:移动平台、AR/VR平台、WebGL、Linux平台、主机平台、桌面平台。

下载Unity 2019.1正式版:https://unity3d.com/get-unity/update

重点功能和改进概要

图形和光照

在Unity 2018.1中加入了可编程渲染管线SRP和Shader Graph着色器视图的预览版本。在Unity 2019.1中,这二项功能已经脱离预览版本,推荐使用轻量级渲染管线LWRP和Shader Graph着色器视图用于正式制作。

Unity 2019.1为艺术家带来了GPU光照贴图功能(预览版)的许多功能和平台支持,以及对高清晰渲染管线HDRP(预览版)和Post-Processing Stack后期处理特效包的大量改进。

下面的视频《异教徒》是Unity Demo团队在GDC 2019大会上展示的新短片。该演示使用Unity 2019.1制作,利用了Unity的可编程渲染管线SRP架构。

通过使用最新版高清晰渲染管线HDRP和集成的Post-Processing Stack后期处理特效包,Unity Demo团队模拟出物理摄像机的逼真影视级效果,在实时环境进行渲染。

艺术创作工具

我们持续关注艺术创作工具。在新版本中,我们加入了Runtime Animation Rigging运行时动画绑定,它将帮助艺术家更好的控制动画艺术效果。

我们对音频、视频、DCC和世界构建工具进行了更新。Timeline现在是一个经过验证的资源包,新的Timeline Signals信号功能提供了简单方法让Timeline交互场景对象。

移动平台和其它平台

Unity 2019.1面向移动平台进行了大量改进,其中应用程序增量包更新功能,让开发者不必重新构建,便可在开发阶段更快速进行迭代。

我们加入了Adaptive Performance移动平台自适应性能功能(预览版),它提供关于热量趋势的数据,包括:游戏在运行时是CPU绑定还是GPU绑定的信息,以便开发者进行调试,并改进常见移动游戏开发的工作流程。

最后,适用于Linux系统的Unity编辑器正在预览阶段。

性能和开发工具

我们正在开发支持高性能和多线程处理的面向数据技术栈DOTS,其中Burst编译器在Unity 2019.1脱离预览阶段。

DOTS的相关工具已经在创作《Megacity》演示项目中大显身手,仅用时二个月,DOTS团队和FPS示例项目的二名艺术家就创作出了未来风格的城市景观。

《Megacity》完整项目现已正式推出,你可以进行下载:https://unity.com/megacity



通过和Havok进行合作,我们为Unity内基于DOTS的项目提供了完整的物理系统解决方案。我们进行了其它改进,包括:可点击的堆栈追踪链接,它会根据堆栈中列出的函数调用,指向相应代码行,基于文本的搜索工具会筛选控制台条目。

我们还加入了全新的Incremental Garbage Collector增量式垃圾回收功能,该功能处于实验阶段,用于替代已有的垃圾回收功能。

工作流程改进

我们希望在运行时有出色的性能,但在编辑器工作时,高性能也同样重要,因此我们一直专注于改进工作流程。

通过Shortcut Manager快捷键管理器,我们加入了交互式可视化界面和一组API,使开发者能够轻松管理编辑器的热键,把它们指定给不同的使用环境,并且在一个界面可视化已有键位绑定。

  通过使用全新的SceneVis场景可视化控制功能,我们可以在场景视图快速隐藏和显示多个对象,不必修改对象在游戏内的可见性。你现在还可以使用UI元素来扩展编辑器。



        Unity 2019.1平台新功能

移动平台

Mobile Notifications(预览版资源包)

Mobile Notifications移动通知预览版资源包帮助开发者实现留存机制和基于计时器的游戏过程,对iOS系统和Android系统添加支持用于调度本地可重复或单次通知。

请注意:该功能对系统的要求为iOS 10或Android 4.1以上版本。

Mobile Notifications移动通知以资源包的形式提供,了解更多信息:https://docs.unity3d.com/Packages/com.unity.mobile.notifications@latest

Adaptive Performance(适用于三星)

移动开发人员面临的一大挑战是构建既画面精美又运行流畅的游戏,而且不能透支硬件性能,导致瓶颈情况,产生较低的不稳定性能并缩短电池寿命。

扩展电池寿命和减少热量可以让玩家有更长的游戏时间,从而提升用户留存率,使游戏更加成功。和PC或主机平台不同,利用移动平台硬件要求有精妙的平衡,不然透支设备的性能会很快降低游戏性能。

为了解决这些问题,我们与三星进行合作,基于三星的GameSDK构建Adaptive Performance自适应性能功能,它会首先适用于Samsung Galaxy系列设备,例如:Samsung Galaxy S10和Galaxy Fold。

了解详情,请阅读《Adaptive Performance:高品质画面呈现与流畅稳定帧率的二者兼得》。



使用Unity Hub安装Android SDK和NDK

Unity Hub现在提供安装所有Android所需组件的选项,作为“Android Build Support”选项的一部分,开发者可以获取正确的依赖关系,而不必收集和安装其它内容。如果你是一位高级Android用户,你仍然可以手动安装和配置组件并使用Android Studio。

请注意:从Unity 2018.3开始,“Android Build Support”会自带基于OpenJDK的Java运行时。



Android Logcat集成(预览版)

Android Logcat工具包是一个在Unity编辑器显示Android设备日志信息的实用工具,它兼容Unity 2019.1,可以通过在Unity控制和筛选信息来轻松进行调试。



使用Scripts Only Build提升迭代速度

为了在开发过程中实现更快的迭代,Unity编辑器提供了Scripts Only Build选项,你可以跳过构建过程中的多个步骤,仅重新编译脚本,然后在选择“Build And Run”后,构建最终资源包并进行部署。

我们在Unity 2019.1中扩展了这一功能,现在该功能可以在目标设备批处理适用Android的APK文件,而不会重新构建和部署版本。因此在迭代C#代码时,只有重新编译的代码库会发送到设备。

请注意:在Unity可以执行“Scripts Only Build”前,必须提供项目完整的构建版本。



AR/VR平台

AR Foundation

AR Foundation帮助Unity开发者快速开始构建AR项目。你可以在自己的AR体验选择要加入的功能,只需构建一次,就能同时部署到支持ARKit和ARCore的设备。

AR Foundation以资源包的形式在资源包管理器提供,它把ARKit和ARCore的底层API结合到同一个框架中,包含额外功能以帮助开发者应对AR开发的最大挑战。



AR Remote(预览版)

AR Remote允许你在设备和Unity编辑器之间传递数据,不必在每次测试功能的时候把项目构建到设备上。

AR Remote包含Session Recording & Playback会话录制和回放功能。它可以录制设备上的会话过程,在编辑器进行回放,以实现高效的应用程序测试过程,并迭代预览效果。

手持式AR示例项目

手持式AR示例项目已经发布。该项目的场景、预制件和辅助组件都基于AR Foundation开发,用于展示如何处理平面预览、对象放置等功能。

手持式AR示例项目介绍如何使用轻量级渲染管线LWRP和AR Foundation。它包含所有开发时需要的组件,使开发者可以快速构建和运行自己的AR项目。

下载手持式AR示例项目:https://github.com/Unity-Technologies/arfoundation-samples

图形改进

LWRP支持AR和VR

AR Foundation对轻量级渲染管线LWRP的支持以预览版资源包的形式推出,让开发者为AR体验使用LWRP。

在新版本和LWRP最新资源包中,开发者可以利用Shader Graph着色器视图和LWRP的性能优化功能来为Unity支持的所有VR平台构建VR体验。

立体渲染模式回退功能

当目标设备不支持立体实例化时,立体渲染功能会自动回退为单通道渲染。开发者可以安全地使用更高效的Stereo Instancing立体实例化渲染模式,不必担心特定设备的图形API是否支持该模式。在此前版本中,立体渲染模式会回退为多通道渲染。

立体实例化的后期处理支持

在Unity 2019.1和最新后期处理特效包中,所有对VR可见的后期处理效果都适用于Stereo Instancing立体实例化渲染模式。

对Magic Leap的内置支持

构建到Magic Leap One的支持现在已经加入Unity 2019.1,这意味着开发者不必为了Magic Leap开发而使用特定的技术预览版Unity,只要使用Unity 2019.1就可以了。

WebGL

在Unity 2019.1中,WebAssembly是Unity WebGL的默认输出格式。asm.js已经从编辑器UI移除,它在Unity 2018.3中被弃用。为了应对这些改动,专用于asm.js格式的“Use PreBuilt Engine”构建选项也已不再可用。

WebGL Player Settings也得到了更新:Linker Target链接目标被设为WebGLLinkerTarget.Wasm,Memory Size内存大小设为32MB,二个选项已经从编辑器UI移除,但开发者仍可以通过编辑器脚本修改这些设置。

在Unity 2019.1中,我们加入了实验性WebAssembly多线程处理,它可以通过PlayerSettings.WebGL.threadsSupport启用。

针对Linux系统的Unity编辑器(预览版)

针对Linux系统的Unity编辑器正处于预览阶段,开发者可以从Unity Hub获取最新版本。将Linux系统上的Unity编辑器从实验阶段转为预览阶段意味着,我们在2019年底前将实现完全支持的版本。

我们会优先支持以下配置的Linux系统:


  • Ubuntu 16.04和Ubuntu 18.04
  • CentOS 7
  • x86-64架构
  • 基于X11视窗系统的Gnome桌面环境
  • NVIDIA官方专用图形驱动程序和AMD Mesa图形驱动程序
  • 运行在设备或硬件上而且不必使用模拟或兼容层的桌面型号

建议你使用以上列出的支持配置,以获得最佳开发体验。

主机平台

Async Compute异步计算改进

我们改进了主机平台上Async Compute异步计算的支持,现在允许更大范围的Command Buffer脚本函数作用于针对异步计算队列的Command Buffer,例如:设置全局着色器数据的函数,或管理临时渲染目标的函数。

我们针对异步计算队列的Command Buffer改进了错误处理功能,如果使用了无效的Command Buffer脚本,该功能会立即进行反馈,这样可以让开发者的调试过程更轻松。

PlayStation 4上链式处理和串联处理

对于Command Buffer链式处理和串联处理,我们优化了工作内容提交到GPU的方法,特别是对于本地图形作业,此前的方法会产生少量GPU开销。

桌面平台

通用Windows平台的ARM64支持

我们为ARM64设备添加了UWP支持,只需为目标架构先选择ARM64,然后部署到基于Windows的ARM64笔记本电脑即可。

分辨率显示窗口

根据用户数据和客户调查得到的反馈,我们在Unity 2019.1默认“禁用”Display Resolution Dialog分辨率显示窗口,你可以在项目设置中通过Display Resolution Dialog下拉菜单启用它。你可以在Player,Resolution和Presentation,以及Standalone Player Options分组找到它。

小结

我们将在下一篇中介绍Unity 2019.1引擎核心功能的更新,包括:面向数据的技术堆栈DOTS、Megacity、基于DOTS的物理系统、PhysX改进、IL2CPP、Profiler性能分析器、ScriptableObjects可编程对象的重载等相关内容,敬请期待.





本文,我们将介绍Unity 2019.1正式版中引擎核心的新功能与改进。





面向数据技术栈DOTS

Burst编译器脱离预览阶段

在Unity 2018.1中,我们加入了Burst编译器,这是一种基于LLVM的全新后端编译器技术,它会使用C# Job为目标平台生成高度优化的机器代码。在新版本中,Burst编译器脱离了预览阶段,支持用于正式制作。

使用Burst编译器时,你不必处理复杂的底层编码工作,也不必通过手动调整汇编语言来获得性能提升,你可以直接使用C#语言编写代码。

如下图所示,我们可以使用Burst检视窗口查看作业和机器指令,以及原始的C#源代码。



新的音频渲染和混合工具(实验性)

DSPGraph是全新的音频渲染和混合工具,基于Unity的C# Job System构建。该工具可以通过C#代码扩展,能够和Burst编译器一起使用。

在《Megacity》演示项目中,该工具支持10万个分散的3D空间音效发射器,包括:霓虹灯、空调风扇和汽车,实现出丰富逼真的音效环境。

请注意:DSPGraph是一个内部的实验性API,我们计划今年晚些时候将其作为预览版资源包处理和发布,它将成为面向数据技术栈DOTS音频系统的基础。



Sub Scenes子场景(实验性)

Sub Scenes子场景属于《Megacity》项目开发工具组的一部分,该功能弥补了游戏对象和DOTS技术之间的隔阂,使用游戏对象场景作为分组机制,批量转换游戏对象为实体。

在开发《Megacity》这类大型项目时,其中数百万个游戏对象被转换为实体,Sub Scenes子场景功能会现锝非常实用。由于开发者一次只需要处理有限的子场景,编辑器中的项目会变得更好管理,也更高效,我们把这种方法称为“混合”工作流程。



除了改进编辑器工作流程,开发者也可以使用转换后的子场景作为流处理单位,它们可以在游戏期间加载和卸载,也可以在编辑器中异步加载。

通过添加SubScene组件到根游戏对象上,你可以把一组游戏对象转换为实体。如果希望在子场景编辑游戏对象时,只要打开它并进行改动即可。在完成编辑并关闭游戏对象子场景后,游戏对象组会自动转换为实体。

在子场景对游戏对象进行改动不会影响根场景,这样方便多个团队成员在不同子场景同时进行协作。

Sub Scenes子场景功能是Entities资源包的一部分,可以在资源包管理器找到。该功能目前处于实验阶段,尚未提供支持文档,因此请谨慎使用。

Megacity

在短短两个月内,Unity ECS团队和FPS示例项目的二位艺术家一起合作开发了《Megacity》项目,在这座未来风格的超大城市景观中,遍布着飞行的汽车,成百上千个精致的游戏对象和独特的音频源。



开发团队利用了面向数据技术栈DOTS,汇集了”默认高性能实现”的所有工具项目,包括:实体组件系统ECS、C# Job System和Burst编译器。

《Megacity》展示了如何使用Unity 2019.1的DOTS技术开发复杂项目,以及如何利用Unity 2018.3加入的新预制件工作流程。《Megacity》项目现已正式推出,可供下载使用,用户可以开始尝试DOTS技术为新项目提供的机遇。

我们后续也会介绍Nordeus工作室的开发者对《Megacity》演示项目的处理方法,了解如何面向移动平台轻松地调整高分辨率PC项目。

基于DOTS技术的物理系统

在GDC 2019上,我们宣布和Havok展开合作,为Unity中基于DOTS技术的项目构建完整的解决方案。

如果项目使用新的DOTS框架,Unity Physics(预览版)是项目的默认物理系统,该系统使用C# DOTS框架编写,利用Burst编译器和C# Job System提供高性能模拟效果。



通过使用无状态的设计而不使用缓存,我们能够简化Unity Physics的复杂度,使开发者可以在我们改进该系统的同时,轻松进行调整,修改和学习。Unity Physics现在可以通过Unity 2019.1的资源包管理器获取。

今年6月,我们将提供Havok Physics资源包,它是针对DOTS技术项目的集成,以满足复杂的物理模拟需求。Havok Physics和Unity Physics一样,都使用了C# DOTS框架,但Havok Physics基于闭源专利技术Havok Physics物理引擎,由C++代码编写。

Unity Physics和Havok Physics使用了相同的数据协议,这意味着开发者只需一次构建内容和游戏代码,就可在Unity Physics和Havok Physics中使用。这样开发者可以无缝转变二个基于DOTS技术的物理解决方案,或者在项目中同时使用Unity Physics和Havok Physics。



如果你的项目使用游戏对象和MonoBehaviour框架,PhysX是默认物理系统。这一点不会变,我们会继续在Unity中面向基于游戏对象和MonoBehaviour的项目支持和处理PhysX更新。

PhysX改进

我们对面向非DOTS项目的PhysX解决方案加入了大量改进,例如:布料现在可以应用自身的重力效果,它独立于场景的重力,以便轻松进行调整。

我们也更新了物理调试视图的颜色,从而提供更好的使用体验,让视图里的颜色和辅助图示颜色保持一致。Rigidbody组件的检视窗口新增了一个部分,用来展示调试过程常用的内部信息,例如:线性速度和角速度,重心和惯性张量。



全新的Physics.GetIgnoreCollision函数可以轻松检查特定碰撞体是否禁用碰撞效果。物体的默认最大角速度从7提高为50,这会改进快速移动对象的模拟效果,也会改进特别配置中布娃娃的分辨率质量。该函数允许解算器更快地旋转物体,从而满足较少迭代中的限制。

物理多场景改进

此前,我们在多场景环境中仅支持光线投射。在Unity 2019.1中,所有场景查询都可以在多场景环境使用。

Physics Debug物理调试视图也支持多个物理场景,允许开发者查看选中对象属于哪个物理场景,开发者也可以查看属于特定物理场景的所有对象。

IL2CPP与性能

我们改进了启用脚本调试过程的运行时性能,此外,IL2CPP生成代码的性能提高了20%。

性能分析器更新

我们改进了Unity Profiler性能分析器和外部性能分析器的集成效果,Unity的开发构建现在会为Android Systrace工具生成标记,允许开发者在系统范围跟踪的Android Systrace工具中,可视化以Unity事件命名的部分。

开发者可以在OS活动的环境中分析游戏,例如:进行调度,CPU状态和运行在系统的其它处理过程。之前作为插件的Systrace支持现在已经是Unity 2019.1的一部分。

所有托管线程现在可以在Mono和IL2CPP编译后端看到,所有本地Unity线程都会公开。线程上的活动会展示在性能分析窗口的时间线视图,我们也会自动为性能分析器注册所有线程。

此外,我们会提高性能分析器可用内存量的默认值,在播放器提高到4MB,在编辑器提高到64MB,这允许开发者积累更多数据,然后再传输到硬盘或网络上,并且减少开销。

开发者也可以使用“-profiler-maxusedmemory”命令行参数控制可用内存量。我们添加了UnityEditor.Profiling.HierarchyFrameDataView API,它可以快速为所有线程遍历CPU性能分析数据,在性能分析窗口的层级视图提供所有信息,以及所有相关的元数据,例如:GC.Alloc调用栈。

Profile Analyzer(预览版)

Profile Analyzer是全新的预览版性能分析工具包。它补充了Unity性能分析器的单帧分析功能,加入同时分析多个帧的功能。该资源包很实用,特别是需要较大的性能视图时,这种情况包括:升级Unity版本,测试优化效果,或在开发过程跟踪性能变化。

Profile Analyzer工具包会分析从活动帧集合加载的CPU帧和标记数据,它们可以从当前的Unity性能分析器加载,也可以从之前保存的Profile Analyzer会话加载。

经过分析的CPU帧和标记数据会使用直方图和箱线图来表示,这些图表补充了每个标记活动的分类列表,包括:最小值、最大值、平均值、实例数量、范围和标记首次出现的帧。

Profile Analyzer的对比视图让开发者可以同时加载二个数据集,以衡量优化,设置改动或Unity版本更新产生的效果。



综合筛选系统可以在单视图和对比视图使用,以限制标记,线程,帧和栈深度的分析。



增量式垃圾回收(实验性)

在Unity 2019.1中,我们加入了Incremental Garbage Collector增量式垃圾回收功能,作为已有垃圾回收功能的实验性替代功能。

增量式垃圾回收可以把任务分解为多个部分,这样不必为了执行垃圾回收而长时间中断程序执行,它会用多个短时间的中断来完成。

虽然该方法从整体上不会让垃圾回收过程变快,但它能通过分配工作量到多个帧,显著减少GC峰值对动画流畅性的影响问题。更多相关信息,请阅读《Unity 2019.1 新功能:增量式垃圾回收》。

ScriptableObjects可编程对象的重新加载

ScriptableObjects可编程对象现在可以在资源导入阶段进行重新加载,这意味着如果可编程对象在导入前加载,而磁盘上的基础资源已被修改,那么可编程对象会进行重新加载,并在导入完成后获得磁盘资源的新数值。

在这次改动前,可编程对象会在导入后卸载,导致可编程对象在使用等于运算符(==)对比时等于Null。这种重载过程仅发生在导入(或重新导入)前已经加载的可编程对象和嵌套预制件。

更多关于重载可编程对象的信息,请查看代码示例:https://gist.github.com/volblob/200d3f97c93bbafcca53a51487d94492

程序集定义文件:Version Defines版本定义

在Unity 2019.1中,资源包开发者可以通过Assembly Definition File检视窗口的全新Version Defines版本定义功能,有条件地依赖资源包中的C#代码。

软引用

现在丢失程序集定义文件引用时会被无视,不会产生丢失引用的错误,它允许开发者给asmdef程序集添加引用。

Version Defines版本定义

通过使用Assembly Definition检视窗口的全新Version Defines版本定义功能,开发者可以定义哪些C#预处理指令会根据项目有关的资源包版本范围和模块而设定,这样允许开发者在可选资源包中用#if指令处理C#代码。



小结

我们将在下一篇中介绍Unity 2019.1编辑器相关的功能改进,包括:预制件、编辑器控制台,快捷键管理器、动画、启动器等内容,敬请期待。





本文,我们将介绍Unity 2019.1正式版中编辑器以及艺术工具、影视动画、2D等方面新功能与改进。





        编辑器新功能及改进

预制件

检视窗口内的预制件资源编辑

在Unity 2019.1中,在项目窗口选中预制件时,便可在检视窗口编辑预制件资源。这意味着开发者不必在预制件模式打开预制件或把预制件拖入场景,才能编辑预制件。



快捷键管理器

Shortcut Manager快捷键管理器提供了交互式可视化界面和一组API,以便管理编辑器热键,指定它们到不同使用环境,并且可视化已有绑定设置。

为了解决键位冲突,开发者可以可视化查看多个指令是否使用相同的键位绑定,并且相应的重新映射。



你可以按下Shift + Control可以查看可用快捷键,显示出所有保留和未保留键位的列表。开发者也可以保存热键到自定义配置文件中,以便保存,分享和迁移到其它工作环境。

全新的上下文环境系统可以注册指令到编辑器窗口的特定环境之中,它允许工具开发人员定义自定义行为,通过快捷键使用自定义行为。

这些快捷键可以定义为使用环境感知状态,使它们仅在特定使用环境中可用。开发者能够可视化并处理快捷键之间的冲突,例如:如果多个资源包使用相同快捷键,编辑器会触发通知并提供选项来处理冲突。

编辑器控制台改进

我们更新了编辑器的控制台,加入点击式跟踪链接,它会转到堆栈中列出的函数调用对应的代码行,还加入了搜索工具,以便筛选控制台条目。



Quick Search快捷搜索(预览版)

全新的Quick Search快捷搜索工具可以轻松地搜索编辑器内的多种内容,例如:资源、层级窗口和设置。如果开发者希望加入自定义搜索区域,也可以扩展该工具。

请注意:这项功能目前处于预览阶段。



动画

Animation Rigging动画绑定(预览版)

全新的Animation Rigging动画绑定资源包对动画提供了更多艺术级控制,开发者可以使用一组预定义动画约束,为通用角色手动构建控制绑定层级。



在运行时中,绑定约束转换为一组Animation Jobs,这些作业会作为后期处理操作附加给控制器可运行视图。Animation Rigging动画绑定资源包基于Animation C# Jobs,允许开发者设置安全的多线程绑定,这些绑定可以程序化控制变形效果,模拟伪物理行为或附属动作,并且校正总体动画。



你可以使用资源包内的预定义约束,根据不同目的构建不同的绑定设置,然后在游戏中的合适时机动态混合这些约束,以控制最终的动画产出。Animation Rigging资源包具有可扩展性,因此开发者可以根据特定制作需求编写自定义约束。

Unity Hub 2.0 Beta现已推出

全新UI/UX架构包含许多功能,有助于处理可见性,开发者可以在Unity Hub窗口使用Sort & Search(分类和搜索)和Reveal(显示)功能进行搜索。

你可以调整Unity Hub主桌面窗口的大小,直接在Unity Hub管理Unity许可证,安装和运行Unity Hub不必首先激活Unity许可证。

新版本也加入了多语言本地化支持和国际化支持,以及对如何处理网络连接检查的一些改进。





弃用Unity启动器

由于我们现在可以使用Unity Hub管理项目,Unity内置项目启动器将不再是编辑器的一部分。



请注意:这个重要的改动会影响打开和创建项目的方法和编辑器中管理许可证的方法,因此我们希望在迭代这项转换的过程中得到用户的反馈。

编辑器命令行接口不会受到这项改动的影响,它会继续为项目管理和许可证激活而正常使用。请确保Unity Hub至少更新到v1.3版本,启动或重启Unity Hub会触发自动更新流程。

资源包管理器更新

你可以在编辑器内查看资源包和核心依赖,从GitHub代码库直接安装资源包,并行管理私有和Unity托管的注册表。新版资源包管理器包含对程序集定义文件引用的支持,详见Version Defines版本定义部分。

UI Elements

UI Elements是一个新的保留模式GUI系统,它可以让开发者快速创建和编辑UI布局及样式。

新的GUI系统借用了Web的CSS、jQuery、HTML DOM和Events事件系统的概念,以简化Unity中创建和优化UI的方法。它也提供了更好的性能和许多新功能,包括:样式表和动态环境的事件处理功能。

我们在构建新系统时考虑到了性能和可扩展性,因此它带有传统的综合C# API,使开发者可以构建、修改和交互UI。

熟悉的C# API、事件系统、CSS和XML导入格式使构建用户界面变得简单,UI Elements替代了IMGUI中扩展和创建编辑器UI的功能,并且在此后的版本将替代UGUI创建运行时UI的功能。

       艺术工具及2D改进

DCC数字内容创作工具

Sketchup Importer改进

Sketchup Importer现在拥有新的UI。我们添加了对摄像机导入的支持,可以导入Sketchup中所有摄像机类型,包括:正交摄像机、透视摄像机和Two-Point摄像机。最后,我们提升了Model模型导入器Material Tab UI的性能。

影视功能

Timeline

信号和标记

Timeline Signals(Timeline信号)是Timeline中用来交互场景对象的简单方法。通过使用信号发射器和信号资源,我们可以触发游戏中的信号接收器,然后它会向Timeline定义一组预配置反应。Signal Emitter信号发射器用于在Timeline经过特定时间点的时候,触发场景状态的改动。

我们使用了信号(Signal)而不是事件(Event),因为信号有“广播”的特点,而不会混淆已有的Unity事件和动画事件。

我们加入了“Marker(标记)”,帮助用户创建带有特定行为的自定义关键帧。标记可以在Timeline上和剪辑一样添加和处理,能够使用选取,复制粘贴和编辑模式等功能。像剪辑一样,标记也有具体类型,例如:剪辑分为动画剪辑、激活剪辑、控制剪辑等类型。

Timeline音频改进

我们对Timeline添加了大量音频方面的改进,例如:你可以在编辑Timeline时,控制或设置单独音频轨道的音调。你也可以在轨道上控制音量和声相,也可以控制每个轨道的音量和声相动画。



视频功能

Video H.265支持

Unity 2019.1加入了对H.265视频编码的支持,这可以让用户播放H.265影片,也可以把其它支持的视频格式转码为H.265编码格式。

H.265全称为高效视频编码,它是高级视频编码H.264之后的视频压缩标准。和H.264相比,在相同的比特率下,H.265会提供更好的质量。

视频录制器和播放器的完整SRP支持

Unity的Video Player视频播放器和Video Recorder视频录制器现在完全支持SRP,因此在通过HDRP或LWRP进行渲染时,视频播放器可以回放视频。

视频录制器也得到更新,可以在你使用SRP时处理来自摄像机的输入内容。在给视频播放器添加SRP支持的过程中,我们修复了影响摄像机渲染模式的主要Bug,并且修复了360立体视频的支持。

世界构建功能

Scene Visibility场景可视化工具

你可以使用Unity的SceneVis(场景可见性)控制功能在场景视图快速隐藏和显示对象,不必修改对象的游戏内可见性。随着场景内容的增多,我们经常需要临时隐藏或隔离特定对象,以便无障碍地进行查看和编辑。

SceneVis会通过层级窗口工具和键盘快捷键来实现该功能,并使用工具栏开关来快速启用或禁用效果。



2D功能

Sprite Shape功能改进

Sprite Shape资源包加入了多项改进,例如:你可以让Sprite Shape的最终2D碰撞体在形状上更符合精灵的外观效果,允许添加更适合Sprite Shape Renderer的多边形碰撞体和边缘碰撞体。

我们为形状控制点加入了非镜像的连续切线,允许创建弯曲形状,以便更精确地实现理想效果。



2D动画功能改进

使用新版2D Animation V2.1版资源包在编辑器内和运行时蒙皮精灵时,你会注意到性能提升,因为新版资源包是通过C# Job System和Burst编译器构建的。如果屏幕上有多个使用该工具制作动画的角色,此次更新也提升了这种情况下的性能。

请注意:新版2D Animation资源包不向后兼容Unity 2018.3,对于使用Unity 2018.3的项目,请继续使用2D Animation资源包V2.0。



2D物理功能

所有2D物理查询现在允许提供结果缓冲区作为.Net “List<T>”,而之前版本需要使用数组。它和数组有相同的优点,如果列表的容量足够包含查询结果,就不会分配任何内存。

它还提供了额外的优点:列表容量会自动增大(相关内存分配也会随之变化),以确保它能包含所有查询结果,同时仅分配需要的内存。如果重用相同的列表,内存分配会保持最小值,或不发生任何内存分配。

小结

预告:我们将在下一篇中介绍大家非常关心的Unity 2019.1图形的功能改进,包括:粒子、Shader Graph着色器视图、轻量级渲染管线LWRP、高清晰渲染管线HDRP、Visual Effect Graph、光照改进多项内容。





本文我们将介绍Unity 2019.1正式版中图形相关功能与改进,这也是本系列最后一篇文章。





                       图形

粒子

C# Job System支持

你现在可以使用C# Job System处理粒子数据,不必在脚本和本地代码之间复制粒子数据。

设置时,请创建基于IParticleSystemJob的作业结构,使用SetJob将它附加给粒子系统,在执行本地粒子更新后,该作业结构会从线程中调用。

网格改进

Unity 2019.1包含对网格粒子的一些小改进,例如:通过脚本可以进行查询和指定到每个粒子的网格。

ParticleSystem.Particle结构现在包含获取和设置网格索引的方法。Custom Vertex Streams自定义顶点流有新的Mesh Index流,允许你发送网格索引到着色器,你可以使用它根据独立网格编写着色器代码。

Texture Sheet Animation包含新的Row Mode,它会基于粒子的网格索引选择动画,它可以指定特定动画到效果的每个网格。

Shader Graph着色器视图

Unity 2019.1中,Shader Graph着色器视图脱离预览版,可用于正式生产制作流程。

Shader Graph着色器视图基于可视化节点构建着色器,从而让艺术家不必编写代码就能够轻松自定义外观效果。你可以拖放节点并实时查看结果。无论对于着色器专家还是对于新手而言,即时反馈都让调试和调整过程变得简单。

Shader Graph着色器视图的一个重要新功能是Nested Sub Graphs嵌套子视图功能,它允许你可视化创建自定义节点。

Sub Graphs子视图也可以进行嵌套,因此开发者可以为项目或工作室定义自定义节点内容库。这为技术美术提供了对整个着色器管线的灵活无损控制,从而为实验和创作提供了动力。

轻量级渲染管线LWRP

在Unity 2019.1中,轻量级渲染管线LWRP可用于正式制作流程。LWRP是预制的可编程渲染管线SRP,针对提供高性能图形渲染进行了优化。LWRP具有高度灵活的可配置性,允许开发者在全局或根据摄像机控制渲染设置。

LWRP可以帮助开发者自定义效果设置摄像机深度和颜色纹理,并与Shader Graph着色器视图集成,这种高度可扩展的即插即用架构可以让你创建出自定义渲染通道。

你也可以重写渲染器来实现特定效果,并可针对不同平台调整渲染过程。LWRP的源代码可以在GitHub获取,以便开发者进一步自定义LWRP。

在Unity 2019.1中,我们也添加了Dynamic Scaling动态缩放支持,和UI保留功能,它有助于在高DPI屏幕的设备上渲染游戏时保持UI的清晰效果。

  我们增加了SRP Batcher支持和对粒子着色器的多项改进,包括:软粒子和变形效果。我们也对地形着色器和烘焙Lit着色器进行了改进。

Unity 2019.1新增了Custom Renderer自定义渲染系统,以实现更好的进行自定义效果。我们添加了对Visual Effect Graph的初步支持,初始的LWRP支持可用于Unlit着色器,仅限于支持计算功能的平台。

了解LWRP更多信息:https://docs.unity3d.com/Packages/com.unity.render-pipelines.lightweight@5.10/manual/index.html

高清晰渲染管线HDRP(预览版)

HDRP是预制的高保真度可编程渲染管线,旨在面向兼容计算着色器的现代平台。它为开发者提供了用于创作各种高分辨率内容的工具,游戏和演示项目。

在Unity 2019.1中,我们添加了多项新功能,并为艺术家改进了工作流程。这些改动的缺点之一是此前制作完成的部分数据可能不兼容该版本,需要进行重新制作。为了帮助你从Unity 2018.3更新到Unity 2019.1,我们编写了一个迁移指南,在后续微信文章中,会进行分享。

Unity 2019.1版本的HDRP支持PC平台的DX11和DX12、Mac平台的Metal、PC和Linux平台的Vulkan、Xbox One和PS4。HDRP会继续处于预览阶段,直到Unity 2019.3发布。

请注意:Unity 2019.1在HDRP模板提供HDRP 5.7.2版本资源包。为了使用这里列出的新功能,我们建议在安装模板后更新到HDRP 5.12.0或更高版本资源包。

改进平台支持

Unity 2019.1改进了对Linux和Vulkan API的支持,尽管有一些不足之处,但总体性能还是得到了提升。

可用Double-wide双宽VR

Double-wide是VR的缓慢路径,它会并列渲染二个视图。Unity 2019.1提供更为优化的单通道实例化版本,它支持所有HDRP效果,包括:折射、变形、次表面散射、贴花和体积效果。

更多支持功能的详细信息,请访问:https://github.com/Unity-Technologies/ScriptableRenderPipeline/wiki/VR-in-HDRP

提升性能

HDRP现在使用的Color Buffer格式是RGB111110Float,而不是ARGBHalf,从而实现更快的着色器执行效果和提升总体性能。

在Unity 2019.1中,我们使用快速路径处理只有一个定向光和简单材质的情况。为了节省CPU时间,运动向量对象不再通过深度预处理通道进行二次渲染。变形效果通过模板缓冲区得到优化,经过改进的着色器变体移除功能将减少构建时间。

Unity 2019.1支持Software Dynamic分辨率,它允许开发者在每个平台以不同于UI的大小渲染世界,面向支持平台提供的Hardware Dynamic Resolution硬件动态分辨率支持将在之后推出。你只需要通过C#脚本取得理想分辨率即可。

透明材质现在可以使用“Low Resolution”渲染通道名称,使材质可以渲染为四分之一分辨率,并且呈现类似的视觉质量,它对于大型粒子的Overdraw性能很有效。



改进的UI和摄像机支持

HDRP现在对所有UI元素的多个版本提供更好的支持、文档和工具提示。HDRP还增加了对Multi ViewPort多视口支持,允许你在相同目标渲染多个摄像机,以实现分屏渲染和其它类似行为。



FrameSettings和HDRP资源设置经过了重构,以实现更快的计算速度和更易用的版本,现在它会提供HDRP资源设置对内存和着色器变体的影响信息。我们也加入了SMAA (SMAA 1X)抗锯齿方法的支持,它提供了介于性能(FXAA)和质量(TAA)的中间方法。

After Post-Process渲染通道现在可用于Unlit着色器,在经过后期处理通道后,HDRP会渲染使用该渲染通道的对象,这意味着后期处理不会影响该通道的效果,该通道在渲染3D UI时很实用。



调试模式改进

HDRP现在包含一个Debug选项,冻结用来剔除的摄像机,但摄像机仍可以从渲染的视角移动,让你看到特定场景视图中被剔除的部分。Debug选项也提供了Material PBR验证器和Emissive颜色重写。

渲染管线向导

渲染管线向导会帮助你配置项目设置,以便在使用HDRP时正常工作。它会高亮不正确的配置部分,提供Fix按钮来校正设置,你也可以在此设置新的自定义场景。



其它HDRP改进

贴花效果得到加强,提供更好的Gizmo控制功能,Shader Graph着色器视图支持和不透明贴花的Emissive支持。Recorder录制器现在得到了不错的支持,允许开发者从HDRP录制影片。利用了Sony Pictures Imageworks最近的研究成果,棉毛的Fabric光照模型得到改进。



  体积雾经过优化,变得更加准确。我们还更新了密度体积的Gizmo。Light layers光照层允许你标记光线和对象,以便仅让带有相同标记的对象接受特定光源的光照,该功能现在已经有完善的功能,支持正确控制阴影。

次表面散射的Diffusion Profile漫反射配置文件在Unity 2019.1中发生变化,此前,每个项目的Diffusion Profiles List仅限于显示16个配置文件。Diffusion配置文件现在是独立的资源,可以进行分享和发布,每个视图限制16个配置文件。

当前视图中使用的配置文件列表由体积设置控制。Unity 2019.1会自动从旧Diffusion Profile系统迁移数据到新的系统,但不会为Shader Graph着色器视图做相应处理,因此你需要重新制作相关漫反射配置文件。

该版本添加了对透明材质上Motion Vectors运动向量的支持。透明材质可以写入自带的速度,重写之前速度缓冲区的内容,这对头发等Alpha端材质很有用。

新着色器和Shader Graph支持

Unity 2019.1为Shader Graph着色器视图提供多个新的Master Nodes主节点。新的HD Unlit Master Node可以使用跨管线Unlit着色器无法使用的完整功能,例如:变形功能、渲染通道选取功能。



我们还加入了新的AxF Master Node,用于支持X-Rite AxF标准材质格式。AxF材质仅在结合AxF导入器时有用,AxF导入器是Unity Industry Bundle的一部分。AxF导入器会自动填充AxF材质的所有设置。



Unity 2019.1提供了新的Hair Master Node,它使用了对艺术家友好的Kajiya Kay光照模型,具有更好的节能性和更大的灵活性。



HDRP和Shader Graph

我们添加了许多HDRP专用的新节点和新行为。现在HDRP可以采样Scene Color,包括模糊Mipmap,用来模拟粗糙的折射或变形效果,颜色仅适用于透明对象。

Scene Depth节点可以访问原始、线性(0~1之间)或眼部深度。Lit Master Node上添加了Depth Offset输入,从而在视图向量的方向朝内或朝外扩大深度,在使用新的Parallax Occlusion Mapping节点获取光线的阴影时,这项输入很实用。



此外,所有HDRP Master Nodes主节点现在都支持烘焙GI的重写。为了启用该功能,使用Master Node设置上的Override Baked GI复选框,它会添加二项输入到主节点:Baked GI和Back Baked GI。

这将允许你提供自定义烘焙GI,分别用于间接漫反射光照和透光效果,或者结合Baked GI Node,使你可以修改它。Baked GI属性的默认值等于Baked GI节点的默认输出值。



光照质量和控制

我们对光照进行了许多改进。此前光照无法使用正确的现实或物理数值,因为曝光范围和精度不允许。

光照计算现在使用Pre-Exposure预曝光,这意味着曝光不会在后期处理期间应用在帧的最后,而是会应用到光照本身,这样大幅提升了精度,允许使用较大数值的光强度,例如:太阳光的强度。

此外,Sky和Emissive等光线现在使用的单位是EV100,而不是EV,该单位常用于照明图表上参考值的单位。由于与Unity 2018.3的光照单位的差异,因此将项目升级到Unity 2019.1意味着可能要调整部分光强度。

Lit/Unlit着色器和Lit/Unlit Master Node上的Emissive属性经过改进,支持EV100和光亮度单位,提供额外的Exposure Weight控制和Emission节点。这项控制可以强制对象产生泛光效果,即使处于正确曝光下,例如:使对象在明亮的日光下产生泛光。



矩形区域光已经加强,支持光线遮罩和近似区域阴影。该功能比较消耗性能,应该主要用在高质量画面模式或影视效果。阴影遮罩支持已经添加,提供高质量的烘焙柔和阴影,同时保持镜面高光。



反射系统改进

GPU现在可以烘焙反射探针,加速烘焙过程。反射探针和光照工作流程集成,以简化反射探针的烘焙过程,让开发者在光照窗口烘焙所有加载的反射探针。

实时平面反射支持

实时平面反射支持已经加入。在回放期间,HDRP仅渲染可见的实时反射探针和平面探针,HDRP在FrameSettings中对实时渲染和离线渲染提供了单独的控制功能。

HDRP中后期处理效果的本地集成

在Unity 2019.1中,我们把后期处理直接集成到HDRP中,包含一组基于计算着色器的自定义后期处理效果,开发时我们特别考虑了性能和质量,它适用于高端主机和桌面平台。这套后期处理工具的新集合,兼容RT Handle系统,支持动态分辨率功能。

请注意:新的后期处理设置不兼容后期处理特效包Post-Processing Stack V2,这意味着你必须在升级项目到Unity 2019.1时,重新制作所有后期处理效果。这也意味着HDRP不再支持后期处理特效包Post-Processing Stack V2。

FXAA、SMAA、Temporal抗锯齿和8位抖动效果提供了后期处理抗锯齿效果,有助于平滑渐变并移除8位色带,它们可以在摄像机上直接设置。色差,镜头畸变和晕影效果与后期处理特效包Post-Processing Stack V2上的对应效果相同。

Film Grain经过重新制作,可以使用粒度查询纹理,而不是程序化噪声。我们还添加了新的Panini Projection效果。Bloom 泛光效果现在使用基于预曝光值的阈值,这意味着只有过度曝光的对象会产生泛光效果,而不是在高于指定强度的对象产生泛光效果。

Color Grading颜色分级有来自后期处理特效包Post-Processing Stack V2的改良版“HDR Grading”模式。大型颜色分级面板分离为独立的体积组件,以保持检视窗口的简洁。



Depth of Field景深效果经过完全重新设计,现在提供参数化光圈形状控制功能,允许你轻松配置光圈叶片数量、弯曲度和桶状剪裁和合成变质,该效果与分辨率无关。

Motion Blur动态模糊也完全重新设计,提升了质量和性能,这包括全新算法改动,它可以实现更精准和更广泛的模糊效果,同时减少伪影。



在Unity 2019.1中,你可以从HDRP访问深度和法线缓冲区。视觉效果也可以访问HDRP内部的渲染缓冲区的内容,例如:主摄像机的深度或颜色,并把它们在模拟通道用作输入纹理。这可以帮助你轻松设置深度缓冲区碰撞和粒子的场景变形等功能。

Visual Effect Graph(预览版)

Visual Effect Graph受到主流电影特效软件的启发,提供了灵活且易于使用的节点系统,能够帮助艺术家为游戏等交互式内容快速创作惊艳的视觉效果。

在Unity 2019.1中,我们加入了多项改进和新功能,提供多个示例项目,帮助你学会创作全新的视觉效果。

新的Prewarming功能允许你在特定时间预先模拟效果的一部分,使它逐渐达到完整状态。这可用于创作各种效果,例如:随时间积累的烟雾。我们也更新了光照探针和光照探针代理体积。

噪声函数的改进使用了柏林噪声,包括柏林噪声数值,细胞噪声和卷曲变化。生成时间和生成数量算子可以统计前一帧同时生成的粒子数量。



面向Vulkan的渲染插件支持

我们现在面向Vulkan提供渲染插件支持,详情请访问:


GPU光照贴图(预览版)

GPU光照贴图现在处于预览版阶段,加入了更多功能和平台支持。现在GPU光照贴图可以在MacOS系统和Linux系统使用,支持材质上的双面GI标识,以及网格上的阴影投射和接收。

如下图所示,我们使用GPU光照贴图烘焙来自ArchVizPRO制作的场景资源。



烘焙功能现在默认使用和编辑器相同的高性能GPU,我们可以使用命令行把它改为不同的GPU。

了解GPU光照贴图更多信息,请访问:https://docs.unity3d.com/2019.1/Documentation/Manual/GPUProgressiveLightmapper.html



为Optix AI Denoiser加入支持

Optix AI Denoiser是一种基于深度学习的降噪器,它使用路径跟踪图像库进行训练。这是对过滤选项的重大改进,在样本数量较少的情况下,它可以灵活应变漏光和模糊情况。它可以结合其它过滤器,实现更加平滑的光照贴图。

使用新的Denoiser降噪器有助于显著减少样本数量,实现比之前更快的烘焙速度。Optix AI Denoiser支持适用于Windows系统,兼容NVIDIA GPU。



关键环境多重采样(MIS环境)

MIS Environment是一种对Cubemap /HDRI中最重要区域进行采样的新方法。这项技术会避免发射大量GI光线到半球体,把光线聚焦于重要区域,例如:太阳明亮的位置。

通过使用该功能,我们可以使用非常不均匀的标准HDRI环境贴图烘焙环境。新的Environment Samples(环境采样)参数被添加到Lighting光照窗口,该值控制每个光照贴图体素直接跟踪到环境的光线数量。





其它光照改进

光照探针Gizmos不会受到曝光校正的影响,这样在使用HDRP和高强度光照时,会简化光照探针的迭代。



通过使用新的Limit Lightmap Count(限制光照贴图数量)参数,你可以指定为特定对象组生成的最大光照贴图数量。在为资源有限的移动平台开发游戏时,该参数会特别有用。

Realtime GI: Async Readback使CPU不必等待GPU回读,它可以提高性能,降低CPU峰值。Auto Generate不会在新场景默认使用,我们在底部状态栏添加了链接,用来表示是否处于Auto Generate自动生成模式。



移除LookDev

用于查看资源的实验性功能LookDev已被移除,我们会继续改进该功能,在今年晚些时候重新添加到SRP,并提供LWRP和HDRP支持。

编辑器内的异步着色器编译

Unity编辑器会推迟着色器编译过程,直到渲染过程首次需要特定着色器变体。但是这可能会导致编译器停顿现象,因为着色器编译器的处理需要大量时间。

新的Async Shader Compilation异步着色器编译功能可以解决这种停顿现象,它会分离编译过程和渲染过程,使用纯蓝色虚拟着色器进行替代,直到编辑器完成编译过程。这是仅限于编辑器使用的功能,不会影响游戏,而是会加快编译时间。

高影响值的蒙皮权重

你现在可以对每个顶点使用32个骨骼影响,通过蒙皮网格渲染器的API,最多可以使用255个骨骼影响。这样会在运行时保持蒙皮权重保真度和外部程序的原始内容一致。

高影响值的蒙皮权重功能特别适用于基于骨骼的面部绑定,嘴角和眼睛等精细的区域需要超过4个骨骼影响。它也会提高使用平滑蒙皮分解的绑定质量,从而对较少骨骼实现更为平滑的结果。

      Unity版本与发布计划

Unity 2019.2 Alpha版已开放下载,提供给用户了解新功能及测试使用。

下载Unity 2019.2 Alpha版:https://unity3d.com/unity/beta

未来几周,我们将发布Unity 2018.4 LTS长期稳定支持版本,帮助开发者在坚实的基础上开发稳定的作品。



小结

Unity 2019.1正式版功能介绍终于为大家介绍完毕,非常感谢每一位能够完整阅读本系列文章的所有用户。





评分

参与人数 2元素币 +32 活跃度 +10 展开 理由
元素界王神 + 20 2020 的也来介绍下哈!
源支始 + 12 + 10

查看全部评分

2019-11-26 13:02:39  
 赞 赞 0

使用道具 登录

2个回答,把该问题分享到群,邀请大神一起回答。
2#
感谢楼主分享!
回复 收起回复
2021-2-23 11:04:39   回复
 赞 赞 0

使用道具 登录

3#
感谢楼主分享!
回复 收起回复
2021-2-23 11:04:44   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

手机游戏引擎手游引擎Unity3D技术
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表