Unity通用渲染管线支持

March 9th, 2020

通用渲染2D演示动画

我们很高兴地宣布spine-unity运行时支持Unity 2019.3的通用渲染管线及其2D渲染器功能集!

通用渲染管线(URP)是一个预构建的可编写脚本的渲染管线(SRP),经过优化提供高图形性能,是轻量级渲染管线(LWRP)的继承者。可从移动平台无缝扩展到高端PC和控制台。它新增了一个2D渲染器工作流,专门为2D游戏设计提供了一个灵活的2D灯光系统。

现在提供一个额外的Unity包管理器(UPM)包com.esotericsoftware.spine.urp-shaders下载,通过增加URP支持来扩展spine-unity运行时。

为何提供一个单独的包

Unity已将许多可选模块移到了新的Unity包管理器(UPM)生态系统中。其URP基础着色器文件也以Universal RP名字以UPM包形式提供,而非每个新Unity开箱即用项目的一部分。

如果在项目中没安装Unity的Universal RP包,将URP Spine着色器包含在我们的spine-unity运行时中将导致混乱的错误消息和更多的设置步骤。而以UPM包形式提供我们的URP Spine着色器,就会自动解决这种依赖关系,可以更容易使用这一额外功能。

接下来,我们将为其他依赖Unity可选包的spine-unity功能提供单独的UPM包。

安装

可通过此下载页下载该UPM包或在Git存储库的spine-unity/Modules子目录中找到它。有关如何安装该包,请按照我们的spine-unity文档页中的安装扩展UPM包 指南来安装。

URP示例

URP着色器选择

此包中含有与上方GIF动画类似的两个示例场景供参考,位于com.esotericsoftware.spine.urp-shaders-3.8/Examples/2D/URP 2D Shaders.unitycom.esotericsoftware.spine.urp-shaders-3.8/Examples/3D/URP 3D Shaders.unity。它们演示了如何分别在2D和3D渲染器设置中使用URP着色器。注意这些场景对更改当前UniversalRenderPipelineAsset设置的反应,在项目设置 - 图形下设置。

使用

spine-unity运行时Spine/Skeleton LitSpine/Sprite/Vertex LitPixel Lit中的标准Spine着色器与通用渲染管线不兼容。相反,Spine通用RP着色器包提供专为通用渲染管线构建的着色器,包括2D渲染器支持:

  1. Universal Render Pipeline/2D/Spine/Skeleton Lit

    Spine/Skeleton Lit着色器的通用2D渲染器变本。

  2. Universal Render Pipeline/2D/Spine/Sprite

    Spine/Sprite/Vertex LitPixel Lit渲染器的通用2D渲染器变本。

  3. Universal Render Pipeline/Spine/Skeleton

    Spine/Skeleton渲染器的通用变本。

  4. Universal Render Pipeline/Spine/Skeleton Lit

    Spine/Skeleton Lit渲染器的通用变本。

  5. Universal Render Pipeline/Spine/Sprite

    Spine/Sprite/Vertex LitPixel Lit渲染器的通用变本。

着色器可像往常一样通过资源属性中的着色器菜单分配给资源:

URP着色器选择

通用渲染管线着色器将遵循你在项目设置 - 图形下指定的`UniversalRenderPipelineAsset”设置。下面的GIF显示了场景中的人物是如何受到这些设置影响的:

项目设置 - URP资产

URP资产设置实时更新

限制

与所有其他的Spine着色器一样,LWRP着色器在使用线性颜色空间时不支持预乘alpha(PMA)图集纹理。如果你在使用线性颜色空间,请通过禁用预乘alpha设置将你的图集纹理导出为直通alpha纹理。有关更多信息,请参阅这些直通alpha导出和导入设置说明

如果你不确定,可通过编辑 > 项目设置 > 播放器 > 其他设置 > 颜色空间来查看当前活动的颜色空间。

播放器设置 - Gamma

希望这些spine-unity运行时新增功能可让你为高端和低端设备开发更多出色的游戏和应用。欢迎在论坛与大家分享你的想法。