摘要
在本教程中,您将学习在 VFX Graph 中创建基于粒子驱动特效的基础知识,然后学习创建特效。
1. 简介
本教程基于Unity2021.1.16f1c1版本。内置了 Visual Effect Graph 。
Visual Effect Graph (VFX Graph) 是一个基于节点的编辑器,用于实时创建令人惊叹的视觉效果。 利用图形处理单元 (GPU) 和计算着色器的强大功能,VFX Graph 可以同时创作由数百万个粒子组成的效果。 这种能力也是它最大的地方——使用 VFX Graph 创建的粒子系统不受场景中物理的影响,因为它们是在 GPU 上计算的,而 Unity 中的物理是在中央处理单元 (CPU) 上计算的。
2. 项目准备
VFX Graph 与 Unity 2018.3 版中引入的高清渲染管线 (HDRP) 打包在一起。 因此在开始之前,我们必须确保我们的项目已设置为 HDRP。
- 导航到 Window > Package Manager 并搜索 High Definition RP。
- 在右下角,安装最新版本的高清渲染管线版本。
-
在 Assets 文件夹下右击并找到 Create > Visual Effects > Visual Effect Graph。 将其命名为 Snow 或类似名称。 创建一个新的 GameObject,并定位到它的 Inspector 视图。 从那里,将您创建的vfx图形拖到检查器中。 或者,您可以将图形拖到Hierarchy视图中,然后将在您的场景中自动创建一个包含该效果的游戏对象。现在您可以在场景中看到您的效果回放。 双击图形以在 VFX Graph 编辑器中打开它(图 02)。
3. 变量、节点、块和上下文
乍一看,VFX Graph 与 Shader Graph 非常相似。 如果您熟悉 Shader Graph,那么 VFX Graph 中的一些概念可能也很熟悉。 在开始创建效果之前,让我们探索 VFX Graph 的基本组件:变量、节点、块和上下文。
上下文表示处理粒子的操作顺序,并与 C# MonoBehaviour 脚本共享类似的结构:
- Spawn(类似于 Awake() 调用)
- Initialize(Start() 调用)
- Update(Update() 调用)
- Output(定义生成的粒子应该如何渲染到屏幕上)
块是添加到每个上下文的操作(类似于在 Start() 或 Update() 调用中调用函数)。 可以通过在上下文中按空格键或在上下文中右键单击并选择创建块来添加它们。
在上面的例子中,粒子被初始化为随机速度和随机寿命。
下图解释了每个上下文的目的(图 03)。
变量存在于黑板上,用于驱动各种块和节点的属性(图 04)。
要创建新变量,请单击黑板右上角的 + 符号并选择变量的数据类型。 从那里,只需将变量拖到要驱动的属性旁边,然后将变量的输出拖到属性的输入(图 05)。
当一个变量的 Exposed 属性被选中时,它可以通过 VFX Graph 编辑器外部的 Inspector 进行修改。
节点执行单独的操作并链接在一起以执行大型计算,就像它们在 Shader Graph 中的使用方式一样。 它们可以代替变量来驱动块的属性(图 06)。
4. 下一步
通过对 VFX Graph 基本概念的介绍,您现在可以利用 GPU 的强大功能实时模拟数百万个粒子。 在下一个教程中,我们将介绍使用 VFX Graph 来模拟天气效果,例如雨或雪。