UE4 (Unre­al Engine 4) PS1 Post-Pro­cess­ing Shader

A tuto­r­i­al on a sim­ple, yet very cool-look­ing shad­er effect for Unre­al Engine 4, that emu­lates PS1 visu­als. Gives your game a very nos­tal­gic look 🙂

In this tuto­r­i­al, I want to show you a very neat post-pro­cess­ing shad­er that emu­lates the look of the PlaySta­tion 1 visu­als. It adds pix­e­la­tion as well as lim­its the col­or out­put. This UE4 PS1 shad­er is super-easy to imple­ment and is, in fact, very fast to recreate.

1. Cre­ate the material

First of all, you should prob­a­bly cre­ate a Mate­ri­als fold­er in your Con­tent fold­er. It’s always a good idea to orga­nize your stuff. Inside of that, cre­ate the PS1 folder. 

Now cre­ate the mate­r­i­al by right-click­ing into the Con­tent Brows­er and select­ing Mate­r­i­al from the menu. 

Let’s call it M_PS1_PostProcess. M for mate­r­i­al then goes the actu­al name, and the suf­fix briefly describes what type of mate­r­i­al this is.

Open it up. In the mate­r­i­al options (Details pan­el, when you have no nodes select­ed in the graph), choose Mate­r­i­al DomainPost Process:

Now go ahead and recre­ate this graph:

Let me explain some of the nodes, so you don’t get con­fused where the hell did I get them.

  • Scale is a para­me­ter so that we can change it lat­er in the mate­r­i­al instance. Give it a default val­ue of 300. Just in case you don’t know, see how to cre­ate a mate­r­i­al parameter.
  • Scene­Tex­ture: PostProcessInput0 - for this one, you’ll want to add a Scene­Tex­ture node, and in its prop­er­ties (select it and look at the Details pan­el), choose PostProcessInput0:
  • STMul­ti­pli­er is anoth­er para­me­ter. Give it a default val­ue of 15.

2. Apply the material

  • Save the mate­r­i­al and close the mate­r­i­al edi­tor. Now cre­ate a mate­r­i­al instance.
  • Add (if you did­n’t) or find a Post­ProcessVol­ume in your scene. In the details, under Ren­der­ing Fea­tures, find the Post Process Mate­ri­als option and add one to the array. In the drop­down that says Choose, choose asset ref­er­ence.
  • Now assign your M_PS1_PostProcess_Inst (the default name of the mate­r­i­al instance) to the asset ref­er­ence field. 

Voilà! You should imme­di­ate­ly see the changes in the viewport:

Now you can play around with mate­r­i­al instance set­tings. Just open up the mate­r­i­al instance, and in the details pan­el, check the cor­re­spond­ing fields for your Scale and Mul­ti­pli­er to over­ride the defaults, and change them to what­ev­er you like. You can go pret­ty wild with this PS1 shad­er for UE4: