Asset Store How to start Forum Effects Nodes Tutorials

Installation


For Unity 2018+

- Import PPSv2 using Package Manager - Window - > Package Manager -> All -> Post-processing -> Install

- Download and import Post Processing Ultimate

For Unity 2017

- Download and import Post Processing Stack v2

- Download and import Post Processing Ultimate



If there are 'StdLib' errors after importing both PPU and PPS - You may need to manually convert the shaders using Window -> Post Processing Ultimate -> Convert Shaders and then refresh the assets.

First steps

- Open Shader Editor


- Name Your shader and compile it

- If PPS is configured properly, You should be able to add Your brand new post-processing effect to Post Processing Volume

Congratulations!

Left Panel


1. Open & Save

- Resets current window

- Opens shader file

- Compiles shader to new file

- Overwrites current file

Current shader file path

2. General information

Destined Injection Point

- AfterStack: the effect will be applied after the builtin stack and before FXAA (if it's enabled) & final-pass dithering.

- BeforeStack: the effect will be applied before the built-in stack kicks-in. That includes anti-aliasing, depth-of-field, tonemapping etc.

- BeforeTransparent: the effect will only be applied to opaque objects before the transparent pass is done.

- Name of the shader

- Visual representation of data flow

- Destined shader precision

- Select current shader pass

- Add new pass

- Remove current pass, add new pass

3. Render queue

Amount of temp textures, useful when You need to store image between different render passes

- Input render texture

- Output render texture

- Shader pass to execute between textures

- Amount of iterations or global variable (Int or IntSlider) to manipulate iterations

- Delete this render pass

Add new render pass

More Information...

4. Global variables

Add new global variable of selected type

Int
Name
Tooltip
Default value
Deletes this property
Float
Name
Tooltip
Default value
Deletes this property
IntSlider
Name
Tooltip
Default value
Range
Deletes this property
FloatSlider
Name
Tooltip
Default value
Range
Deletes this property
Color
Name
Tooltip
Default value
Deletes this property
Vector2
Name
Tooltip
Default value
Deletes this property
Vector3
Name
Tooltip
Default value
Deletes this property
Vector4
Name
Tooltip
Default value
Deletes this property
Texture
Name
Tooltip
Deletes this property
Spline
Name
Tooltip
Deletes this property
Bool
Name
Tooltip
Default value
Deletes this property

Change order by dragging the property label

More Information...

Editor


1. General movement

===== Changing position =====

- LMB click on node and drag it

- LMB drag on background to select nodes, MMB drag to move selected nodes

- MMB without selection to move all nodes

===== Changing connections =====

- LMB drag connected left type joint to disconnect

- LMB drag right type joint and release LMP above left type joint to connect

- LMB drag empty left type joint and release LMP above right type joint to connect

Pro Tip!

Use CTRL + Z to undo and CTRL + Y to redo

2. Operations on nodes

===== Adding nodes =====

- RMB click to open context menu with available nodes, find destined one by hand or by using search bar

===== Deleting nodes =====

- LMB click to select single node, delete selected by pressing delete button

- Select multiple nodes, delete

===== Copying nodes =====

- Select nodes and click CTRL + C to copy them

- Click LMB to copy items, or RMB to cancel copying

3. Shortcuts

Shortcut Node
A + LMB
S + LMB
M + LMB
D + LMB
E + LMB
F + LMB
L + LMB
N + LMB
P + LMB
R + LMB
T + LMB
I + LMB
1 + LMB
2 + LMB
3 + LMB
4 + LMB
C + LMB
Left Alt + M + LMB
Left Alt + C + LMB
Left Alt + D + LMB
Left Alt + E + LMB
Left Alt + F + LMB
Left Alt + L + LMB
Left Alt + R + LMB
Left Alt + S + LMB
Left Alt + T + LMB
Left Alt + 1 + LMB
Left Alt + 2 + LMB
Left Alt + 3 + LMB
Left Alt + 4 + LMB

Function Editor


- Open Function Editor

Basically, everything works exactly as in Shader Editor, but due to HLSL functions nature, some features like global variables, or camera nodes are unavailable

More Information...

Pro Tip!

To avoid errors that can be thrown by updating old functions, it's smart to change only a main part of a function. If inputs and output size would be the same - everything should work without any errors