Above is the ‘PS1 Master Material’, which handles the jitteryness and Affine texture ‘warping’, plugged into an unlit material.
This is only one part of emulating how the PS1 looks, however, the second part is limiting the color range and pixel count (although the latter can also be solved by simply rendering at a lower resolution)
Above is the post processor. The most important thing is that it limits the color range to something closer to what the PS1 is capable of outputting, but I also added in a simple ‘pixelizor’ as well.
Once all that is in, you are good to go! A few good pointers to sell the PS1 aesthetic:
Obviously, models need to be very low poly
Most animation is linear and don’t use bezier curves.
A lot of characters don’t animate when they are in an idle. No breathing, nothing. Perfectly still, their 3d model’s won’t jitter if the camera is still. Just a weird thing I noticed.
Make sure your animations are a little on the stiff side.
The default Third Person Pawn breaks all of these pointers, and therefore looks very strange when thrown into a scene with the PSX effects applied.
I would like to add that the PS1 is capable of vertex based lighting, but I haven’t been able to figure that out, and most PS1 games have lighting baked into the texture, so unlit will have to do on the master material.
[ORIGINAL POST]
Hello there,
I am working on a PS1 fan ‘demake’ with my friend, and I am developing a shader effect that emulates the super unique and janky method of rendering on the PS1.
Great! Such a shader can be useful for me to create mini-games in my project (game in game). When do you plan to release? It would be great to see this in Unreal Engine 4. A similar project is for Unity:
This looks cool.
Where is the advantage of using a powerfull engine to finally downgrade a lot the visuals ? Some small 3D engines app could do the job and would be less power expensive.
Under the hood, I’m actually doing a lot of calculations with world position offset, so there isn’t any benefit at all. I’m mostly just doing this because I can.
Further developing the PS1 effect, added in a pixelizer so you can play at a normal resolution while still having it look low res, and a post process effect that restricts the color range. I also put in some texture to check everything, and a concept HUD.
Today’s update shows off a framework for the lock-on system. How it works is that the player has a sphere volume that checks all actors that have a specific tag, and if true, adds it to an array. When the player hits the lockon button, it gets the closest one and orients the camera to face it. What I need to do next is also account for visibility and camera angle. I also need a method for swapping targets using the same button as well.
I wonder how you dealt with light. I guess you’re playing in unlit mode or maybe you rendered all before using static lights so no real time shadows and stuff.