Page 1 of 2

PS1 style rendering

Posted: Sun Jan 29, 2023 2:14 pm
by AshHouswares
I've been asking this for years but can never get any advice on this subject. I am trying to emulate the look and feel of a PS1 game on my project.

By this I mean:

1. Texture warping
2. Limited draw distance (black smog for further out areas)
3. Jitter on graphics

To simplifiy... Affine Texture Mapping.

I find it very hard to believe that an engine as powerful as GZDOOM, especially in UDMF format cannot emulate this behaviour. Lots of other engines have done this, just look at the Bloodborne Demake (I know that was done on unreal engine 4 but regardless I do not see why GZDoom cannot do what the PS1 could do considering the PS1 is less powerful than it).

Can someone please help me out with this, I really need some kind of method or trick to pull this off. GZDoom engine already has a bunch of graphical features not present in other source ports, surely there is no reason a PS1 filter cannot be achieved by someone using the engine. I just need to know how.

Re: PS1 style rendering

Posted: Sun Jan 29, 2023 2:46 pm
by wildweasel
Mimicking these effects is going to need powerful shader support, the likes of which I'm not sure that GZDoom has support for. The Doom engine does not render textures as affine, and to my knowledge we do not (yet?) have access to running arbitrary shaders in-world.

Whether GZDoom is "powerful" or not doesn't quite describe what you're asking it to do. The thing is, you're needing to fake rendering artifacts that are endemic to a completely different method of 3D rendering from what the Doom engine does. And if not faking them, then using a different rendering method altogether - and to use a different method of rendering, you would have to - at this point - use a different engine.

Re: PS1 style rendering

Posted: Sun Jan 29, 2023 2:53 pm
by AshHouswares
Ah. This is disappointing... :( I really feel that affine texture mapping would be the perfect last step in my project.

Re: PS1 style rendering

Posted: Mon Jan 30, 2023 5:38 am
by Professor Hastig
This isn't really hard - all this would theoretically need is to mess around with the vertex coordinates in the vertex shader - which has never been exposed to modding.

It still begs the question: Why would you want to do such stuff? PS1 visuals is one of the ugliest looking things that ever existed.

Re: PS1 style rendering

Posted: Mon Jan 30, 2023 9:16 am
by shino1
Not all artistic choices are done to look pretty or nice. Sometimes ugly is what people need.

Re: PS1 style rendering

Posted: Mon Jan 30, 2023 3:06 pm
by Redneckerz
There is always PsyDoom which is quite literally the PSX Doom renderer on PC.

Re: PS1 style rendering

Posted: Mon Jan 30, 2023 6:05 pm
by wildweasel
Redneckerz wrote: Mon Jan 30, 2023 3:06 pm There is always PsyDoom which is quite literally the PSX Doom renderer on PC.
The fact that OP is looking for textures that warp, implies to me that they want a renderer that looks like every PlayStation game besides Doom.

Re: PS1 style rendering

Posted: Mon Jan 30, 2023 7:38 pm
by Dan_The_Noob
I hate this trend of indies and things making "ps1 graphics" but really they just make ugly crunchy games with low poly models.

Re: PS1 style rendering

Posted: Mon Jan 30, 2023 8:25 pm
by wildweasel
Dan_The_Noob wrote: Mon Jan 30, 2023 7:38 pm I hate this trend of indies and things making "ps1 graphics" but really they just make ugly crunchy games with low poly models.
Your opinion is noted, however, this is a help thread.

Re: PS1 style rendering

Posted: Mon Jan 30, 2023 8:43 pm
by Dan_The_Noob
wildweasel wrote: Mon Jan 30, 2023 8:25 pm
Dan_The_Noob wrote: Mon Jan 30, 2023 7:38 pm I hate this trend of indies and things making "ps1 graphics" but really they just make ugly crunchy games with low poly models.
Your opinion is noted, however, this is a help thread.
OH I didn't even put my suggestion/thought!

I was going to say, maybe you can do some animated texture trickery or access the Zbuffer (depth) somehow.

Re: PS1 style rendering

Posted: Tue Jan 31, 2023 12:31 am
by ramon.dexter
What about retroshader?

viewtopic.php?f=103&t=53250

Re: PS1 style rendering

Posted: Tue Jan 31, 2023 1:29 am
by Nash
ramon.dexter wrote: Tue Jan 31, 2023 12:31 am What about retroshader?

viewtopic.php?f=103&t=53250
That mod no longer works with GZDoom and hasn't for a very long, long time, explanation here: viewtopic.php?p=998055#p998055

In short: that mod, at the time of release, worked by overwriting the vertex shader in GZDoom. This is not meant to be exposed for modding, so GZDoom made it impossible to overwrite it.

Re: PS1 style rendering

Posted: Tue Jan 31, 2023 6:56 am
by Professor Hastig
For a standalone game it would be safe to overwrite the vertex shader with a custom version.

But let's not forget a few things about the PS1 that are harder to emulate, like the complete lack of depth buffer and frequent polygon bleeding as a result. This would be a lot harder to emulate.

Re: PS1 style rendering

Posted: Sat Feb 04, 2023 12:14 pm
by AshHouswares
I would like to point out that this PS1 Style was not done to be "trendy". This game concept was conceived in 1998, the game was always supposed to look like this. You could argue that since technology has moved on so much since then there would be no excuse to keep it looking like it would have back then. But the lead designer is adamant that it has to keep true to the original vision, including how it renders. That includes jittering, warping graphics and so on. This is not because it looks better, but looks more accurate to how he designed it on paper 20 years or so ago.

I have since gone for using the retroshader, since our game runs on a custom edition 3.3.0. (this is a standalone commercial game project and is not meant to be used with other versions). This made it easy enough for us to implement this retroshader (the first version in the post you linked... that's the only one we could get to work correctly). The vertex jiggle is perfect. We still need texture warping but that may have to wait (since it relies on changing the engine too much). Also, the field of view. We still have to lower that to a black fog.

However, there is a small issue.

This retroshader... it warps all the text on screen as well. This makes reading documents very difficult. Anyone have any idea how to make text and dialogue not be affected by the retroshader? We are using the original version, original method as posted in that thread by the guy with the Bowie avatar. That's the one we are using. Lead designer is happy with how that looks but the text and fonts are all warped and hard to read. Surely, there is a way to work around the text and dialogue not being affected?
Professor Hastig wrote: Tue Jan 31, 2023 6:56 am For a standalone game it would be safe to overwrite the vertex shader with a custom version.

But let's not forget a few things about the PS1 that are harder to emulate, like the complete lack of depth buffer and frequent polygon bleeding as a result. This would be a lot harder to emulate.
But isn't this no longer available in 4.10?
Nash wrote: Tue Jan 31, 2023 1:29 am
ramon.dexter wrote: Tue Jan 31, 2023 12:31 am What about retroshader?

viewtopic.php?f=103&t=53250
That mod no longer works with GZDoom and hasn't for a very long, long time, explanation here: viewtopic.php?p=998055#p998055

In short: that mod, at the time of release, worked by overwriting the vertex shader in GZDoom. This is not meant to be exposed for modding, so GZDoom made it impossible to overwrite it.
I feel a need to ask why. Some of us are not just making mods. We are working on our own original projects and should we not be allowed to do this in our own standalone games? Why should we be stifled like this. I am at an awkward point now where I need custom cheats for our project. To do this, it seems i cannot use 3.3.0 (unless you can give me an alternate method) and by upgrading to 4.10 which does allow such options, we now lose our retro shader. I feel this is harmful to the project.

Re: PS1 style rendering

Posted: Mon Feb 06, 2023 8:24 am
by Professor Hastig
AshHouswares wrote: Sat Feb 04, 2023 12:14 pm I feel a need to ask why. Some of us are not just making mods. We are working on our own original projects and should we not be allowed to do this in our own standalone games? Why should we be stifled like this. I am at an awkward point now where I need custom cheats for our project. To do this, it seems i cannot use 3.3.0 (unless you can give me an alternate method) and by upgrading to 4.10 which does allow such options, we now lose our retro shader. I feel this is harmful to the project.
That's the risk you take when working outside an engine's established parameters. You are surely free to do it but you automatically forfeit the ability to upgrade at some point.
At this point you may have to actually fork the engine and add your own changes there, where you have full control.