当前位置:   article > 正文

Visual Effect Graph——系统和环境

visual effect graph

一 系统(Systems)

系统指的是一个或多个定义视觉效果的独立部分的环境。一个系统可以是一个粒子系统,一个粒子条带系统,一个网格,或一个生成机。在graph视图中,系统在它所包含的环境周围绘制虚线框。

多个系统可以相互作用,在一个视觉效果图:

  • 生成系统可以在一个或多个粒子系统中生成粒子。这是产生粒子的主要方法。
  • 粒子系统可以使用GPU事件在其他粒子系统中生成粒子。这种替代方法可以根据粒子死亡等模拟事件从其他粒子中生成出粒子。
  • 生成系统可以启用和禁用其他生成系统。这允许您使用主生成系统来管理其他生成系统来同步粒子发射。

1 从模板创建系统

视觉效果图形带有预先构建的系统模板,您可以将其添加到图形中。从模板创建一个系统:

  • 右键单击工作区的空白空间,并选择Create Node。
  • 在菜单中,选择System。
  • 从列表中选择一个模板。

2 系统模拟空间

一些系统使用模拟空间属性来定义它用来模拟其内容的参考空间:

  • 本地空间系统在本地模拟游戏对象的效果,该游戏对象包含视觉效果组件(Visual Effect component)。
  • 世界空间系统独立于包含视觉效果组件(Visual Effect component)的游戏对象来模拟效果。

不管系统的模拟空间如何,您都可以使用可分隔属性(Spaceable Properties)来访问本地或世界值。

3 设置系统模拟空间

系统在其包含的每个环境的右上角显示其模拟空间。这是系统的模拟空间标识符。如果环境不使用任何依赖于模拟空间的内容,它就不会显示模拟空间标识符。

若要更改系统的模拟空间,请单击系统的模拟空间标识符以在兼容空间中循环。

4 属性中的模拟空间标识符

一些可分隔属性显示模拟空间标识符的较小版本。这并不改变系统的模拟空间,而是允许您在与系统的模拟空间不同的空间中表示一个值。例如,一个系统可以在世界空间中模拟,但是一个属性可以是一个本地位置。

二 环境

环境是图形工作流逻辑(垂直)的主要元素,它定义了操作和模拟之间的顺序和关系。每个环境定义计算的一个阶段,例如计算需要生成多少粒子、创建新粒子或更新所有活粒子。

环境在有意义时相互连接:在创建新粒子之后,初始化环境可以连接到更新粒子环境,或者直接连接到输出粒子环境来渲染粒子,而不需要模拟它们。

1 创建和连接环境

环境是图形元素,因此可以使用菜单右键单击>添加节点、空格菜单或从另一个环境创建工作流(垂直)连接(仅提供兼容环境)来创建环境。

环境使用顶部和底部的端口相互连接。

2 配置环境

调整节点UI或检查器中的环境设置可以更改操作符的外观和行为方式。

例如,将Quad Output环境的UV模式从简单(Simple )更改为FlipbookMotionBlend将为上下文标头添加额外的Flipbook大小、运动矢量映射和运动矢量缩放属性。

3 流的兼容性

并不是所有的环境都可以以任何顺序连接在一起。一些规则适用于保持一致的工作流程:

  • 环境通过兼容的输入/输出数据类型连接。
  • 事件可以连接到一个或多个事件/初始化环境。
  • 初始化环境可以有一个或多个SpawnEvent源,也可以有一个或多个GPUSpawnEvent源,但这些数据类型是互斥的。
  • 只有一个初始化可以连接到一个更新环境
  • 可以将任何输出环境连接到初始化/更新环境。

以下是环境兼容性的概述表:

ContextInput Data TypeOutput Data TypeSpecific Comments
EventNoneSpawnEvent (1+) 
SpawnSpawnEvent (1+)SpawnEvent (1+)Two input pins, start and stop the spawn context
GPU EventNoneSpawnEventOutputs to Initialize Context
InitializeSpawnEvent (1+) / GPUSpawnEvent (1+)Particle (1)Can output to Particle Update or Particle Output. Input types SpawnEvent/GPUSpawnEvent are mutually exclusive(互斥).
UpdateParticle (1)Particle (1+)Can output to a Particle Update or Particle Output
Particle OutputParticle (1)NoneCan either have input from an Initialize or Update
Static Mesh OutputNoneNoneStandalone Context

4 环境类型概述

本节讨论每种环境的所有常见设置。有关特定上下文的详细信息,请参阅环境库Context Library

5 事件

事件环境仅将名称显示为需要在组件API上调用的字符串,以便将此事件发送到图并从此节点激活工作流。

6 生成

生成环境是具有三种状态的独立系统:播放、停止和延迟。

  • 循环(运行)状态意味着计算块并执行新粒子的生成
  • 完成(空闲)状态意味着生成机是关闭的,将不会生成粒子
  • DelayingBeforeLoop/DelayingAfterLoop (Waiting)状态将停止生成粒子,直到用户设置的延迟结束,然后重新开始生成粒子。

生成环境可以使用兼容块自定义。

你可以在这里here找到生成环境API引用。

7 开关

生成环境暴露两个流输入槽:开始和停止:

  • 启动输入重置和/或启动生成系统:如果没有连接,它将隐式地绑定到OnPlay事件。多次点击开始和一次点击开始的效果是一样的。
  • 停止输入将停止生成系统:如果没有连接,它将隐式地绑定到OnStop事件

8 循环和延迟

生成环境包含一个状态,并将基于循环系统执行生成粒子。

  • 生成环境可以在定义持续时间的循环期间发出(意味着内部的生成时间将在每个循环开始时重置)。默认情况下,持续时间是无限的。
  1. 为了设置循环模式,在图中选择环境并在检查器中更改循环持续时间弹出。(可能的值:无穷大、常数、随机)
  • 生成环境可以执行一个、多个或无限多个循环。
  1. 为了设置此设置,请在图中选择spawn上下文,并在检查器中更改弹出的循环计数(可能的值:Infinite、Constant、Random)
  • 生成环境可以在每个循环之前和/或之后执行延迟。在延迟期间,衍生时间正常运行,但不执行衍生。
  1. 为了设置这些设置,请在图中选择spawn上下文,并在检查器中更改循环前的延迟和循环弹出后的延迟(可能的值:None、Constant、Random)

这是一个循环和延迟系统的可视化演示。

设置循环计数、循环持续时间和/或延迟将在上下文的标题上显示新的可连接属性。对这些值的评估将遵循以下规则:

  • 如果设置:循环计数是在环境的开始工作流输入被命中时计算的。
  • 如果设置:循环持续时间在每次循环启动时计算
  • 如果设置:循环延迟(之前/之后)在每次延迟开始时计算。

9 GPU事件

GPU事件环境是连接其他系统的输入到输出的GPU事件的实验环境。它们不同于传统的生成,因为它们是由GPU计算的。只有一种衍生类可以连接到初始化环境(GPU事件和生成/事件是互斥的)

GPU事件环境不能使用块自定义。

10 初始化

初始化环境将产生新的粒子基于生成事件(SpawnEvent)数据,从事件,生成或GPU事件环境计算。

例如:当从spawn环境中收到一个创建200个新粒子的命令时,环境将被处理,并将导致对所有200个新粒子执行环境的块。

可以使用兼容块自定义初始化环境。

初始化环境是新系统的入口点。因此,它们在标题中显示信息和配置:

Property/SettingDescription
Bounds (Property)

Controls the Bounding box of the System

控制系统的边框

Capacity (Setting)

Controls the allocation count of the System

控制系统的分配计数

11 更新

更新环境根据初始化和更新环境计算的粒子数据更新所有活粒子。这些环境在每一帧都被执行,并将更新每一个粒子。

粒子更新环境还自动处理粒子的一些计算,以简化常见的编辑任务。

可以使用兼容块自定义更新环境。

SettingDescription
IntegrationNone : No velocity Integration / 没有速度的集成
Euler : Applies simple Euler velocity integration to the particles positions every frame./每一帧应用简单的欧拉速度积分粒子位置。
Angular IntegrationNone : No velocity Integration  / 没有速度的集成
Euler : Applies simple Euler angular velocity integration to the particles angles every frame. / 将简单的欧拉角速度积分应用于每一帧的粒子角度。
Age ParticlesIf Age attribute is used, Controls whether update will make particles age over time. / 如果使用年龄属性,则控制更新是否会使粒子随时间老化。
Reap ParticlesIf Age and Lifetime attributes are used, Control whether update will kill all particles which age is greater than its lifetime./ 如果使用年龄和生存期属性,控制更新是否会杀死所有大于其生存期的粒子。

12 输出

输出环境根据来自初始化或更新环境的粒子数据,渲染具有不同模式和设置的系统。每个元素都将使用特定的配置作为特定的原语进行呈现。

可以使用兼容块自定义输出环境。

有关更多信息,以及所有输出上下文及其设置的完整列表,请参见输出上下文引用Output Contexts Reference

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

闽ICP备14008679号