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. This UE4 PS1 shader is super-easy to implement and is, in fact, very fast to recreate.
1. Create the material
First of all, you should probably create a Materials folder in your Content folder. It’s always a good idea to organize your stuff. Inside of that, create the PS1 folder.
Now create the material by right-clicking into the Content Browser and selecting Material from the menu.
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:
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 that 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. Apply 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 the 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 the asset reference field.
Voilà! You should immediately see the changes in the viewport:
Now 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 this PS1 shader for UE4: