diff options
| author | 2026-06-26 17:48:47 -0400 | |
|---|---|---|
| committer | 2026-06-26 17:48:47 -0400 | |
| commit | eb4941f2c0dd216c0f97be20c3b6b7167185ddd5 (patch) | |
| tree | e0a15ba329b12d009bfa116c7204ddc636d99a8b /Plugin.cs | |
| parent | c388fff89501ac79c2c3febfd7476020e6778495 (diff) | |
| download | WorldTuningTool-eb4941f2c0dd216c0f97be20c3b6b7167185ddd5.tar.gz WorldTuningTool-eb4941f2c0dd216c0f97be20c3b6b7167185ddd5.tar.bz2 WorldTuningTool-eb4941f2c0dd216c0f97be20c3b6b7167185ddd5.zip | |
TAA object
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'Plugin.cs')
| -rwxr-xr-x | Plugin.cs | 80 |
1 files changed, 79 insertions, 1 deletions
@@ -1758,6 +1758,23 @@ namespace WorldTuningTool newParameter<float>("FXAA Edge Threshold Min", 0x180, ParameterType.FLOAT, pMinMaxStep(0.0f, 1.0f, 0.001f))
};
+ private delegate nint CreateTAAObject();
+ private delegate nint CreateTAAObject2(nint unknownPtr);
+ private delegate nint DestroyTAAObject(nint taaObjectInternal, int unknownInt);
+ private Hook<CreateTAAObject>? createTAAObject;
+ private Hook<CreateTAAObject2>? createTAAObject2;
+ private Hook<DestroyTAAObject>? destroyTAAObject;
+ private nint taaObject = 0x0;
+ private static Parameter[] taaParameters = {
+ newParameter<bool>("TAA Reprojection", 0x19D, ParameterType.BOOL),
+ newParameter<bool>("TAA Jitter Enable", 0x184, ParameterType.BOOL),
+ newParameter<float>("TAA Blend Rate", 0x180, ParameterType.FLOAT),
+ newParameter<float>("TAA Variance Gamma", 0x194, ParameterType.FLOAT),
+ newParameter<bool>("TAA Sharpen", 0x187, ParameterType.BOOL),
+ newParameter<float>("TAA Sharpen Amount", 0x198, ParameterType.FLOAT),
+ newParameter<bool>("TAA Sharpend Ignore Edges", 0x19C, ParameterType.BOOL)
+ };
+
private static MtObject? sMain = null;
private static Parameter[] allParameters = new Parameter[]{ hqMode }
@@ -1776,7 +1793,9 @@ namespace WorldTuningTool .Concat(bloomParameters)
.Concat(dofParameters)
.Concat(motionBlurParameters)
- .Concat(fxaaParameters).ToArray();
+ .Concat(fxaaParameters)
+ .Concat(taaParameters)
+ .ToArray();
private static int currentShadowResMultiplier = 1;
private static NativeAction<int> setShadowQuality;
@@ -2184,6 +2203,10 @@ namespace WorldTuningTool createFXAAObject2 = Hook.Create<CreateFXAAObject2>(0x142393680, CreateFXAAObject2Hook); // nint
destroyFXAAObject = Hook.Create<DestroyFXAAObject>(0x142393740, DestroyFXAAObjectHook); // nint, int
+ createTAAObject = Hook.Create<CreateTAAObject>(0x1423911A0, CreateTAAObjectHook);
+ createTAAObject2 = Hook.Create<CreateTAAObject2>(0x142391320, CreateTAAObject2Hook); // nint
+ destroyTAAObject = Hook.Create<DestroyTAAObject>(0x1423916E0, DestroyTAAObjectHook); // nint, int
+
IntPtr addr = PatternScanner.FindFirst(Pattern.FromString("48 89 5C 24 10 48 89 74 24 18 48 89 7C 24 20 55 41 56 41 57 48 8B EC 48 83 EC 30 48 8B FA 48 8B D9 E8 AA B6 C1 FF 48 8B 47 10 48 8D 57 50"));
Assert(addr == 0x141AB2260); // nint, nint
updateShadowParams = Hook.Create<UpdateShadowParams>(addr, UpdateShadowParamsHook);
@@ -2610,6 +2633,13 @@ namespace WorldTuningTool param.Update(fxaaObject);
}
}
+ if (taaObject != 0x0)
+ {
+ foreach (Parameter param in taaParameters)
+ {
+ param.Update(taaObject);
+ }
+ }
}
private void EvalSceneParamsHook(nint unknownPtr, nint unknownPtr2, int unknownInt, nint unknownPtr3)
@@ -2694,6 +2724,40 @@ namespace WorldTuningTool return destroyFXAAObject!.Original(fxaaObjectInternal, unknownInt);
}
+ private nint CreateTAAObjectHook()
+ {
+ taaObject = createTAAObject!.Original();
+ foreach (Parameter param in taaParameters)
+ {
+ param.Update(taaObject);
+ }
+ return taaObject;
+ }
+
+ private nint CreateTAAObject2Hook(nint unknownPtr)
+ {
+ taaObject = createTAAObject2!.Original(unknownPtr);
+ foreach (Parameter param in taaParameters)
+ {
+ param.Update(taaObject);
+ }
+ return taaObject;
+ }
+
+ private nint DestroyTAAObjectHook(nint taaObjectInternal, int unknownInt)
+ {
+ Assert(unknownInt == 1);
+ if (taaObject == taaObjectInternal)
+ {
+ taaObject = 0x0;
+ foreach (Parameter param in taaParameters)
+ {
+ param.Update(taaObject);
+ }
+ }
+ return destroyTAAObject!.Original(taaObjectInternal, unknownInt);
+ }
+
private nint CreateDofObjectHook()
{
dofObject = createDofObject!.Original();
@@ -3921,6 +3985,20 @@ namespace WorldTuningTool }
ImGui.PopID();
+ ImGui.PushID("TAA");
+ if (ImGui.CollapsingHeader("TAA"))
+ {
+ if (taaObject != 0x0)
+ {
+ ImGui.Text($"Address: 0x{taaObject:X}");
+ foreach (Parameter param in taaParameters)
+ {
+ param.Draw(width);
+ }
+ }
+ }
+ ImGui.PopID();
+
ImGui.Separator();
}
|