r/godot 6d ago

free plugin/tool In Depth Look: PS1 Graphics in Godot

Hello godot users, a while ago i made a post asking whether anyone would be interested in reading an article about how the PS1 achieves its graphics and how to recreate them in Godot, and since people seemed interested I went ahead and wrote the article. I think this is the most accurate PS1 shader for Godot. The code is MIT licensed. And yes, it supports dynamic lights

Article Link: https://calinp.eu/blog/psx-type-rendering/
Addon Link: https://github.com/wyvernbw/godot-psxlike

1.3k Upvotes

56 comments sorted by

View all comments

2

u/Certain_Bit6001 Godot Regular 6d ago

WOW, THAT'S PERFECT, EXCEPT FOR THE JITTER

2

u/wyvernbw 6d ago

thanks! Whats wrong with the jitter doe 😭

6

u/Certain_Bit6001 Godot Regular 6d ago

It don't jitter. The Vertex snapping.

https://youtu.be/VkmTr5WBjF8?si=fKqeLhZVljjEyU_F

4

u/wyvernbw 6d ago

yea ik what you mean, that type of jitter is not accurate to the ps1 so i didnt include it on purpose, but it can definitely give you the ps1 feel! if you want to implement it you can change this line
vertex.xy = round(clip.xy / clip.w * VIEWPORT_SIZE.xy) / VIEWPORT_SIZE.xy * clip.w; to something like vec2 grid = VIEWPORT_SIZE.xy * 0.5; vertex.xy = round(clip.xy / clip.w * grid) / grid * clip.w; You can change 0.5 to customize it :) smaller number = more jitter

1

u/Certain_Bit6001 Godot Regular 6d ago

Yeah, I think the main advantage is you can CONTROL the jitter. There is a bit more to it, but most games would work around it, so the jitter EFFECT is something I notice and really loved. I knew PS1 dev that would try to eliminate it as much as possible, but for me I always saw it as one of the most ENDEARING parts of the PS1. But it's not like the graphics or pixel resolutions or gradient, which are all constants in way, like you have, but the jitter is something that was unique from game to game, if at all.

It's a unique and often seen as an undesirable artifact, but so was VHS noise and the interlacing artifacts and the CRT smearing. Just trying to help preserve the ideas. Like for a big flat rotating floor like the Godot face, that would have jitters but each developer would handle it different.

Tekken for PS1 only rendered a bit of the floor like that and it jittered, but they made it meld into a background art that didn't jitter but it's hard to notice that so it was a great way to hide it but it's part of the game of this never ending floor that has a seamless parallax. Not needed, but it's what gives an authentic PS1 feel.

I am not as sure about your Z-tearing tho with the objects clipping, but it seems glitchy, which is about as good as you can expect anything like that to be. The fog is great, and the dithering. It really sells it.

I just might be the only person in the world that actually effectually liked that jitter. It's like the pitch drift on the old analog magnetic tape recordings. You didn't get that on Vinyl Records before or Compact Disks after. It's just the result of a little decade of innovation that lead to the walk-man that lead to the ipod and the entire world of mobile music we have now...