摘自官方博客:https://blogs.unity3d.com/cn/2017/03/31/5-6-is-now-available-and-completes-the-unity-5-cycle/
Unity5.6功能亮点简介
大量光照方面的提升
Unity 5.6包括Progressive Lightmapper预览版,与当前的Enlighten解决方案相比,在你尝试不同的光照场景时可以提供即时反馈,并且迭代速度更快。Unity 5.6还提供光照模式(Light Modes),为静态和动态对象提供各种实时和烘焙光照的混合方式。
改进的图形性能
GPU实例提高了对程序实例的支持,以非常低的成本实现了许多同类对象构成的新类型特效,而随着Compute Shader for Metal的添加,您现在可以通过利用Apple iOS和MacOS上的芯片组的原始功能,为您的游戏添加更多细节。
支持Vulkan
Vulkan的支持提高速度,同时减少驱动程序开销和CPU工作负载; 这让CPU可以自由地进行额外的计算或渲染,并节省了移动平台的电池寿命。
粒子系统的大量更新
5.6大大扩展了粒子特效的范围,给用户提供了更多的选择和控制。这次更新也显著的提高了粒子系统的性能。
新的视频播放器
一个新的多平台播放器可以播放4k视频,允许开发者去构建一个360度视频的VR体验。
导航系统的改进
改进AI和Pathfinding工具(也称为NavMesh系统)扩展了操作多个导航网格和代理的可能性。而且,用于程序生成或动态加载内容的新工具可以为角色导航提供全新的用例集和程序选项。
新的2D工具和改进
Unity5.6添加一整套2D产品特点,以至于给你带来更多的控制和使创建复杂的2D对象变得更简单。新的产品在2D物理方面启用新类型的游戏设置和特效,包括功能齐全的粒子特效和2D对象的交互。
TextMesh Pro
在Unity Asset Store中,最优秀的工具之一现在可以免费供5.3或者其更高的版本用户使用,很快将会被整合到Unity当中。TextMesh Pro的高级文本呈现出带有动态视觉文本的样式,也大大提高了对文本格式和布局的控制。
性能报告和调试的改进
除异常报告外,性能报告现在为iOS收集原生崩溃。物理调试可视化和分析器的改进使得在游戏中找到性能问题的根源变得更加容易。
新的平台
在5.6中,你可以无缝的发布到Facebook Gameroom,以及Goolge DayDream 和 CardBoard以Android 和 iOS。任天堂的Swich现在也可以支持。
Unity Collaborate(测试版)
我们添加新的选择,在发布更改的时候更好的控制你们的合作项目。
试验性的支持WebAssembly
在5.6我们带来试验性的支持WebAssembly,一个新的跨浏览器技术,旨在帮助提高Unity WebGL 的体验。
5.6的新内容是什么?
1.Progressive LightMapper(预览)
5.6最值得注意的特色功能之一是基于路径追踪的新的解决方案Progressive Lightmapper。它允许在烘焙的照明和ETA上进行快速的迭代。在5.6中,它可以作为预览功能。
当我们推出Unity 5.0时,Enlighten取代Beast提供烘焙和实时全局光照(GI)。然而,Enlighten不适用于烘焙光照的所有情况,因此需要Progressive Lightmapper提供解决方案。
我们想要创建一个解决方案,不仅能给烘焙光照更好的效果,还能给光照工作师一个更好的工作流程,包括快速和可预测的迭代能力。
在以前发布的Unity版本中,改变场景需要进行新的烘焙,烘焙的结果只可以在烘焙结束之后展示出来。在5.0中,Enlighten允许Unity使用预先计算的实时GI来提供一个最终烘焙场景的预览。
改变灯光,放射性材料和反射率值可以直接预览。然而,对几何形状的修改仍然需要重新烘焙,在此期间您不回得到任何反馈。
例如,当在烘焙阴影或者亮度反弹的级别上迭代时,需要等待几分钟,甚至更长时间,这让人很沮丧。这最终减少了在给定的时间内可以完成的迭代次数。因此,它限制了您可以通过烘焙光照实现的质量。使用Progressive Lightmapper,你几乎可以得到及时的反馈。虽然一开始在场景渲染的时候会产生许多噪点,但是它会很快的改善在Scene视图下,允许艺术表现形式变得高质量和更加的自由。
一旦Progressive Lightmapper能与基于Enlighten的光照贴图烘焙达到同样的效果,预览标志将会被移除。这将在5.6的循环周期发布,支持光照模式、烘焙LODs和减少内存的使用将尽快的到来。
2. 新光照模式取代混合模式灯光
光照模式替代混合模式灯光,这使得将烘焙的照明和实时的照明结合起来成为可能,包括妥善处理烘焙和实时的阴影。我们提供几个预设设定的场景,包括完整的实时GI照明、部分烘焙的照明和完全烘焙的照明。我们增加了烘焙阴影遮罩的能力,提供“超时实时阴影距离”的阴影。这大大减少了实时阴影距离对性能的消耗。对远距离的阴影与实时反射高光也达到了更高的视觉保真度。实时阴影消退已经被添加到每一个光照类型和渲染路径中,并且从实时阴影转换到阴影遮罩是无缝的。
混合灯光模式:
在间接烘焙的模式下,混合灯光表现为实时动态灯光,并附加烘焙光照贴图和光线探测器采样而来的间接光照。像雾一样的效果可以被用于超越实时阴影距离,否则阴影就会消失。
在Shadowmask模式下,混合灯光是实时的,从静态物体被投射的阴影被烘焙成阴影遮罩的纹理和光线探测器。静态物体的阴影从这个预计算的数据中得到。动态物体的阴影通过阴影距离的阴影图接收。间接的照明是由烘焙贴图和光照探测器取样的。这种模式极大地减少了渲染阴影的次数,同时提供了距离的阴影,然而,从静态对象到动态对象上的阴影也不是很好。
Distance Shadowmask是一种混合模式,允许动态对象接收来自静态对象上高质量的阴影,以及超越实时阴影距离的预计算阴影。为此,静态对象的阴影在阴影遮罩贴图和光照探测器中进行预计算。然而,在阴影距离内,动态和静态对象都使用实时阴影贴图进行渲染,预计算阴影被使用超越距离的平滑过渡。间接光照从预计算光照贴图和光照探测器中取样。
在Subtractive模式下,间接光照被烘焙到光照贴图中,因此静态对象不会有来自混合灯光的反射和光滑的高光。然而,动态对象在实时情况下将会被照亮,并通过光照探测器从静态对象上接收预计算的阴影。主定向光允许动态对象在静态对象上投射减色实时阴影。
3.支持Vulkan
Vulkan是新一代的图形和计算API,可在台式机和移动平台上提供高效、跨平台的现代GPU功能。将图形性能提升到一个新的水平,并增加了移动设备的电池寿命。
它通过多线程并行来充分利用多个CPU内核,在使速度提高的同时,减少了驱动程序开销和CPU工作负载;,使CPU可以更好地进行额外的计算或渲染。 总而言之,我们已经看到Unity的渲染性能提升了30-60%,而无需处理Vulkan API的任何细节。
Vulkan的另一个优点是比使用OpenGL ES渲染相同内容的功耗更低。 Vulkan消耗的平均电量是OpenGL ES的88-90%,因此可以增加“10-12%的额外播放时间”,如下图所示,您可以看到相对于OpenGL ES的功耗。
Unity5.6在Android、Windows和Linux上添加了对Vulkan支持,我们也初步添加了Vulkan对OpenVR的支持。
4.TextMesh Pro 现在免费,即将内置到Unity当中。
在GDC2017上,我们宣布Unity Asset Store中表现最出色的产品之一TextMesh Pro将称为Unity中的一部分。
TextMesh Pro可以替代Unity现有的文本组件,例如Text Mesh和UI Text。TextMesh Pro使用有向距离场(SDF)作为其主要的文本渲染管线,使得可以在任何点大小和分辨率下清晰的呈现文本。使用一组利用SDF文本渲染能力的自定义着色器,TextMesh Pro 使简单改变材质属性来动态改变文本视觉外观变得可能。添加视觉样式例如扩张,轮廓,软阴影,斜面,纹理,发光,并创建/使用材质预设来保存并调用这些视觉样式。
TextMesh Pro提供对文本布局和格式控制的改进,使用户可以控制字符,文字,行和段落间距,支持字距和基本连字,以及额外的文本对齐模式比如对齐和刷新文本。超过30个富文本标签可让用户控制边距,缩放,用户自定义的样式,链接,甚至支持使用多个字体和图形和文本混合。
我们已经开始着手把TextMesh Pro的功能集成到Unity 2017中,将定期更新功能和兼容性来继续支持该资源,确保TextMesh Pro用户无缝体验。
在这之前,你可以从Asset商店下载新的免费版TextMesh Pro(需要Unity5.3甚至更高版本)。
5.图形改进:程序实例
5.6版本也包括对图形各方面大量的改进,包括粒子系统和GPU Instancing。
在Unity 5.4和5.5中引入的GPU Instancing允许您在单个绘制调用中使用实例着色器绘制相同网格的许多实例,通许仍允许每个实例拥有各自的数据集,包括位置,旋转和颜色。当CPU限制你的帧速率的因素,实例化可以提供显著的性能优势。为了在标准着色器上进行实例化,在材质设置上勾选启用实例。或者,您可以手动添加实例支持你自己的着色器。
在5.6,我们现在支持Procedural Instancing,其中实例数据由着色器中的自定义源提供,而不是来自Material Property Block。我们也支持DrawMeshInstancedIndirect,它的绘制参数有ComputeBuffer提供。假设CPU是限制你游戏速率的因素,这种通过脚本渲染实例的方法几乎没有CPU开销,这导致了巨大的性能提升。
参考我们的文档,了解如何开始。(参考文档地址 (https://docs.unity3d.com/560/Documentation/Manual/GPUInstancing.html))
6.图形的改进:粒子
在Unity5.5中,我们可以为粒子添加自定义数据,这些数据可以通过脚本和着色器进行访问。在Unity5.6中,我们对这个系统进行了扩展,以至于你可以直接地配置这些数据在Inspector面板下,很容易的创建曲线和颜色在脚本和着色器中以驱动自定义逻辑。更进一步,本模块中定义的颜色可以使用高动态范围,这在之前粒子系统中的是不可能的。
我们也改善了工作流程,允许您并行处理多个粒子系统。
Cone,Circle和Single Sided Edge形状现在有了新的参数来控制粒子生成。以前,所有粒子随机生成,要么在表面,要么在体积内。现在,粒子可以循环生成,或者增量生成。
现在可以为粒子爆发发射指定数量和间隔时间。以前,每个爆发仅仅可以触发一次,并且最多可以触发4次。在新的系统中,您将获得最多8次爆发,而且每次爆发可以被重复任意次数。
最后,现在在独立播放器中粒子实例化速度快了两倍多。
我们添加了一个基于物理的渲染材质验证器,确保Albedo和Specular的值在可接受的范围之内。Albedo的值也可以根据用户定义的亮度范围进行验证。
7.图形的改进:Compute Shader for Metal
我们也在5.6中为IOS和macOS添加了Compute Shader for Metal支持。计算着色器由HLSL编写就像Unity中其他的图形API一样,它们最终都会转换成Metal Shading Language(目前仅限Metal v1.1)。如果你希望UAVS重写现有的常规着色器,请务必使用pragma target 4.5代替5.0。我们还在编辑器中添加了使用Metal渲染后端的实验性支持。
8.新的后处理栈
新的后处理栈已经发布,支持Unity5.6(和5.5)。你可以免费从Asset商店中获取免费的新的后处理栈插件包。
它将一套完整的图像效果组合到一个后期流程中。这种做法的优点是:
它具有以下效果:
该工具还包括一组监视器和调试视图,以帮助您正确设置效果并调试输出中的问题。
9.支持4k播放的新的视频播放器
Unity 5.6包含一个全新的视频播放器,全新架构平切添加了硬件加速。 即使是普通的手持设备,现在也可以播放支持Alpha通道的高分辨率4K视频。 它旨在使用编辑器和目标平台的视频硬件功能。 它支持目前被广泛使用的H.264/AAC编解码器,在无法使用H.264/AAC的情况下则会使用VP8/Vorbis。 将来我们还会添加对其他编解码器的支持。
新的视频播放器就是一个组件,用于播放您在场景中的电影,提供沉浸式的互动视频体验,高品质的硬件加速性能以及360度视频播放的支持。观看Unite2016 Keynote视频,来了解它的工作流程。
10.导航系统:改进寻路和AI
在Unity5.6中,我们引入了底层API,目的是解决对以前版本的限制。这些变化为角色和AI导航提供了一整套新的用例和游戏选项。引入了底层API,我们也提供了4个简单使用的新组件,这些组件已在GitHub中开源。
https://github.com/Unity-Technologies/NavMeshComponents
能将Unity导航系统应用到动态生成或动态加载内容是开发者强烈需求的功能。在5.6的新功能中,它不仅变得可能,而且更简单更有效。简单地加载和生成你的场景,然后叫导航系统进行烘焙。
在新的功能设置里面,NavMesh现在是基于组件,而不是只应用于整个场景。这个新的构造允许你每个场景有多个NavMesh。另外,我们现在可以有不同的代理类型。你可以简单的调整不同角色的半径,高度和移动设置。
另外引入了NavMeshSurface组件,我们的NavhMesh可以与游戏对象对齐而不是世界坐标轴。这意味着我们可以在3D空间中,确定我们的导航网格在任何方向上。对于想要使用我们导航工具开发的2D游戏或者想要对其导航系统与Y轴分离开来的开发者而言,这是一个巨大的改进。
因为现在NavMesh的烘焙是通过组件来进行,它不再被限制在一个完整的场景中。这意味着我们可以选择烘焙需要的哪些元素或者我们可以选择特定的烘焙体积。如果你曾经因为关卡太大而无法烘焙,那么现在你可以为你的游戏简单有效的生成NavMesh的数量。这样在回放过程中节约了大量的烘焙时间和内存开销。使用这个方法,只有改变的区域将会重新烘焙,因此它是多线程的,它是非常高效的。
11.新的功能来改进2D游戏的开发流程
我们更加努力的工作来提高对2D游戏的支持,很开心的宣布几个新的2D功能在5.6版本中。
排序组组件提供在同一排序层上将其他对象分开渲染一组对象的功能。它确保排序组的子物体的所有渲染器被排序在一起,使其可用于管理复杂的场景。
通过将Transparency Sort Mode设置到自定义坐标轴,新的Axis Distance Sort可解决Z轴排序问题。
在Sprite Editor窗口新添加Outline Editor。它可以用于自动生成可选择的细分曲面等级,手动编辑精灵的网格形状。你也有能力通过选择紧密地网格接近实际的图像来控制细分曲面的质量。
我们为SpriteRenderer引入了9-Slice Sprite,这是一种2D技术,允许你在游戏素材中没有准备多种资源的情况下,而重复使用可变维图片。它类似于UI中使用的9-Slice。这允许你拉伸或者重复一张图片的定义区域来改变尺寸,为创建平台和背景提供一个快速技术,同时仍使用小量的纹理内存。
最后我们在Texture2D中还添加了EncodeToEXR 。这样可以允许您将任何HDR纹理的内容保存为一个磁盘上的EXR文件。类似于为处理非HDR纹理设计的EncodeToPNG和EncodeToJPG。