DarkStarSword / 3d-fixes

Stereoscopic 3D fixes using Helix mod & 3DMigoto
105 stars 126 forks source link

question about filter_index when resource itself changed #23

Closed AkaShrug closed 10 months ago

AkaShrug commented 10 months ago

sorry for making issue about it but i cant find answer anywhere i searched , for example if i use filter_index like this it works i can load ini param in shader and use that to check

[ShaderOverrideTest]
hash=...
x15=ps-t0
checktextureoverride=ps-t0
[TextureOverrideTest]
hash=...
filter_index=1111

but if i change Test itself then it no longer match ? is it because resource changed so hash is different now? but even trying new resource hash (like what i can get from framedump) wouldnt work or is filter_index is not meant to work when resource changed or im doing something wrong?

[ShaderOverrideTest]
hash=...
x15=ps-t0
[TextureOverrideTest]
hash=...
filter_index=1111
this=ResourceTest
[ResourceTest]
filename=test.dds
DarkStarSword commented 10 months ago

I assume that checktextureoverride=ps-t0 is also supposed to be in the second excerpt the same way it is in the first?

Right, once you bind ResourceTest to ps-t0 it will no longer match TextureOverrideTest and won't use that filter_index when evaluating "ps-t0". Resource sections cannot currently have a filter_index of their own (I could possibly look at adding that if you think it might be helpful), and will evaluate as +0.0 signifying that there is a texture bound that did not match any TextureOverride (no texture bound evaluates as -0.0 that you can test with the === operator, texture bound matching a TextureOverride evaluates as filter_index if it has one, or +1.0 if it doesn't).

Typically you would want to backup a reference to the original texture and restore it before the next draw call, which would then make allow it to evaluate from the matching TextureOverride's filter_index again.

AkaShrug commented 10 months ago

I assume that checktextureoverride=ps-t0 is also supposed to be in the second excerpt the same way it is in the first?

yes , forgot to type it

Right, once you bind ResourceTest to ps-t0 it will no longer match TextureOverrideTest and won't use that filter_index when evaluating "ps-t0". Resource sections cannot currently have a filter_index of their own

oh i see , as for being helpful to add for resources im not sure , most what i was doing just to limit shaderfix to only when it is using certain texture but noticed that it wont work if i override that texture so wanted to ask about it , thanks for answering

DarkStarSword commented 10 months ago

Closing this out - if you need further help feel free to reopen this ticket, or a new one :)