Unreal Engine 4 PS1 Post-Processing Shader
In this tutorial I want to show you a very neat post-processing shader that emulates the look of the PlayStation 1 visuals. It adds pixelation as well as limits the color output. It’s super-easy to implement and is, in fact, very fast to recreate.
1. Creating the material
First of all, you should probably create a “Materials” folder in your “Content”. It’s always a good idea to organize your stuff. Inside of that, create the “PS1” folder.
Now create the material.
Let’s call it M_PS1_PostProcess. M for material, then goes the actual name, and the suffix briefly describes what type of material this is.
Open it up. In the material options (Details panel, when you have no nodes selected in the graph), choose Material Domain — Post Process:
Now go ahead and recreate this graph:
And let me explain some of the nodes, so you don’t get confused where the hell did I get them.
- Scale is a parameter, so we can change it later in the material instance. Give it a default value of 300. Just in case you don’t know, see how to create a material parameter.
- SceneTexture: PostProcessInput0 — for this one you’ll want to add a “SceneTexture” node, and in its properties (select it and look at the Details panel) choose “PostProcessInput0”
- STMultiplier is another parameter. Give it a default value of 15.
2. Applying the material
- Save the material and close the material editor. Now create a material instance.
- Add (if you didn’t) or find a PostProcessVolume in your scene. In the details, under “Rendering Features”, find a “Post Process Materials” option and add one to the array. In the dropdown that says “Choose”, choose asset reference.
- Now assign your M_PS1_PostProcess_Inst (the default name of the material instance) to asset reference field.
Voilà! You should immediately see the changes in the viewport:
Now, if you want, you can play around with material instance settings. Just open up the material instance, and in the details panel check the corresponding fields for your Scale and Multiplier to override the defaults, and change them to whatever you like. You can go pretty wild with it: