Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upVFX Systems Contexts and Blocks
Pages 215
- Home
- Absolute Node
- Add Node
- All Node
- Ambient Node
- And Node
- Any Node
- Arccosine Node
- Arcsine Node
- Arctangent Node
- Arctangent2 Node
- Artistic Nodes
- Bitangent Vector Node
- Blackboard
- Blend Node
- Boolean Node
- Branch Node
- Camera Node
- Ceiling Node
- Channel Mask Node
- Channel Mixer Node
- Channel Nodes
- Checkerboard Node
- Clamp Node
- CodeFunctionNode
- CodeFunctionNode Port Types
- CodeFunctionNode.Binding
- CodeFunctionNode.GetFunctionToConvert
- CodeFunctionNode.SlotAttribute
- Color Mask Node
- Color Node
- Colorspace Conversion Node
- Combine Node
- Comparison Node
- Configuring LWRP for use
- Constant Node
- Contrast Node
- Core SRP
- Cosine Node
- Create Node Menu
- Cross Product Node
- Cubemap Asset Node
- Custom Nodes With CodeFunctionNode
- Data
- Data Types
- DDX Node
- DDXY Node
- DDY Node
- Degrees To Radians Node
- Dielectric Specular Node
- Distance Node
- Dither Node
- Divide Node
- Dot Product Node
- Edge
- Ellipse Node
- Exponential Node
- Flip Node
- Flipbook Node
- Floor Node
- Fog Node
- Fraction Node
- Fresnel Effect Node
- Getting started with HDRP
- Getting started with LWRP
- Getting Started with Shader Graph
- Gradient Noise Node
- High Definition Render Pipeline overview
- Hue Node
- Hyperbolic Cosine Node
- Hyperbolic Sine Node
- Hyperbolic Tangent Node
- Input Nodes
- Installing LWRP into an existing Project
- Integer Node
- Inverse Lerp Node
- Invert Colors Node
- Is Infinite Node
- Is NaN Node
- Length Node
- Lerp Node
- Light Probe Node
- Lightweight Render Pipeline
- Lightweight Render Pipeline Overview
- Lit Shader
- Log Node
- Master Node
- Master Nodes
- Master Preview
- Math Nodes
- Matrix 2x2 Node
- Matrix 3x3 Node
- Matrix 4x4 Node
- Matrix Construction Node
- Matrix Determinant Node
- Matrix Split Node
- Matrix Transpose Node
- Maximum Node
- Metal Reflectance Node
- Minimum Node
- Modulo Node
- Multiply Node
- Nand Node
- Negate Node
- Node
- Node Library
- Normal Blend Node
- Normal Create Node
- Normal Strength Node
- Normal Unpack Node
- Normal Vector Node
- Normalize Node
- Not Node
- Object Node
- One Minus Node
- Or Node
- PBR Master Node
- Polar Coordinates Node
- Polygon Node
- Port
- Port Bindings
- Position Node
- Posterize Node
- Power Node
- Preview Node
- Procedural Nodes
- Projection Node
- Property Types
- Radial Shear Node
- Radians To Degrees Node
- Random Range Node
- Reciprocal Node
- Reciprocal Square Root Node
- Rectangle Node
- Reflection Probe Node
- Rejection Node
- Remap Node
- Replace Color Node
- Rotate Node
- Round Node
- Rounded Rectangle Node
- Sample Cubemap Node
- Sample Texture 2D Node
- Sampler State Node
- Saturate Node
- Saturation Node
- Screen Node
- Screen Position Node
- Scripting API
- Shader Graph
- Shader Graph Asset
- Shader Graph Window
- ShaderGraphOverview
- Sign Node
- Simple Noise Node
- Sine Node
- Sky and Fog
- Slider Node
- Smoothstep Node
- Spherize Node
- Split Node
- Square Root Node
- SRP Asset
- SRP Context
- SRP Culling
- SRP Drawing
- SRP Editor
- SRP Instance
- SRP Overview
- Standard (Physically Based) shader
- Step Node
- Sub graph
- Sub graph Asset
- Sub graph Node
- Subtract Node
- Swizzle Node
- Tangent Node
- Tangent Vector Node
- Texture 2D Asset Node
- Tiling And Offset Node
- Time Node
- Transform Node
- Transformation Matrix Node
- Triplanar Node
- Truncate Node
- Twirl Node
- Unlit Master Node
- Using LWRP in a new Project
- Utility Nodes
- UV Node
- UV Nodes
- Vector 1 Node
- Vector 2 Node
- Vector 3 Node
- Vector 4 Node
- Vertex Color Node
- VFX Attributes Properties and Settings
- VFX Blocks
- VFX Blocks Attribute
- VFX Blocks Spawn
- VFX Contexts
- VFX CSharp API
- VFX Extending The Editor
- VFX Operators
- VFX Parameters and Events
- VFX Systems Contexts and Blocks
- VFX Utilities and DCC Tools
- View Direction Node
- Visual Effect Assets and GameObjects
- Visual Effects Editor
- Visual Effects Graph
- Voronoi Node
- What is a Render Pipeline
- What is a Scriptable Render Pipeline
- White Balance Node
- Show 200 more pages…
Contents
Shader Graph
Node Library
Clone this wiki locally
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 Blockfrom 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.
This is first draft documentation for the Scriptable Render Pipeline. As such, the information in this document is incomplete and may be subject to change before final release.