4lex4nder / ReshadeEffectShaderToggler

Reshade 5+ addin to apply Reshade effects to render targets of shader groups based on a key press. It allows you to configure these groups from within the addin as well.
MIT License
106 stars 10 forks source link

Odd behaviour with Elder Scrolls Online #7

Closed Gunlaus closed 1 year ago

Gunlaus commented 1 year ago

So I'm trying to isolate the HUD and unfortunately the game is exhibiting some unintended effects from doing so. I made sure I had a shader that covered the whole screen, then I first searched for vertex shaders that had the effect active but not on the HUD and that worked but as soon as I start moving a still image will cover the screen (think screenshot) that only disappears when the camera is on a certain angle making the game unplayable. I've tried again with a different vertex shader and while it worked, the shader effects I'd activate would have what I can only describe as a gamma issue as it feels like every effect is twice applied (blacks crushed, etc)

I repeated the process with pixel shaders and I've gotten the same issue. I'd catch a pixel/vertex shader that relatively works but as soon as I fast travel to a different location the still image issue would pop up again. I'm not an expert by any means and I would really appreciate some help.

4lex4nder commented 1 year ago

Did you use a specific release or did you compile from source?

Gunlaus commented 1 year ago

Woops, I had a feeling I forgot to mention something important. So I've tried both 1.0.1 and 1.1.0-testing, both have the same issues.

ezudo commented 1 year ago

I'm encountering very similar issues, although not just with E.S.O. in particular. SMAA always seems to darken the whole image when being affected by a shader toggle group, one that renders the UI after the effect for example, and sometimes all effects that are affected by a toggle group get disabled alltogether, depending on where the camera is pointed at or located, but then work again once the camera is pointed to a working angle.

While the idea of this addon is awesome, this sadly makes it a bit unpractical and annoying to use when effects such as MXAO or RTGI just disable at random angles.

4lex4nder commented 1 year ago

The darkening issue is fixed in the current dev branch (next), though there's no release build yet (unless you want to compile yourself to play around with it). Same kinda-sorta goes for effects disappearing, though the underlying issue is that not all shaders are enabled at all times in a game. At best you'll suddenly have effects rendered on top of the UI. So either you find one that is stable enough, or you're just out of luck. This addon uses a very specific method to do what it does, it is no silver bullet.

GottaSlay commented 1 year ago

Hey! How would one go about compiling the dev branch version? I have also been running into the same darkening issue with some of my favorite shaders and would totally be up for messing around with the new version.

Gunlaus commented 1 year ago

The darkening issue is fixed in the current dev branch (next), though there's no release build yet (unless you want to compile yourself to play around with it). Same kinda-sorta goes for effects disappearing, though the underlying issue is that not all shaders are enabled at all times in a game. At best you'll suddenly have effects rendered on top of the UI. So either you find one that is stable enough, or you're just out of luck. This addon uses a very specific method to do what it does, it is no silver bullet.

So I've tested the next-branch and unfortunately it doesn't work at all with ESO, I can cycle through the vertex/pixel shaders but nothing is happening on screen.

sh0t4r0 commented 1 year ago

I had this problem too with DDO. I think that this addon is using some modified version of ShadderToggler.

If it helps the dev to fix this issue and create a more generic solution (and everyone can use this to test if it works with your game);

I think that the "shader finder solution" needs to look at the original idea and adapt on this add-on. Using ShaderToggler from FransBouma (https://github.com/FransBouma/ShaderToggler) i could normally find the UI and disable in-game without flickering and problems(needs testing on other games).

Since the FransBouma add-on is just to remove the shader, 4lex4nder gonna need to look at his solution that he uses to "search/select" shader and adapt.

I hope this help moving this project forward, this could be the biggest innovation around game modding!

PSA: i couldn't make the last release work with my game, just the 1.1.0-testing (it crashs after all shaders load).

FoGsesipod commented 1 year ago

For everyone's information, I finally tried REST in ESO and the problem is on ESO's end not the addon itself, the addon functions as expected there just unfortunately isn't a pixel or vertex shader that draws only the UI elements and does absolutely nothing else (what 99% of REST users look for)

as for @sh0t4r0 Reshade Effect Shader Toggle, is a fork of Shader Toggler, its base code is from Frans Bouma's Shader Toggler, the pixel/vertex shader finder used to work exactly the same, but because of the differences between the two addons, REST needs to function differently, that difference mainly being you need to enable the group before looking for shaders.

so for alex, unless you would like to absolutely confirm by getting the game for yourself, i think you can safely close this issue. as ESO is at fault, not REST.

Gunlaus commented 1 year ago

For everyone's information, I finally tried REST in ESO and the problem is on ESO's end not the addon itself, the addon functions as expected there just unfortunately isn't a pixel or vertex shader that draws only the UI elements and does absolutely nothing else (what 99% of REST users look for)

as for @sh0t4r0 Reshade Effect Shader Toggle, is a fork of Shader Toggler, its base code is from Frans Bouma's Shader Toggler, the pixel/vertex shader finder used to work exactly the same, but because of the differences between the two addons, REST needs to function differently, that difference mainly being you need to enable the group before looking for shaders.

so for alex, unless you would like to absolutely confirm by getting the game for yourself, i think you can safely close this issue. as ESO is at fault, not REST.

If that were true then using shader toggler to disable the HUD would also disable some other effects, no? Because straight up disabling it is a non-issue.

4lex4nder commented 1 year ago

Looked into the game. ESO renders the UI onto a blank buffer first, which is then blended and tonemapped in a single step with the pre-tonemapped game color buffer. There's no step between the tonemapping and blending of the UI where REST can inject itself. The original ShaderToggler can disable the HUD by preventing the execution of the shader that renders the UI onto the blank buffer, but that means nothing for how REST works. REST and ST do very different things.

Gunlaus commented 1 year ago

Looked into the game. ESO renders the UI onto a blank buffer first, which is then blended and tonemapped in a single step with the pre-tonemapped game color buffer. There's no step between the tonemapping and blending of the UI where REST can inject itself. The original ShaderToggler can disable the HUD by preventing the execution of the shader that renders the UI onto the blank buffer, but that means nothing for how REST works. REST and ST do very different things.

That is very unfortunate. Thank you for testing out the game and for creating this shader tool.