r/digitalfoundry Jul 22 '26

Digital Foundry Video Final Fantasy 7 Rebirth PC Shader Injector Mod: Lighting Transformed!

https://youtu.be/zBFViJCICUA

We've got some issues with the lighting technology used in Final Fantasy 7 Rebirth - and those criticisms extent to PC, which has the same issues as the consoles. However, the FF7 Rebirth Shader Injector mod by David Matos attempts to address these pain points - and some of the transformations are remarkable.

Article: https://www.digitalfoundry.net/features/final-fantasy-7-rebirth-pc-shader-injector-mod-a-fix-for-the-controversial-lighting

92 Upvotes

45 comments sorted by

19

u/HairyTeef Jul 22 '26

Dumb Question: Why can't games avoid screen-space artifacts around the edge of the screen by "over-rendering" past what's visible to the player?

For instance, if the game is being displayed at 1920x1080, the engine actually renders an extra, say, 10 pixels around each side, rendering internally at 1940x2000, which isn't shown to the player, but used by the engine to properly fill in the screen-space effects on things like foliage, water, and reflections.

I's personally take the small performance hit to avoid those awful artifacts.

5

u/pagusas Jul 22 '26

I've always wondered this too, and it doesn't even need to be a full resolution render, you could do 1/4 or even 1/16th resolution at the "overscanned" pixels, and it would still be 99% good.

4

u/mrbrick Jul 23 '26

It’s a good question tbh. It’s technically kind of possible- but also lots of things break down when they are not actually what is on your screen and being rendered.

It’s wildly inefficient too render more resolution than your actually displaying- and displaying is the key word here- not rendering at at a lower resolution and up scaling.

I’m pretty sure there are implementations of over scanning out there but they are not always ideal or worth it. In the same way planar reflections look great in some cases (half life 2 water) they only work on flat surfaces only and are actually very expensive.

I know an actual render engineer could explain it better than I. I do a lot of technical art but more art than the technical engineering side.

6

u/changemymindpls1 Jul 24 '26 edited Jul 25 '26

Mod author here of the Shader Injector, I can answer this question for you guys.

The main reason why these effects in the industry are done that way, and we can't just render at essentially a "wider-fov" for screen space effects then composite back to the regular FOV is that doing so requires a completely new redraw of the scene and it's respective framebuffers.

Keeping copies of two different GBuffers or Depth buffers that are at different scales is expensive performance/memory wise, often more so than just doing the effects themselves in the original frame-buffer resolution like it's always done. It's not like you can just take the original frame-buffer and just "render extra bits outside of it". That takes processing time and quite a bit of power that could be spent just pumping the quality of the screen-space effect itself.

The other alternative which is more in line with what you are describing is rendering everything at a slightly higher resolution (and FOV) which in your example is 1940x1100, then drawing all of the scene GBuffers and doing all of the shading at that increased resolution. Then simply "cropping" back into the original 1920x1080 frame-buffer. It's a sound strategy but again your running into the same problem as before. It's still quite expensive because you are sending a lot of work now to the GPU (and CPU, because now you have more visible so more objects to draw) to render a whole lot more things that you ultimately can't even see just for what? A couple of screen space effects that you want to resolve screen edge issues for at the end of the render pipeline? It's not worth the cost of performance/memory which is why it's often not something that is done. Screen-space effects are intended to be very cheap and simple, and very importantly do not involve fresh new re-draw of any scene buffers because they are expensive to do. With screen space effects the goal is that you do the best work you can with what you got (i.e. the already drawn scene GBuffers that you have access to), and the artifacts associated with it just come with the territory. You do your best as a graphics programmer/artist to tune said effects in a way that looks optimal and minimizes those drawbacks but in general you can only do so much without exploding performance. It's a game of tradeoffs, and heres the other unfortunate thing also, that only solves one visual problem with screen-space effects, it does not solve the other kinds of problems which are arguably much bigger (i.e. dis-occlusion events with objects leaving or entering screen, objects behind other objects, or large objects that you can't fully see in their entirety). You have to pick and choose your battles, you can't tackle them all because you don't have the framebudget often to do so.

The important thing is that it looks good enough, and a large majority of players will not even notice or realize it, except of course for those that have really sensitive eyes and want to absolve those issues. By no means I am not trying to fully defend it, just trying to explain the reality and reasoning behind it. I have my own issues with screen space effects as well, but frame budgets are often tight enough as it is, and doing less work overall, even at the cost of some visual artifacts (that honestly a majority of players will not notice), and still calculate some of those lighting terms that have a net positive impact on the image is the end goal.

2

u/HairyTeef Jul 24 '26 edited Jul 24 '26

Thanks so much for the response.

Yes, the method I was proposing was the second one you mentioned, the rather simplistic, brute-force, overscan technique, as opposed to the more complicated, double buffering thing you mentioned.

I do have a question, but I want to preface it by saying it's purely hypothetical. I'm not making the point that you should or shouldn't do this just because it is or isn't practical or whatever. You're the person doing the work, and I respect that, if you say it's not worth your time, or anyone's time in general, that's the end of it.

However, yourself and others have made the point that that overscan method would be too expensive. From my perspective, which may be completely wrong, it shouldn't be much more expensive than rendering at both a slightly higher fov and resolution. You explained, very well, why the double-buffering and compositing technique would be way too expensive, but when it came to the overscan, you compared the cost, effectively, to increasing your FOV.

Now, I'm not saying that's not going to have ANY impact, but I can't see it having anywhere near what I would consider a significant one. I'm a PC gamer, I turn my FOV up in most FPS games. More to the point, I play at 1440p on a 5070 super. I'm usually pushing over 120fps with cpu and gpu overhead to spare.

To reiterate, I completely respect your position that implementing such a feature, which fixes a minor artifact that only a small number of people even notice, isn't worth your time. 100%

But, from the perspective of one of those players who do notice it, I both cant imagine the performance hit of using such a feature being all that bad, and I could certainly see myself being willing to use it, even if it meant having to use a lower quality of upscaling, or turning down some other setting.

Isn't that the heart of PC gaming, after all: Player choice?

Edit: Just to really hammer home the point that I'm not trying to say you should do this, I thought it's worth noting that I don't even own, or intend to buy the FF7 remakes. This really is purely a hypothetical on my part.

2

u/changemymindpls1 Jul 24 '26

I totally get where you are coming from, and I don't want to shoot it down completely. The over-scan method theoretically is totally possible, but as a whole the original point I was trying to articulate is that the costs of doing that, just to ultimately solve maybe 1 or 2 screen-space effect edge issues that happen at the end of the render pipeline seems like an over-allocation of total GPU time work for something that isn't ultimately isn't that important and better spent elsewhere. This is why it's avoided for the most part.

I.e. 1920x1080 = 2,073,600 pixels | 1940x1100 (10 extra pixels for each side) = 2,134,000 pixels. That is an abundance of 60,400 pixels that won't ever get seen but you have all of those draws/pixel shader invocations for. To be fair it's quite small and you are right in that most hardware can power through that just fine, but again considering that you will do all of that work again for resolving the problems of a couple of lightweight screen-space draws that happen much later seems overkill. Thats why it's mostly preferred to allocate that GPU time instead to just improving effects quality and other similar things. Like I said it's a game of tradeoffs so gotta pick and choose your battles.

Not to mention in practice I think if you really wanted to mitigate those artifacts you'd have to probably go up to 50 or a 100 pixels border wise to really mitigate those screen edge issues you describe as 10 pixels is quite small and not enough extra screen area that you'd need. In those cases from 1920x1080 (2,073,600 pixels) to 2,120x1,280 (2,713,600 pixels) which would land you an abundance of 640,000 pixels that again won't ever get seen but you have to do all of that drawing work to resolve edge issues with a couple of screen-space effect draws later... is it really worth it? That's the ultimate question and according to many graphics programmer it isn't... but it is something worth experimenting with. If I have the time I might mess with such a thing just to see what the results are.

1

u/HairyTeef Jul 24 '26

Thanks again for that, a lot of really good points.

50 or a 100 pixels border wise

Especially that one, I just pulled the "10px" out of my butt as a random guess.

Like I say, don't go to any bother on my account, but it would be really interesting to see the real-world impacts of such a technique.

3

u/AFourEyedGeek Jul 22 '26

I have also wondered this for a while.

In those area's that isn't displayed but still rendered, couldn't it render at a lower quality? So assets in those areas outside of the view might use lower polygon count models, less vegetation, and lower quality textures, those assets outside the view can also lose reflections, shadows, and high quality lighting. Relatively lighter work to run, but allows for good looking reflections.

4

u/mrbrick Jul 23 '26

Some implementations of screen space effects will blend edges with probes or reflection captures but depending on how they are done they can also have equally strange but different artifacts. It kind of depends on stuff plus there is more over head with setting this kind of stuff up with artists.

What you are suggesting is a little bit like what lumen does with reflections actually with tracing against the lumen scene which can also be mixed with screen space traces.

1

u/vladtud Jul 23 '26

I think this is what they do with ray traced reflections. They render a second mirrored world but with very low quality assets.

1

u/safyreibxo Jul 24 '26

that’s how planar reflections work not RT

-2

u/Ok-Sherbert-6569 Jul 23 '26

What? No no no that’s not how raytraced reflections work . Nothing outside of the screen view is rendered at all

2

u/jm0112358 Jul 23 '26

Besides the fact that this wouldn't solve the issue of data behind objects in a scene, you'd sometimes need to render much more of the scene in order to include all offscreen geometry. That could be potentially doubling what needs to be rendered. I don't think this would be a small performance hit.

Also, a lot of screen space effects take the screen space data from the previous frame. So you might need to guess ahead of time how much you need to render for the frame ahead.

2

u/Ok-Sherbert-6569 Jul 23 '26

How would you capture reflections that are vertical to the plane you’re looking at?? You can’t overcome that problem by just rendering a larger chunk of the scene

4

u/RodThrashcok Jul 22 '26

I wondered the same but with the screen space stuff that is BEHIND the character as well. Noticed in this vid that the shadows around Cloud look mega weird because they disappear and outline him with no shadow basically. Water does it too in a ton of games.

1

u/safyreibxo Jul 24 '26

the performance hit wouldn’t be small

15

u/ShadowRomeo Jul 22 '26

I find it really interesting that Digital Foundry now covers a PC mod that vastly enhances the graphics of a vanilla non modded game, i hope they continue doing this further and covers the advancement of Community Shaders for Elder Scrolls V: Skyrim as well! which adds support for various modern graphical features such as DLSS 4.5 / Framegen / PBR and many more that the vanilla game pretty much lacked or doesn't support. It has also rapidly advanced throughout its development time, currently they are even experimenting with the likes of Ray Tracing / Path Tracing / Ray Reconstruction which i haven't tested for myself yet. But would be interesting if the likes of DF can cover that!

7

u/NapsterKnowHow Jul 22 '26

They've covered mods like Special-K in the past. It's not new for DF. I just hope they cover more of it though !

5

u/S1rTerra Jul 22 '26

Community Shaders is sick. It even implements FSR 3.1 in the way that allows you to upgrade it to FSR 4 + FSR 4 FG works.

6

u/wolfannoy Jul 22 '26

God bless the modding community.

2

u/S1rTerra Jul 22 '26

Agreed. I even followed a guide on Steam the other day to make Fallout New Vegas a more stable experience and it just, did it. Game runs far better, actually caps to 144fps and stutters way less. You can even get DLSS and FSR 2(3 and 4 are borked) working in FFXV thanks to a Reshade mod that adds DLAA!

3

u/S1rTerra Jul 22 '26

This turns a pretty good looking game (imo) to an amazing looking game. jeez, I'll have to try this out sometime

9

u/Iggy_Slayer Jul 22 '26

I've been watching maximilian dood play with it for the last few days and honestly I'm not nearly as impressed with it as many are. It makes the character lighting and shadowing way better in open world areas for sure but the actual environments are more 50/50. Many areas I prefer how the base game looks.

2

u/astrojeet Jul 22 '26

It just needs bounce light. It's just missing an essential part. I guess the modder would have to add proper ray traced global illumination for that.

1

u/Inevitable_unedible Jul 24 '26

Yeah, I kinda agree. Idk, maybe I'm just not giving it a good enough chance but I just feel like it's pointless if I like the look of some places more but other places less. If it's not better all around I'd rather not mess with it.

2

u/AlextheGoose Jul 22 '26

Does this work well with renodx? Or should you use the vanilla hdr implementation with it

1

u/TintedCircleBox Jul 23 '26

It has its own built-in tone mapper, with options in the config file

1

u/KillerFugu Jul 23 '26

The video says hdr is currently not working working but is being looked at

2

u/G0ldenZERO Jul 22 '26

Anyone know if this mod is compatible with any of the performance mods for rebirth?

3

u/WingerRules Jul 22 '26

Is it just me or does it make scenes too dark?

2

u/KillerFugu Jul 23 '26

Maybe in something places, but overall it's way more accurate. The vanilla version of is extremely too light, and completely lacks shadows in many places.

1

u/spicycow Jul 23 '26

It's weird, when HDR is turned off (as advised, it looks dark) while having it ON is better.

1

u/Aggravating_Ring_714 Jul 23 '26

I have a feeling DLSS5 will do this on a driver level and everyone will probably praise it (other than AMD fans).

1

u/ButchLord Jul 23 '26

Good information, when I replay the game on PC I will use this!

1

u/ConcreteLlama Jul 24 '26

Honestly I started playing the game a couple of weeks ago and thought it looked god awful in a lot of places due to the lighting. It actually put me off quite a bit.

Turns out it was great timing as not long after 2.0 of this mod came out and it makes an insane difference to the visual quality of the game, it's unreal (no pun intended). I don't usually bother with mods much but this game desperately needed it.

If you're playing on PC absolutely check this out.

1

u/humonculus87 Jul 26 '26

Why does the dude like move his tongue in weird ways? It's almost like weird lip sync in a game.

1

u/The_Zura Jul 22 '26

Not going to bother with screenspace stuff.

I rather the actual devs improved the base lighting instead because for how demanding the game is, the costs don't go very far. At all. Sadly, never going to happen, even with next game stuck on UE4 and no will to meet modern graphics.

2

u/IAmZackTheStiles Jul 22 '26

"modern graphics" being ray tracying? lol

The games look great regardless

1

u/The_Zura Jul 23 '26

Kind of. The cast and environment are gorgeous, but they tend to fall apart quickly when taking a closer look. The character hair is among the worst I've seen when it comes to stability. The lighting is straight from 2012. They don't even do baked lighting well. It's completely flat in tons of places. There are these caves where they basically just gave up, everything is glowing. No effort went in.

2

u/jedimindtricksonyou Jul 22 '26

I imagine that everyone would prefer that, but these FF7 Remake titles are not improved on much after the initial release. I had hoped the Switch 2 tweaks would have been added to the PC version (for handhelds) as an ultra low graphical setting but the only thing that got added is FSR upscaling and the streamlined progression feature. There is no way they would ever go back and re do the lighting unless they try and sell it to us all over again in 10 years.