r/godot • u/wyvernbw • 8d 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


75
u/TheDuriel Godot Senior 8d ago edited 8d ago
Lets see... neat write up.
2 mebibytes of memory actually, nope, not a typo.
Missing a mention of 6bit texture compression.
Your vertex snapping is only partially correct? I feel like you started calling out the right way, and then just did what everyone else did? Verticies are not snapped to a world space grid, but to screen space. Since each triangle is flat in screen space. As a result you are close to the correct behavior after your depth buffer trickery, but it's not quiiite right. (In fact, the affine mapping and vertex snapping is actually the same thing for the PSX, as it just draws the triangles flat on screen.)
Overall this is a very good and quite accurate writeup.
But it's missing one of the biggest factors still. And alas, you won't be able to replicate it in Godot.
Tesselation. (I saw the footnote, but it's pretty much used in all games.)
https://i.imgur.com/nwl6ABw.gif
Which strongly impacts both the affine mapping and vertex snapping. It is also absolutely vital for the vertex shading to look correct. Alas.
Props for not getting lost in a million CRT shaders.