版本 10 的新增功能
本页概要介绍了 Visual Effect Graph 版本 10 中的新功能、改进和已解决的问题。
功能
以下是 Unity 添加到 Visual Effect Graph 版本 10 的功能列表。每个条目均包括功能摘要以及指向任何相关文档的链接。
CPU 输出事件
输出事件在触发时从图形向 C# 发送一个事件。您可以使用它将灯光、声音、物理反应或游戏玩法与视觉效果同步。
有关此功能的更多信息,请参阅输出事件。
有关如何使用此功能的示例,请参阅输出事件处理程序。
每粒子网格 LOD(实验性)
根据屏幕尺寸使用LOD优化您的网格粒子。
有关此功能的更多信息,请参阅粒子网格输出。
多网格(实验性)
在同一个 Particle Mesh Output 中最多使用四个网格为您的效果添加每个粒子的多样性。这使您能够为单个网格粒子添加视觉多样性,而无需使用多个输出。
有关此功能的更多信息,请参阅输出粒子网格。具体而言,是 Mesh Count 属性。
静态网格采样(实验性)
直接从网格生成粒子。这使您可以在更复杂的形状中直接从网格快速生成粒子,而无需先将它们的位置烘焙到 Point Cache。
您可以使用 Position (Mesh) 代码块和 Sample Mesh 运算符对网格顶点进行采样。
有关此功能的更多信息,请参阅网格采样。
运算符和代码块
此版本 Visual Effect Graph 引入了新的运算符和代码块:
- Exp
- Log
- LoadTexture
- GetTextureDimensions
- WorldToViewportPoint
- ViewportToWorldPoint
- Construct Matrix
- TransformVector4
改进
以下是 Unity 对 Visual Effect Graph 版本 10 所做的改进的列表。每个条目均包含改进的摘要,并提供相关文档(如果有)的链接。
文档
文档现在包含关于 Visual Effect Graph 中所有节点的参考信息。此外,属性、代码块、上下文、运算符以及各种菜单和选项现在包含工具提示。
UX & 工作流程
此版本的 Visual Effect Graph 引入了许多工作流程改进。列表如下所示:
- 现在图形视图中有一个 Save 按钮,用于保存当前打开的 Visual Effect Graph。
- Unity 现在在导入 VFX 资源时编译该资源。在此版本之前,Unity 会在您保存资源时对其进行编译。此改进解决了版本之间着色器的一些不兼容问题,并防止使用源代码管理进行不必要的更改。
- 对边缘有多项改进:
- 现在,如果您右键单击一条边,会有一个选项用于创建中间节点。
- 如果从节点的输入建立连接,则可以在释放单击时按住 Alt 键,以在空白空间中创建新的公开属性。公开的属性与您创建它的输入具有相同的类型。
- 现在,当您复制连接的节点时,重复项具有相同的边缘连接。
- 对于 Blackboard 做出了多项改进:
代码块和节点:
- Position(形状、顺序、深度)和 Velocity from Direction & Speed 代码块现在提供对位置和方向的合成。最初,它们只提供对位置的合成。
- 内置运算符现在提供新的时间访问。
现在有一个用于 Update 上下文的自定义检查器。该检查器显示 Update Position 和 UpdateRotation 而不是 Euler Integration。
现在有一个用于 Spawn 上下文的自定义检查器,包括循环和延迟设置,在创建可自定义的生成行为时增加了另一层深度。
性能优化
此版本的 Visual Effect Graph 引入了多项性能优化:
- Unity 现在使用计算着色器剔除粒子,以非常有效地丢弃非活动、屏幕外和非活动粒子的渲染。有关此功能的更多信息,请参阅共享输出设置和属性中的 Compute Culling 属性。
- Unity 现在尽可能在 CPU 上处理噪声评估。最初,Unity 在每个粒子的基础上执行此操作,而某些用例只需要对所有粒子执行一次。
有向距离场
此版本的 Visual Effect Graph 引入了对使用有向距离场 (SDF) 的改进。它添加了一个新的运算符来采样 SDF,以及一个新的代码块来基于 SDF 设置粒子的位置。
这些功能允许您创建自定义行为,例如检测粒子是否与 SDF 发生碰撞。
有关示例 SDF 运算符的更多信息,请参阅 Sample Signed Distance Field。
有关新位置代码块的更多信息,请参阅 Position (Signed Distance Field)。
失真输出
此版本的 Visual Effect Graph 引入了对失真输出的八边形和三角形支持。它还为粒子条带引入了新的 Output Distortion Quad 上下文。
有关失真输出的更多信息,请参阅输出失真。
粒子条带
此版本的 Visual Effect Graph 引入了对粒子条带的多项改进:
- 现在有用于四条带纹理映射的选项。您可以使用 UV 或自定义贴图。
- 用于条带输出的自定义 Z 轴选项。这使您可以为条带设置自定义前进方向并使它们面向特定方向。例如,如果您想在背对墙壁的墙上创建横幅,这将非常有用。
- 粒子条带的新属性 particleCountInStrip 存储条带中的粒子数。
- Initialize 上下文中粒子条带的新属性 spawnIndexInStrip 充当 spawnIndex.stores... 的粒子条带等效项。
运算符和代码块
此版本的 Visual Effect Graph 引入了对运算符和代码块的多项改进:
- Compare 运算符现在接受 int 和 uint 作为输入。
- Spawn 上下文中的属性现在可供读取。
示例
以下是 Unity 在版本 10 中创建或改进的 Visual Effect Graph 包示例的列表。每个条目均包含改进的摘要,并提供相关文档(如果有)的链接。
Visual Effect Graph 附加资源
此版本的 Visual Effect Graph 向 Visual Effect Graph 附加资源示例中引入了新的实用程序运算符。
- Get Strip Progress:计算条带中粒子在 0 到 1 范围内的进度的子图。这对采样曲线和梯度以便根据进度修改条带十分有用。
- Encompass (Point):一个扩展 AABox 边界以包含一个点的子图。
- Degrees to Radians 和 Radians to Degrees:帮助您在图形中的弧度和度数之间进行转换的子图。
OutputEvent Helper
此版本的 Visual Effect Graph 向 OutputEvent Helpers 示例引入了新的辅助脚本,以帮助您设置 OutputEvents 的各种用例:
Cinemachine Camera Shake:一个输出事件处理程序脚本,它在发生给定输出事件时,通过 Cinemachine Impulse Source 触发摄像机抖动。
Play audio:当发生给定输出事件时播放单个 AudioSource 的输出事件处理程序脚本。
Spawn a Prefab:一个输出事件处理程序脚本,它根据给定的输出事件生成预制件(从池中管理)。它使用位置、角度、伸缩和生命周期来定位预制件并在延迟后禁用它。要同步其他值,您可以在预制件中使用其他脚本。
- Change Prefab Light:显示如何将灯光与效果同步的示例。
- Change Prefab RigidBody Velocity:一个示例,展示了如何将刚体的速度变化与您的效果同步。
RigidBody:一个输出事件处理程序脚本,当发生给定输出事件时,它对刚体施加力或速度变化。
Unity Event:一个输出事件处理程序,在发生给定的输出事件时引发 UnityEvent。
已解决的问题
如需了解 Visual Effect Graph 版本 10 中已解决的问题的相关信息,请参阅 changelog。