VFX Systems Contexts and Blocks

Thomas ICHÉ edited this page Jun 20, 2018 · 3 revisions

Contents

Home

SRP Core
High Definition Render Pipeline
Lightweight Render Pipeline
Shader Graph
Clone this wiki locally
Clone in Desktop

The visual effects system relies on a modular flow design where processing is described through states. Systems are composed by chaining Contexts which contains dedicated behavior Blocks. Every context type has its own specific properties and using a block in one state or another can be used to achieve different results.

Systems

Systems are generally composed of a top-to-bottom chain of contexts that follows this order :

Contexts

Contexts represent states of processing through Visual Effect Systems, they have their own behavior depending on their type, and most of them can hold one or many blocks.

They are connected vertically by flow connections, from top to bottom. Here is a list of commonly used contexts, for more information see the Contexts section.

Context Name Description Input Output
Event Event exposed to the Component, can be triggered by C# SpawnEvent
GPU Event Event caught by other systems SpawnEvent
Spawn Toggleable machine that outputs SpawnEvents over time using specific behavior. SpawnEvent SpawnEvent
Initialize Generate N new particles with attributes from a SpawnEvent (CPU or GPU) and injects them into simulation SpawnEvent Particles
Update Update loop of a particle simulation, takes input of new generated particles. Particles Particles
Output Renders particles with a specific renderer and shader. Particles
Static Mesh Renders a static mesh with a shader and transform, with shader properties exposed to the expression Graph

Blocks

Blocks are one of the modular processing power of the visual effect editor : they are small chunks of features that can be added to contexts to process a specific task. They are held in a library that can be extended by writing new blocks.

Manipulating Blocks

  • Blocks can be added to a context by right clicking the context then selecting Create Block from the menu or pressing the Spacebar while having the cursor over the context.
  • The block creation menu can be navigated through categories and/or filtered using the search field.
  • Blocks can be dragged and reordered among one context, or dragged to another compatible context.
  • Blocks can be duplicated, copied, pasted and deleted.

Block overview

Blocks are composed of a Header, a Settings area and a property area.

  • Header is the area where you can click to drag around the block. It contains the following:
    • Block title (corresponding to the current configuration)
    • Toggle checkbox to disable the block.
    • UI Collapse button
  • Settings area is where you can staticly configure the block. (please note that not all settings are necessarily in this area, some can be accessible in the inspector)
  • Properties area is where you can enter values or connect operators to configure the block's values.

There is a large number of blocks you can add and a even larger amount of combinations you can achieve using these. For more details about blocks and the library contents : see the Blocks section of the help.