当前位置:   article > 正文

Visual Effect Graph——简介

visual effect graph

视觉效果图(Visual Effect Graph)使您能够使用基于节点的视觉逻辑来创建视觉效果。你可以将它用于简单的效果以及非常复杂的模拟。Unity将视觉效果图存储在你可以在视觉效果组件上使用的视觉效果资产中。你可以在你的场景中多次使用视觉效果资产。

  • 创建一个或多个粒子系统。
  • 添加静态网格和控制着色属性。
  • 创建属性以自定义场景中使用的实例。
  • 创建事件来打开和关闭你的部分效果。然后你可以通过c#或时间轴从场景中发送这些事件。
  • 通过创建常用节点的子图来扩展特性库。
  • 在另一个视觉效果图中使用一个视觉效果图。例如,您可以在更复杂的图形中重用和定制一个简单但可配置的扩展。
  • 预览会立即更改,因此您可以在不同的速率下模拟效果并逐步执行模拟。有关如何安装视觉效果图的说明,请参阅“开始使用视觉效果图”。

 Visual Effect Graph是一个Unity包,它使用一个可编写脚本的渲染管道来渲染视觉效果。视觉效果图用计算着色器来模拟效果。

1 开始

需求:

  • Unity2018.3或更新。验证包在Unity 2019.3开始。
  • 一个可编写脚本的渲染管道包:
  1. 通用渲染管道(Universal Render Pipeline)(2019.3或更新)

  2. 高清晰度渲染管道(High Definition Render Pipeline)(2018.3或更新。验证包在Unity 2019.3启动。)

安装:

  1. 在Unity编辑器中,转到窗口>包管理器。在顶部的导航栏中,确保选中了所有的包。
  2. 注意:在Unity 2019.3之前的版本中,你将不得不检查“显示预览包”“高级”选项,以便视觉效果图出现在列表中。
  3. 选择视觉效果图形包。
  4. 在右下角,单击Install。

使用正确版本的视觉效果图

每个视觉效果图形包都使用相同版本的可编写脚本的呈现管道包。如果您想要升级视觉效果图形包,您还必须升级您正在使用的渲染管道包。

例如,包管理器中的视觉效果图包版本6.5.3-preview与高清晰度RP包版本6.5.3-preview一起工作

创建视觉效果图

要使用视觉效果图,您必须首先创建一个视觉效果图资产。

创建一个视觉效果图形资产:

  1. 在Unity中,点击Assets > Create > Visual Effects > Visual Effect Graph

复制一份视觉效果图形资产:

  1. 在“项目”窗口中,选择要复制的视觉效果资产。
  2. 在顶部导航栏中,选择Edit > Duplicate。现在您已经创建了一个副本。

在场景中使用视觉效果图

要使用视觉效果图,您必须向场景添加一个视觉效果(Visual Effect )。

为此,您可以:

  • 将视觉效果图资产从“项目”窗口拖放到“层次结构”窗口中。当您删除现有GameObject上的资产时,这将添加一个新的带有视觉效果组件的子GameObject,并将图形分配给它。当你把资产放在一个空的空间,Unity创建一个新的视觉效果游戏对象,并分配图形给它。
  • 将视觉效果图形资产从“项目”窗口拖放到“场景视图”窗口。这使得图形出现在摄像机前面。

当您将视觉效果图资产添加到层次结构中时,Unity将该资产附加到一个引用该资产的视觉效果组件。

编辑视觉效果图形

要在“视觉效果图形”窗口中编辑视觉效果图形资产:

  • 用一个空图形打开视觉效果图形窗口(菜单:Window_ > Visual Effects)。这将提示您打开一个视觉效果图形资产。
  • 选择一个现有的视觉效果图形资产,并在检查器中点击编辑按钮。这将打开包含此资产中的图形的视觉效果图形窗口。
  • 选择视觉效果组件(菜单:在资产模板旁边,单击Edit)。这将打开可视效果图窗口,并使用所引用资产中包含的图。

预览图形的效果

预览效果,你可以:

  • 选择一个视觉效果图形资产,并使用检查器预览窗口。
  • 把你的效果直接放在场景中作为一个视觉效果游戏对象。

这让你可以直接在场景中编辑参数,看到效果的灯光,并使用目标游戏对象面板的功能来实现效果的特定目标实例。

操纵图形元素

当您在视觉效果图形窗口中打开一个资产时,您可以看到并编辑该特定资产的图形。

视觉效果图包含操作符节点(Operator Nodes)和块(Blocks)。每个节点负责处理其输入属性。您可以将节点链接在一起来执行一系列计算。所有节点最终都连接到一个块(或一个环境)中:一个块根据其输入属性定义对效果的操作。

当您将几个块链接在一起时,它们就形成了一个环境。有关视觉效果图中的节点、块和环境的更多信息,请参见图逻辑(Graph Logic)。

您对图形所做的每一个更改都会对效果的行为产生直接的影响,并且您可以实时地预览这些更改。每当您添加、删除或连接一个节点时,图形都会重新编译所有已更改的元素,并重新启动效果。但是,改变值(例如,编辑一条曲线)不会使Unity重新编译任何东西,并且会实时影响模拟。要添加节点,您可以:

  • 在图中右键单击,并选择Create Node。
  • 按键盘上的空格键。
  • 单击并从现有端口拖动一条边,然后在空白区域释放单击。

当您执行上述任何操作时,将出现Create Node菜单。在这里,您可以看到与图中特定位置兼容的节点、块和环境。

2 视觉效果图形资产(Visual Effect Graph Assets)

视觉效果图资产是一个数据容器,视觉效果图使用该数据容器来发挥视觉效果。它包括:

  • 图形元素
  • 公开属性
  • 编译的着色器
  • 操作符字节码

创建视觉效果图形资产

创建一个视觉效果图形资产,选择 Assets > Create > Visual Effects > Visual Effect Graph。Unity会在项目窗口当前打开的文件夹中创建一个新的视觉效果。

使用视觉效果图形资产

要编辑视觉效果图形资产,首先在“视觉效果图形”窗口中打开它。要做到这一点,你可以:

  • 双击“项目”窗口中的“视觉效果图形资产”。
  • 在项目窗口中选择可视化图形资产,在检查器中查看它,然后在资产的标题中,单击Open按钮。
  • 在“视觉效果组件的检查器”中,单击“资产模板”属性旁边的“编辑”按钮。这将打开分配的视觉效果图形资产。

打开视觉效果图,现在可以编辑视觉效果。

视觉效果资产检查


当您选择一个视觉效果图资产时,检查器将显示资产范围的配置选项。

Property NameDescription / Values
Update Mode

Sets the rate at which Unity updates the visual effect:
Fixed Delta Time: Updates the visual effect at the rate that the Fixed Time Step property defines in the Visual Effect Project Settings.
• Delta Time: Updates the visual effect every frame.

设置Unity更新视觉效果的速度:

•固定增量时间:以固定时间步长属性在视觉效果项目设置中定义的速度更新视觉效果。

•增量时间:每帧更新视觉效果。

Culling FlagsSets whether Unity updates the visual effect depending on its culling state. The culling state refers to whether a Camera can see the visual effect's bounding box or not. The options are:
• Recompute bounds and simulate when visible: Unity simulates the effect and recalculates the effect's bounding box when the effect is visible. If your visual effect uses a dynamic bounding box (one that you compute with operators), you should not use this option in favor of one that includes Always Recompute Bounds .
• Always Recompute Bounds, simulate only when Visible: Regardless of whether any Camera can see the effect's bounding box or not, Unity always recalculates the bounding box. Unity only simulates the effect if a Camera can see the updated bounds.
• Always Recompute Bounds and Simulate: Regardless of whether any Camera can see the effect's bounding box or not, Unity always recalculates the bounding box and simulates the effect.

Note: Regardless of the mode, Unity always uses the bounding box to perform culling of the effect.

设置Unity是否根据其剔除状态更新视觉效果。剔除状态是指摄像机是否能看到视觉效果的边框。的选项是:

•重新计算边界并在可见时进行模拟:Unity模拟效果,并在可见时重新计算效果的边界框。如果您的视觉效果使用动态边界框(使用运算符计算的边界框),则不应使用此选项,而应使用包含总是重新计算边界的选项。

•总是重新计算边界,只在可见时模拟:无论任何相机是否可以看到效果的边界框,Unity总是重新计算边界框。Unity只有在摄像机可以看到更新的边界时才会模拟这种效果。

•总是重新计算边界和模拟:无论任何相机是否可以看到效果的边界框,Unity总是重新计算边界框和模拟效果。

 

注意:不管模式如何,Unity总是使用包围框来执行效果的剔除。 

PreWarm Total Time

Sets the duration that Unity should simulate the effect when Reset() occurs. This pre-simulates the effect so that, when the effect starts, it appears already 'built-up'. When you change this value, Unity calculates a new value for PreWarm Delta Time.

设置当Reset()发生时Unity模拟效果的持续时间。这预先模拟了效果,因此,当效果开始时,它看起来已经“建立”。当你改变这个值时,Unity会计算一个新的预暖时间值。

PreWarm Step Count

Sets the number of simulation steps that Unity uses to calculate the PreWarm. A greater number of steps increase precision as well as the resource intensity of the effect, which decreases performance. When you change this value, Unity calculates a new value for PreWarm Delta Time.

设置Unity用于计算预温的模拟步骤的数量。更多的步骤增加了精度和资源强度,从而降低了性能。当你改变这个值时,Unity会计算一个新的预暖时间值。

PreWarm Delta Time

Sets the delta time that Unity uses for the PreWarm. When you change this value, Unity calculates new values for PreWarm Total Time and PreWarm Step Count. Adjust this value, instead of PreWarm Total Time and PreWarm Step Count individually, if you need to use a precise delta time for your simulation.

设置Unity用于预热的delta时间。当您更改此值时,Unity将为预温总时间和预温步数计算新值。如果您需要使用精确的增量时间进行模拟,请调整此值,而不是单独计算预温总的时间和预温步长。

Initial Event Name

Sets the name of the Event that Unity sends when the effect enables. The default value is OnPlay, but you can change this to another name, or even a blank field, to make it so that every system does not spawn by default.

设置当效果启用时Unity发送的事件的名称。默认值是OnPlay,但是您可以将其更改为另一个名称,甚至是一个空白字段,以使每个系统在默认情况下都不会产生。

Output Render Order

Defines a list that shows every Output Context in their rendering order. You can re-order this list to change the order that Unity renders the Output Contexts. Unity draws items at the top of the list first then progressively draws those lower down the list in front of those above.

定义以渲染顺序显示每个输出环境的列表。您可以重新排序此列表,以更改Unity渲染输出环境的顺序。Unity首先绘制列表顶部的项目,然后逐步将列表下方的项目绘制在上面的项目之前。

Shaders

Defines a list of every Shader that Unity has compiled for the Visual Effect Graph. These are read-only and mainly for debugging purposes. Use Shader Externalization in Visual Effect Preferences to externalize Shaders temporarily for debugging purposes.

定义Unity为视觉效果图编译的每个着色器的列表。它们是只读的,主要用于调试。在Visual Effect Preferences中使用着色器外部化来临时外部化着色器,以便进行调试。

3 视觉效果图形窗口

视觉效果图形窗口是视觉效果图形的主要窗口。这是您可以编辑视觉效果图形资产和子图资产的地方。窗口显示的工作空间由视觉效果图资产包含的系统、环境和操作符组成。

打开视觉效果图形窗口

要打开视觉效果图形窗口,您可以使用以下任何一种方法:

  • 在“项目”窗口中,双击“视觉效果图形资产”( Visual Effect Graph )或“子图资产”( SubGraph)。您还可以单击相应资产的检查器中的Open按钮。这将您打开的资产连接到窗口。
  • 在“视觉效果组件的检查器”中,单击“资产模板”属性(Visual Effect component)旁边的“编辑(Edit )”按钮。这将分配给资产模板的资产连接到窗口。
  • 在菜单中,选择Window > Visual Effects > Visual Effect Graph。这将打开一个空的视觉效果图窗口,因此您需要打开一个视觉效果图资产来使用编辑器。

视觉效果图形窗口布局

在视觉效果图形窗口中,有多个区域和面板。

  • 工具栏(红色):此栏包含全局影响视觉效果图的控件。这包括指定Unity何时编译视觉效果图的控件,以及允许显示/隐藏某些面板的控件。
  • 节点工作区(绿色):您可以在这里查看和编辑视觉效果图。
  • 黑板(蓝色):此面板显示视觉效果图使用的属性。
  • 目标视觉效果游戏对象(紫色):此面板显示当前附加的游戏对象的控件。

工具栏

“视觉效果图”窗口工具栏包含对视觉效果图资产进行操作的功能。

ItemDescription
Auto

Toggle : Toggles Auto-compilation of the Visual Effect Graph.

              切换视觉效果图形的自动编译。

Compile

Action : Recompiles the currently opened Visual Effect Graph.

             重新编译当前打开的视觉效果图形。

Show in Project

Action : Focuses the currently opened Visual Effect Graph's Asset in the Project window.

            将当前打开的视觉效果图形的资产集中在项目窗口中。

Blackboard

Toggle : Toggles visibility of the Blackboard Panel.

             切换黑板面板的可见性。

Target GameObject

Toggle : Toggles visibility of the Target VisualEffect GameObject Panel.

              切换目标VisualEffect游戏对象面板的可见性。

Advanced

Menu: Displays Advanced Properties. The options are 
• Runtime Mode (Forced): Forces optimized compilation, even when the editor is open.
• Shader Validation (Forced): Performs a forced Shader compilation when the effect recompiles, even if no visual effect is visible. This displays the Shader errors in the Scene. 
• Refresh UI: Refreshes the window UI.

菜单:显示高级属性。选项是
•运行时模式(强制):强制优化编译,即使编辑器是打开的。
•着色器验证(强制):在效果恢复时执行强制着色器编译,即使没有可见的视觉效果。这将显示场景中的着色器错误。
•Refresh UI:刷新窗口UI。

节点的工作空间

节点工作区是工具栏下面的区域。在这里您可以浏览和编辑图形。节点工作区还包含黑板和目标可视化效果游戏对象面板。

黑板

黑板是一个面板,允许您管理视觉效果图使用的属性。它是一个浮动的面板,独立于当前工作空间视图的缩放和位置。窗口总是将此面板显示在节点工作区中节点的顶部。

要调整此面板的大小,请单击任何边或角并拖动。要重新定位此面板,请单击面板的标题并拖动。

更多信息,请看黑板Blackboard

目标视觉效果游戏对象

目标视觉效果游戏对象面板允许你将当前打开的视觉效果图形附加到一个游戏对象和控制回放选项以及触发事件。它是一个浮动的面板,独立于当前工作空间视图的缩放和位置。窗口总是将此面板显示在节点工作区中节点的顶部。

要调整此面板的大小,请单击任何边或角并拖动。要重新定位此面板,请单击面板的标题并拖动。

使用节点工作区

在工作区中

节点工作区的导航控件类似于其他基于图形的Unity特性使用的那些:

移动图表:


  • 单击鼠标中键并拖动。
  • 按住Alt键,左击并拖动。

放大和缩小使用:


  • 要放大,可以向上滚动鼠标滚轮。
  • 要缩小,向下滚动鼠标滚轮。

选中元素:


  • 要单独选择元素,请单击它们。
  1. 若要从当前选择项中添加/移除一个元素,请按住Ctrl键并单击它。
  • 要创建一个选择矩形,请单击“空白”并拖动。这将选择矩形所接触的每个元素。
  1. 您可以使用一个选择矩形来从当前选择中添加/删除元素。为此,按住Ctrl键并使用上面描述的方法创建一个新的选择矩形。
  • 要创建选择选框,按住Shift键,单击空白区域,然后拖动创建路径。这将选择路径/选框所触及的每个元素。
  • 若要清除当前选择项,请单击“空白”。

焦点


  • 要关注特定的节点/节点组,请选择节点/节点并按F键。
  • 若要关注整个图形,请清除当前选择并按F键。

复制,剪切,粘贴,复制元素:


  • 右键单击一个元素或一组元素,打开一个显示相关命令的菜单。
  • 键盘快捷键:
  1. 复制:按Ctrl + C。
  2. 切:Ctrl + X。
  3. 粘贴:Ctrl + V。
  4. 复制:按Ctrl + D。
  5. 复制与边缘:Ctrl+Alt+D。

添加图形元素

要添加图形元素,您可以使用以下任何一种方法:

  • 右击菜单:右击打开菜单,选择添加节点,然后从菜单中选择要添加的节点。此操作是环境敏感的,基于光标下方的元素,并且只向您提供兼容的图形元素。
  • 空格键菜单:这个快捷方式相当于右键单击,然后选择Add Node。
  • 交互式连接:在从端口(属性或工作流)创建边缘时,拖动边缘并将单击释放到空白区域以显示节点菜单。此操作是环境敏感的,基于源端口的类型,并且只提供可连接到的兼容图元素。

操纵图形元素

您可以在工作空间中操作图形元素:

移动元素


  • 要在工作区中移动元素,请单击元素的标题,将元素拖动到一个新位置,然后释放鼠标按钮。
  • 要将块移动到一个环境中,或将它们移动到另一个环境中,请单击块的标题,将块拖动到一个新位置,然后释放鼠标按钮。

调整元素


一些元素,如便利贴,支持调整大小。为此,单击任何边或角,拖动直到达到所需的元素大小,然后释放鼠标按钮。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/117759
推荐阅读
相关标签
  

闽ICP备14008679号