They can vary a bit. Like in the temporary register they use. Some may use r2 while others may use r4, etc. But similar effects usually have very similar code (imagine multiple shadows shaders. They should be mostly the same).
Comparing shaders with ones from other fixes can be tiring, yes, and there will usually be a lot of differences if the engine is different. I mostly refer to my own fixes because I know where is everything I made.
Now ontopic: how is performance at 2560x1440?
They can vary a bit. Like in the temporary register they use. Some may use r2 while others may use r4, etc. But similar effects usually have very similar code (imagine multiple shadows shaders. They should be mostly the same).
Comparing shaders with ones from other fixes can be tiring, yes, and there will usually be a lot of differences if the engine is different. I mostly refer to my own fixes because I know where is everything I made.
[quote="DHR"]
That seesm not be the correct shader...try to found another shader that remove only the wrong effect, not all shadows. Also a screenshot with the issue on screen will be nice.[/quote]
Thanks for your feedback, DHR. I'm adding a default shot with all issues still on screen at maximum shadow detail. (Btw: The game's options allow for 4 different shadow settings - off, 1, 2 and 3).
Not sure why I've uploaded the wrong shader previously, sorry. I'll add the one we were talking about at the end of this post.
Most correctly appearing character and object shadows are still present after deactivating it in hunting mode, so this PS doesn't remove shadows altogether.
[quote="masterotaku"]Just in case, Gryzor_ (you probably know this): regex doesn't affect dumped shaders, so shaders inside ShaderFixes always have the preference.
When you say shaders are renamed, do you mean the filenames? Because you seem to talk only about the numbers you see in the hunting HUD. The numbers there are just the order of the shaders in the current scene, and it grows bigger if you don't clear it with "numpad +". It's normal for numbers to be different all the time.[/quote]
Thanks for the clarification, masterotaku. Yes, I was only talking about the order during hunting mode.
I wasn't aware that it's normal for shaders to be added during gameplay, so I falsely assumed all shaders would already be loaded into 3Dmigoto and be present on startup in hunting mode.
[quote="KoelerMeester"]Thanks for sharing Gryzor. I'm at 82 hours for Zelda BOTW and stopped playing the main quest because I don't wont the game to end.
Coincidentally tonight I was thinking when a game that could match this one would see the light. This game does seem to match the atmosphere.[/quote]
KoelerMeester, DQ XI is on par with Zelda, so go ahead and finish that one asap ;)
_____________________________________________________________________
// ---- Created with 3Dmigoto v1.3.11 on Tue Sep 11 15:40:23 2018
Texture2D<float4> t1 : register(t1);
Texture2D<float4> t0 : register(t0);
SamplerState s1_s : register(s1);
SamplerState s0_s : register(s0);
cbuffer cb1 : register(b1)
{
float4 cb1[146];
}
cbuffer cb0 : register(b0)
{
float4 cb0[34];
}
// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);
void main(
float4 v0 : TEXCOORD0,
float4 v1 : SV_POSITION0,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5;
uint4 bitmask, uiDest;
float4 fDest;
r0.x = t0.SampleLevel(s0_s, v0.xy, 0).x;
r0.y = r0.x * cb1[51].z + -cb1[51].w;
r0.x = r0.x * cb1[51].x + cb1[51].y;
r0.y = 1 / r0.y;
r0.x = r0.x + r0.y;
r0.yz = asint(cb0[32].xy);
r0.yz = -r0.yz * cb1[116].zw + v0.xy;
r1.xy = float2(0.5,0.5) * cb1[145].zw;
r1.xy = floor(r1.xy);
r1.zw = r0.yz * r1.xy + float2(-0.5,-0.5);
r1.zw = floor(r1.zw);
r1.zw = r1.zw / r1.xy;
r2.xy = float2(1,1) / r1.xy;
r1.zw = r2.xy * float2(0.5,0.5) + r1.zw;
r3.xy = r1.zw + r2.xy;
r3.xy = t1.SampleLevel(s1_s, r3.xy, 0).xy;
r4.w = r3.y;
r2.z = 0;
r2.xyzw = r1.zwzw + r2.xzzy;
r2.xy = t1.SampleLevel(s1_s, r2.xy, 0).xy;
r2.zw = t1.SampleLevel(s1_s, r2.zw, 0).xy;
r4.yz = r2.yw;
r2.yw = t1.SampleLevel(s1_s, r1.zw, 0).xy;
r0.yz = -r1.zw + r0.yz;
r4.x = r2.w;
r4.xyzw = abs(r4.xyzw) + -r0.xxxx;
r0.x = -cb0[33].y + r0.x;
r0.x = saturate(cb0[33].z * r0.x);
r0.x = 1 + -r0.x;
r4.xyzw = float4(9.99999975e-005,9.99999975e-005,9.99999975e-005,9.99999975e-005) + abs(r4.xyzw);
r4.xyzw = float4(1,1,1,1) / r4.xyzw;
r1.zw = r0.yz * r1.xy;
r0.yz = -r0.zy * r1.yx + float2(1,1);
r5.yz = r0.yz * r1.zw;
r5.w = r1.w * r1.z;
r5.x = r0.y * r0.z;
r1.xyzw = r5.xyzw * r4.xyzw;
r0.y = r1.y * r2.x;
r0.y = r1.x * r2.y + r0.y;
r0.y = r1.z * r2.z + r0.y;
r0.y = r1.w * r3.x + r0.y;
r0.z = dot(r1.xyzw, float4(1,1,1,1));
r0.y = r0.y / r0.z;
r0.y = -1 + r0.y;
r0.y = r0.x * r0.y + 1;
o0.xyzw = sqrt(r0.yyyx);
return;
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.3.11 on Tue Sep 11 15:40:23 2018
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 0 xyzw 0 NONE float xy
// SV_POSITION 0 xyzw 1 POS float
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[34], immediateIndexed
dcl_constantbuffer cb1[146], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_input_ps linear v0.xy
dcl_output o0.xyzw
dcl_temps 6
sample_l_indexable(texture2d)(float,float,float,float) r0.x, v0.xyxx, t0.xyzw, s0, l(0.000000)
mad r0.y, r0.x, cb1[51].z, -cb1[51].w
mad r0.x, r0.x, cb1[51].x, cb1[51].y
div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y
add r0.x, r0.y, r0.x
itof r0.yz, cb0[32].xxyx
mad r0.yz, -r0.yyzy, cb1[116].zzwz, v0.xxyx
mul r1.xy, cb1[145].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000)
round_ni r1.xy, r1.xyxx
mad r1.zw, r0.yyyz, r1.xxxy, l(0.000000, 0.000000, -0.500000, -0.500000)
round_ni r1.zw, r1.zzzw
div r1.zw, r1.zzzw, r1.xxxy
div r2.xy, l(1.000000, 1.000000, 1.000000, 1.000000), r1.xyxx
mad r1.zw, r2.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000), r1.zzzw
add r3.xy, r2.xyxx, r1.zwzz
sample_l_indexable(texture2d)(float,float,float,float) r3.xy, r3.xyxx, t1.xyzw, s1, l(0.000000)
mov r4.w, r3.y
mov r2.z, l(0)
add r2.xyzw, r2.xzzy, r1.zwzw
sample_l_indexable(texture2d)(float,float,float,float) r2.xy, r2.xyxx, t1.xyzw, s1, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r2.zw, r2.zwzz, t1.zwxy, s1, l(0.000000)
mov r4.yz, r2.yywy
sample_l_indexable(texture2d)(float,float,float,float) r2.yw, r1.zwzz, t1.zxwy, s1, l(0.000000)
add r0.yz, r0.yyzy, -r1.zzwz
mov r4.x, r2.w
add r4.xyzw, -r0.xxxx, |r4.xyzw|
add r0.x, r0.x, -cb0[33].y
mul_sat r0.x, r0.x, cb0[33].z
add r0.x, -r0.x, l(1.000000)
add r4.xyzw, |r4.xyzw|, l(0.000100, 0.000100, 0.000100, 0.000100)
div r4.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000), r4.xyzw
mul r1.zw, r1.xxxy, r0.yyyz
mad r0.yz, -r0.zzyz, r1.yyxy, l(0.000000, 1.000000, 1.000000, 0.000000)
mul r5.yz, r1.zzwz, r0.yyzy
mul r5.w, r1.z, r1.w
mul r5.x, r0.z, r0.y
mul r1.xyzw, r4.xyzw, r5.xyzw
mul r0.y, r2.x, r1.y
mad r0.y, r1.x, r2.y, r0.y
mad r0.y, r1.z, r2.z, r0.y
mad r0.y, r1.w, r3.x, r0.y
dp4 r0.z, r1.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
div r0.y, r0.y, r0.z
add r0.y, r0.y, l(-1.000000)
mad r0.y, r0.x, r0.y, l(1.000000)
sqrt o0.xyzw, r0.yyyx
ret
// Approximately 0 instruction slots used
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
DHR said:
That seesm not be the correct shader...try to found another shader that remove only the wrong effect, not all shadows. Also a screenshot with the issue on screen will be nice.
Thanks for your feedback, DHR. I'm adding a default shot with all issues still on screen at maximum shadow detail. (Btw: The game's options allow for 4 different shadow settings - off, 1, 2 and 3).
Not sure why I've uploaded the wrong shader previously, sorry. I'll add the one we were talking about at the end of this post.
Most correctly appearing character and object shadows are still present after deactivating it in hunting mode, so this PS doesn't remove shadows altogether.
masterotaku said:Just in case, Gryzor_ (you probably know this): regex doesn't affect dumped shaders, so shaders inside ShaderFixes always have the preference.
When you say shaders are renamed, do you mean the filenames? Because you seem to talk only about the numbers you see in the hunting HUD. The numbers there are just the order of the shaders in the current scene, and it grows bigger if you don't clear it with "numpad +". It's normal for numbers to be different all the time.
Thanks for the clarification, masterotaku. Yes, I was only talking about the order during hunting mode.
I wasn't aware that it's normal for shaders to be added during gameplay, so I falsely assumed all shaders would already be loaded into 3Dmigoto and be present on startup in hunting mode.
KoelerMeester said:Thanks for sharing Gryzor. I'm at 82 hours for Zelda BOTW and stopped playing the main quest because I don't wont the game to end.
Coincidentally tonight I was thinking when a game that could match this one would see the light. This game does seem to match the atmosphere.
KoelerMeester, DQ XI is on par with Zelda, so go ahead and finish that one asap ;)
[quote="Gryzor_"]DQ XI is on par with Zelda, so go ahead and finish that one asap ;)[/quote] Steak sauce! All these exciting new games and tech happening at once might give me a heart attack xD
@Gryzor_
I see the issue now....Try this:
1) Cycle VS with NUMPAD 4 or 5
2) When you see in the 3Dmigoto overlay "....ShaderRegex_VS_Reflections" mark the VS with NUMPAD 6
3) Press F10
That VS fix reflections sometimes depending on games cause some issues with shadows, skip them from the regex fix the issue......some games need that fix.
Hope this fix that issue
@Gryzor_
I see the issue now....Try this:
1) Cycle VS with NUMPAD 4 or 5
2) When you see in the 3Dmigoto overlay "....ShaderRegex_VS_Reflections" mark the VS with NUMPAD 6
3) Press F10
That VS fix reflections sometimes depending on games cause some issues with shadows, skip them from the regex fix the issue......some games need that fix.
[quote="DHR"]@Gryzor_
I see the issue now....Try this:
1) Cycle VS with NUMPAD 4 or 5
2) When you see in the 3Dmigoto overlay "....ShaderRegex_VS_Reflections" mark the VS with NUMPAD 6
3) Press F10
That VS fix reflections sometimes depending on games cause some issues with shadows, skip them from the regex fix the issue......some games need that fix.
Hope this fix that issue[/quote]
Thanks for the hint, DHR. I've skipped that vertex shader from the regex, but then it removed all lighting and shadows from the game, so that was overkill :P
I get a better result if I just turn off shadows in the options menu, since that won't turn off lighting and bloom.
DHR said:@Gryzor_
I see the issue now....Try this:
1) Cycle VS with NUMPAD 4 or 5
2) When you see in the 3Dmigoto overlay "....ShaderRegex_VS_Reflections" mark the VS with NUMPAD 6
3) Press F10
That VS fix reflections sometimes depending on games cause some issues with shadows, skip them from the regex fix the issue......some games need that fix.
Hope this fix that issue
Thanks for the hint, DHR. I've skipped that vertex shader from the regex, but then it removed all lighting and shadows from the game, so that was overkill :P
I get a better result if I just turn off shadows in the options menu, since that won't turn off lighting and bloom.
@Gryzor_
You need to mark the VS (NUMPAD 6), so the shader is dumped in the Shaderfixes folder, then press F10.
If you only skip in the screen, all shadows and lighting will be removed.
@Gryzor_
You need to mark the VS (NUMPAD 6), so the shader is dumped in the Shaderfixes folder, then press F10.
If you only skip in the screen, all shadows and lighting will be removed.
@Gryzor_
Can you uninstall the fix and download the UE4 fix again here: [url="http://dstats.net/download/http://s3.amazonaws.com/dhr/Universal_Fixes/Universal.Fixes-3Dmigoto.1.3.11.x64-3DFix.UE4.Engine.zip"]UE4 Universal Fix[/url]
i update and extendend the coverage for shadows, lights and reflections....so this may fix those shadows issue you mentioned.
Thanks for your patience and the awesome update, DHR.
With the latest version of the universal fix, only the cloud shadows (screenshot 1) and a minor lighting shader (screenshot 2) are still off. The rest looks amazing and makes the game a joy to behold.
Thanks for your patience and the awesome update, DHR.
With the latest version of the universal fix, only the cloud shadows (screenshot 1) and a minor lighting shader (screenshot 2) are still off. The rest looks amazing and makes the game a joy to behold.
Hi DHR, I've found the PS responsible for all those wrong cloud shadows. It doesn't seem to affect anything else than cloud shadows, as far as I could tell by looking around at the environment:
// ---- Created with 3Dmigoto v1.3.11 on Sun Sep 23 23:16:50 2018
Texture2D<float4> t1 : register(t1);
I wasn't able to hunt down the shader for a minor lighting glitch (candlefire reflections in church), but I guess I'll give it another go and look for a VS instead of a PS. However, it's no big deal anyway.
@Gryzor_
I know how to fix both shaders...the first one need a double correction and is a variant of the swizzle that the regex don't cover, and the second one is a reflections shader (i saw the same shader in at least 3 UE4 games....probably can make a regex for that since is consistent repeating in some games).
Can you upload the shaders? not only the text....the files.
I can look when i arrive home in the night.
I know how to fix both shaders...the first one need a double correction and is a variant of the swizzle that the regex don't cover, and the second one is a reflections shader (i saw the same shader in at least 3 UE4 games....probably can make a regex for that since is consistent repeating in some games).
Can you upload the shaders? not only the text....the files.
I can look when i arrive home in the night.
[quote="masterotaku"]Everyone should get this: https://steamcommunity.com/sharedfiles/filedetails/?id=1521444556
It's the orchestral music mod.[/quote]
Thanks, masterotaku! The proper music from the Tokyo Metropolitan Symphony Orchestra beats the midi-files of the release version any day of the week :D
[quote="DHR"]
Can you upload the shaders? not only the text....the files.
I can look when i arrive home in the night.[/quote]
Thank you so much for looking into this, DHR.
Will the ps_replace.txt files that I've saved with 3Dmigoto in hunting mode help or do I have to grab them elsewhere?
If that's what you meant, here are the Dropbox-links:
https://www.dropbox.com/s/6ppqf6zzekstt1o/c801eddf127ee7e1-ps_replace.txt?dl=0
https://www.dropbox.com/s/1bj3sfy46on0c7v/9bd20d1c26e87bb8-ps_replace.txt?dl=0
Thanks, masterotaku! The proper music from the Tokyo Metropolitan Symphony Orchestra beats the midi-files of the release version any day of the week :D
DHR said:
Can you upload the shaders? not only the text....the files.
I can look when i arrive home in the night.
Thank you so much for looking into this, DHR.
Will the ps_replace.txt files that I've saved with 3Dmigoto in hunting mode help or do I have to grab them elsewhere?
Comparing shaders with ones from other fixes can be tiring, yes, and there will usually be a lot of differences if the engine is different. I mostly refer to my own fixes because I know where is everything I made.
Now ontopic: how is performance at 2560x1440?
CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: MSI GeForce RTX 2080Ti Gaming X Trio
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com
Thanks for your feedback, DHR. I'm adding a default shot with all issues still on screen at maximum shadow detail. (Btw: The game's options allow for 4 different shadow settings - off, 1, 2 and 3).
Not sure why I've uploaded the wrong shader previously, sorry. I'll add the one we were talking about at the end of this post.
Most correctly appearing character and object shadows are still present after deactivating it in hunting mode, so this PS doesn't remove shadows altogether.
Thanks for the clarification, masterotaku. Yes, I was only talking about the order during hunting mode.
I wasn't aware that it's normal for shaders to be added during gameplay, so I falsely assumed all shaders would already be loaded into 3Dmigoto and be present on startup in hunting mode.
KoelerMeester, DQ XI is on par with Zelda, so go ahead and finish that one asap ;)
_____________________________________________________________________
// ---- Created with 3Dmigoto v1.3.11 on Tue Sep 11 15:40:23 2018
Texture2D<float4> t1 : register(t1);
Texture2D<float4> t0 : register(t0);
SamplerState s1_s : register(s1);
SamplerState s0_s : register(s0);
cbuffer cb1 : register(b1)
{
float4 cb1[146];
}
cbuffer cb0 : register(b0)
{
float4 cb0[34];
}
// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);
void main(
float4 v0 : TEXCOORD0,
float4 v1 : SV_POSITION0,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5;
uint4 bitmask, uiDest;
float4 fDest;
r0.x = t0.SampleLevel(s0_s, v0.xy, 0).x;
r0.y = r0.x * cb1[51].z + -cb1[51].w;
r0.x = r0.x * cb1[51].x + cb1[51].y;
r0.y = 1 / r0.y;
r0.x = r0.x + r0.y;
r0.yz = asint(cb0[32].xy);
r0.yz = -r0.yz * cb1[116].zw + v0.xy;
r1.xy = float2(0.5,0.5) * cb1[145].zw;
r1.xy = floor(r1.xy);
r1.zw = r0.yz * r1.xy + float2(-0.5,-0.5);
r1.zw = floor(r1.zw);
r1.zw = r1.zw / r1.xy;
r2.xy = float2(1,1) / r1.xy;
r1.zw = r2.xy * float2(0.5,0.5) + r1.zw;
r3.xy = r1.zw + r2.xy;
r3.xy = t1.SampleLevel(s1_s, r3.xy, 0).xy;
r4.w = r3.y;
r2.z = 0;
r2.xyzw = r1.zwzw + r2.xzzy;
r2.xy = t1.SampleLevel(s1_s, r2.xy, 0).xy;
r2.zw = t1.SampleLevel(s1_s, r2.zw, 0).xy;
r4.yz = r2.yw;
r2.yw = t1.SampleLevel(s1_s, r1.zw, 0).xy;
r0.yz = -r1.zw + r0.yz;
r4.x = r2.w;
r4.xyzw = abs(r4.xyzw) + -r0.xxxx;
r0.x = -cb0[33].y + r0.x;
r0.x = saturate(cb0[33].z * r0.x);
r0.x = 1 + -r0.x;
r4.xyzw = float4(9.99999975e-005,9.99999975e-005,9.99999975e-005,9.99999975e-005) + abs(r4.xyzw);
r4.xyzw = float4(1,1,1,1) / r4.xyzw;
r1.zw = r0.yz * r1.xy;
r0.yz = -r0.zy * r1.yx + float2(1,1);
r5.yz = r0.yz * r1.zw;
r5.w = r1.w * r1.z;
r5.x = r0.y * r0.z;
r1.xyzw = r5.xyzw * r4.xyzw;
r0.y = r1.y * r2.x;
r0.y = r1.x * r2.y + r0.y;
r0.y = r1.z * r2.z + r0.y;
r0.y = r1.w * r3.x + r0.y;
r0.z = dot(r1.xyzw, float4(1,1,1,1));
r0.y = r0.y / r0.z;
r0.y = -1 + r0.y;
r0.y = r0.x * r0.y + 1;
o0.xyzw = sqrt(r0.yyyx);
return;
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.3.11 on Tue Sep 11 15:40:23 2018
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 0 xyzw 0 NONE float xy
// SV_POSITION 0 xyzw 1 POS float
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[34], immediateIndexed
dcl_constantbuffer cb1[146], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_input_ps linear v0.xy
dcl_output o0.xyzw
dcl_temps 6
sample_l_indexable(texture2d)(float,float,float,float) r0.x, v0.xyxx, t0.xyzw, s0, l(0.000000)
mad r0.y, r0.x, cb1[51].z, -cb1[51].w
mad r0.x, r0.x, cb1[51].x, cb1[51].y
div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y
add r0.x, r0.y, r0.x
itof r0.yz, cb0[32].xxyx
mad r0.yz, -r0.yyzy, cb1[116].zzwz, v0.xxyx
mul r1.xy, cb1[145].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000)
round_ni r1.xy, r1.xyxx
mad r1.zw, r0.yyyz, r1.xxxy, l(0.000000, 0.000000, -0.500000, -0.500000)
round_ni r1.zw, r1.zzzw
div r1.zw, r1.zzzw, r1.xxxy
div r2.xy, l(1.000000, 1.000000, 1.000000, 1.000000), r1.xyxx
mad r1.zw, r2.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000), r1.zzzw
add r3.xy, r2.xyxx, r1.zwzz
sample_l_indexable(texture2d)(float,float,float,float) r3.xy, r3.xyxx, t1.xyzw, s1, l(0.000000)
mov r4.w, r3.y
mov r2.z, l(0)
add r2.xyzw, r2.xzzy, r1.zwzw
sample_l_indexable(texture2d)(float,float,float,float) r2.xy, r2.xyxx, t1.xyzw, s1, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r2.zw, r2.zwzz, t1.zwxy, s1, l(0.000000)
mov r4.yz, r2.yywy
sample_l_indexable(texture2d)(float,float,float,float) r2.yw, r1.zwzz, t1.zxwy, s1, l(0.000000)
add r0.yz, r0.yyzy, -r1.zzwz
mov r4.x, r2.w
add r4.xyzw, -r0.xxxx, |r4.xyzw|
add r0.x, r0.x, -cb0[33].y
mul_sat r0.x, r0.x, cb0[33].z
add r0.x, -r0.x, l(1.000000)
add r4.xyzw, |r4.xyzw|, l(0.000100, 0.000100, 0.000100, 0.000100)
div r4.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000), r4.xyzw
mul r1.zw, r1.xxxy, r0.yyyz
mad r0.yz, -r0.zzyz, r1.yyxy, l(0.000000, 1.000000, 1.000000, 0.000000)
mul r5.yz, r1.zzwz, r0.yyzy
mul r5.w, r1.z, r1.w
mul r5.x, r0.z, r0.y
mul r1.xyzw, r4.xyzw, r5.xyzw
mul r0.y, r2.x, r1.y
mad r0.y, r1.x, r2.y, r0.y
mad r0.y, r1.z, r2.z, r0.y
mad r0.y, r1.w, r3.x, r0.y
dp4 r0.z, r1.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
div r0.y, r0.y, r0.z
add r0.y, r0.y, l(-1.000000)
mad r0.y, r0.x, r0.y, l(1.000000)
sqrt o0.xyzw, r0.yyyx
ret
// Approximately 0 instruction slots used
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
I see the issue now....Try this:
1) Cycle VS with NUMPAD 4 or 5
2) When you see in the 3Dmigoto overlay "....ShaderRegex_VS_Reflections" mark the VS with NUMPAD 6
3) Press F10
That VS fix reflections sometimes depending on games cause some issues with shadows, skip them from the regex fix the issue......some games need that fix.
Hope this fix that issue
MY WEB
Helix Mod - Making 3D Better
My 3D Screenshot Gallery
Like my fixes? you can donate to Paypal: dhr.donation@gmail.com
Thanks for the hint, DHR. I've skipped that vertex shader from the regex, but then it removed all lighting and shadows from the game, so that was overkill :P
I get a better result if I just turn off shadows in the options menu, since that won't turn off lighting and bloom.
You need to mark the VS (NUMPAD 6), so the shader is dumped in the Shaderfixes folder, then press F10.
If you only skip in the screen, all shadows and lighting will be removed.
MY WEB
Helix Mod - Making 3D Better
My 3D Screenshot Gallery
Like my fixes? you can donate to Paypal: dhr.donation@gmail.com
Can you uninstall the fix and download the UE4 fix again here: UE4 Universal Fix
i update and extendend the coverage for shadows, lights and reflections....so this may fix those shadows issue you mentioned.
MY WEB
Helix Mod - Making 3D Better
My 3D Screenshot Gallery
Like my fixes? you can donate to Paypal: dhr.donation@gmail.com
With the latest version of the universal fix, only the cloud shadows (screenshot 1) and a minor lighting shader (screenshot 2) are still off. The rest looks amazing and makes the game a joy to behold.
For those effects you need to hunt a PS....paste here.
MY WEB
Helix Mod - Making 3D Better
My 3D Screenshot Gallery
Like my fixes? you can donate to Paypal: dhr.donation@gmail.com
http://photos.3dvisionlive.com/chtiblue/album/530b52d4cb85770d6e000049/3Dvision with 55" LG OLED EG920 interlieved 3D (3840x2160) overide mode, GTX 2080 Ti XC Ultra EVGA, core i5 @4.3GHz, 16Gb@2130, windows 7&10 64bit, Dolby Atmos 5.1.4 Marantz 6010 AVR
// ---- Created with 3Dmigoto v1.3.11 on Sun Sep 23 23:16:50 2018
Texture2D<float4> t1 : register(t1);
Texture2D<float4> t0 : register(t0);
SamplerState s1_s : register(s1);
SamplerState s0_s : register(s0);
cbuffer cb2 : register(b2)
{
float4 cb2[14];
}
cbuffer cb1 : register(b1)
{
float4 cb1[125];
}
cbuffer cb0 : register(b0)
{
float4 cb0[12];
}
// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);
void main(
float4 v0 : SV_Position0,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3;
uint4 bitmask, uiDest;
float4 fDest;
r0.xyzw = cb0[8].xyzw * v0.yyyy;
r0.xyzw = v0.xxxx * cb0[7].xyzw + r0.xyzw;
r1.xy = cb1[116].zw * v0.xy;
r1.x = t1.SampleLevel(s1_s, r1.xy, 0).x;
r0.xyzw = r1.xxxx * cb0[9].xyzw + r0.xyzw;
r0.xyzw = cb0[10].xyzw + r0.xyzw;
r0.xyz = r0.yzx / r0.www;
r0.w = dot(r0.xyz, r0.xyz);
r0.w = rsqrt(r0.w);
r1.yzw = r0.xyz * r0.www;
r0.w = max(abs(r1.y), abs(r1.z));
r0.w = 1 / r0.w;
r2.x = min(abs(r1.y), abs(r1.z));
r0.w = r2.x * r0.w;
r2.x = r0.w * r0.w;
r2.y = r2.x * 0.0208350997 + -0.0851330012;
r2.y = r2.x * r2.y + 0.180141002;
r2.y = r2.x * r2.y + -0.330299497;
r2.x = r2.x * r2.y + 0.999866009;
r2.y = r2.x * r0.w;
r2.y = r2.y * -2 + 1.57079637;
r2.z = cmp(abs(r1.z) < abs(r1.y));
r2.y = r2.z ? r2.y : 0;
r0.w = r0.w * r2.x + r2.y;
r2.xy = cmp(r1.zw < -r1.zw);
r2.x = r2.x ? -3.141593 : 0;
r0.w = r2.x + r0.w;
r2.x = min(r1.y, r1.z);
r2.x = cmp(r2.x < -r2.x);
r1.y = max(r1.y, r1.z);
r1.y = cmp(r1.y >= -r1.y);
r1.y = r1.y ? r2.x : 0;
r0.w = r1.y ? -r0.w : r0.w;
r0.w = 3.14159274 + r0.w;
r3.x = 0.159154937 * r0.w;
r0.w = abs(r1.w) * -0.0187292993 + 0.0742610022;
r0.w = r0.w * abs(r1.w) + -0.212114394;
r0.w = r0.w * abs(r1.w) + 1.57072878;
r1.y = 1 + -abs(r1.w);
r1.y = sqrt(r1.y);
r1.z = r1.y * r0.w;
r1.z = r1.z * -2 + 3.14159274;
r1.z = r2.y ? r1.z : 0;
r0.w = r0.w * r1.y + r1.z;
r3.y = 0.318309873 * r0.w;
r1.yz = cmp(float2(0,0) < cb0[2].zw);
r1.zw = r1.zz ? r3.xy : r0.yx;
r0.z = cb0[2].x * r0.z;
r0.xy = r0.yx / r0.zz;
r0.xy = r0.xy * float2(0.5,0.5) + float2(0.5,0.5);
r0.xy = r1.yy ? r0.xy : r1.zw;
r0.zw = float2(1,1) + -r0.xy;
r0.xy = r0.xy * r0.zw;
r0.x = saturate(dot(r0.xx, r0.yy));
r2.xyzw = cb1[37].xyzw * v0.yyyy;
r2.xyzw = v0.xxxx * cb1[36].xyzw + r2.xyzw;
r1.xyzw = r1.xxxx * cb1[38].xyzw + r2.xyzw;
r1.xyzw = cb1[39].xyzw + r1.xyzw;
r0.yzw = r1.xyz / r1.www;
r0.yzw = -cb1[56].xyz + r0.yzw;
r1.xyz = cb2[4].xyz + r0.yzw;
r1.xyz = -r1.xyz + r0.xxx;
r0.x = dot(r1.xyz, r1.xyz);
r0.x = sqrt(r0.x);
r0.x = -r0.x * cb2[13].x + 1;
r0.x = saturate(1.25 * r0.x);
r1.xy = r0.yz / cb2[9].zz;
r0.yzw = cb1[53].xyz + -r0.yzw;
r0.y = dot(r0.yzw, r0.yzw);
r0.y = sqrt(r0.y);
r0.y = cb0[11].x + -r0.y;
r0.zw = float2(-0.5,-0.5) + r1.xy;
r1.x = dot(cb2[1].xy, r0.zw);
r1.y = dot(cb2[2].xy, r0.zw);
r0.zw = float2(0.5,0.5) + r1.xy;
r1.xy = cb2[9].ww * r0.zw;
r1.z = cb2[8].x * cb1[124].z;
r2.x = r1.z * 0.100000001 + r1.x;
r1.xzw = cb2[10].xyw * cb1[124].zzz;
r2.y = r1.x * 0.100000001 + r1.y;
r1.xy = float2(0.100000001,0.100000001) * r1.zw;
r1.xy = r0.zw * cb2[10].zz + r1.xy;
r0.zw = cb2[11].yy * r0.zw;
r1.x = t0.Sample(s0_s, r1.xy).x;
r1.y = t0.Sample(s0_s, r2.xy).y;
r1.x = r1.y * r1.x;
r1.yz = cb2[11].xz * cb1[124].zz;
r0.zw = r1.yz * float2(0.100000001,0.100000001) + r0.zw;
r0.z = t0.Sample(s0_s, r0.zw).z;
r0.z = r1.x * r0.z + -1;
r0.z = cb2[11].w * r0.z;
r0.x = r0.x * r0.z + 1;
r0.xzw = cb2[5].xyz + r0.xxx;
r0.xzw = max(float3(0,0,0), r0.xzw);
r0.x = dot(r0.xzw, float3(0.333299994,0.333299994,0.333299994));
r0.x = -cb0[11].y + r0.x;
r0.z = 0.200000003 * cb0[11].x;
r0.y = saturate(r0.y / r0.z);
r0.x = r0.y * r0.x;
r0.x = cb0[2].y * r0.x + cb0[11].y;
r0.z = sqrt(r0.x);
r0.xyw = float3(1,1,1);
r1.xyzw = r0.zzzz + -r0.wwzw;
o0.xyzw = cb0[11].zzzz * r1.xyzw + r0.xyzw;
return;
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.3.11 on Sun Sep 23 23:16:50 2018
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[12], immediateIndexed
dcl_constantbuffer cb1[125], immediateIndexed
dcl_constantbuffer cb2[14], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_output o0.xyzw
dcl_temps 4
mul r0.xyzw, v0.yyyy, cb0[8].xyzw
mad r0.xyzw, v0.xxxx, cb0[7].xyzw, r0.xyzw
mul r1.xy, v0.xyxx, cb1[116].zwzz
sample_l_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t1.xyzw, s1, l(0.000000)
mad r0.xyzw, r1.xxxx, cb0[9].xyzw, r0.xyzw
add r0.xyzw, r0.xyzw, cb0[10].xyzw
div r0.xyz, r0.yzxy, r0.wwww
dp3 r0.w, r0.xyzx, r0.xyzx
rsq r0.w, r0.w
mul r1.yzw, r0.wwww, r0.xxyz
max r0.w, |r1.z|, |r1.y|
div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
min r2.x, |r1.z|, |r1.y|
mul r0.w, r0.w, r2.x
mul r2.x, r0.w, r0.w
mad r2.y, r2.x, l(0.0208350997), l(-0.085133)
mad r2.y, r2.x, r2.y, l(0.180141)
mad r2.y, r2.x, r2.y, l(-0.330299497)
mad r2.x, r2.x, r2.y, l(0.999866)
mul r2.y, r0.w, r2.x
mad r2.y, r2.y, l(-2.000000), l(1.57079637)
lt r2.z, |r1.z|, |r1.y|
and r2.y, r2.z, r2.y
mad r0.w, r0.w, r2.x, r2.y
lt r2.xy, r1.zwzz, -r1.zwzz
and r2.x, r2.x, l(0xc0490fdb)
add r0.w, r0.w, r2.x
min r2.x, r1.z, r1.y
lt r2.x, r2.x, -r2.x
max r1.y, r1.z, r1.y
ge r1.y, r1.y, -r1.y
and r1.y, r1.y, r2.x
movc r0.w, r1.y, -r0.w, r0.w
add r0.w, r0.w, l(3.14159274)
mul r3.x, r0.w, l(0.159154937)
mad r0.w, |r1.w|, l(-0.0187292993), l(0.074261)
mad r0.w, r0.w, |r1.w|, l(-0.212114394)
mad r0.w, r0.w, |r1.w|, l(1.57072878)
add r1.y, -|r1.w|, l(1.000000)
sqrt r1.y, r1.y
mul r1.z, r0.w, r1.y
mad r1.z, r1.z, l(-2.000000), l(3.14159274)
and r1.z, r2.y, r1.z
mad r0.w, r0.w, r1.y, r1.z
mul r3.y, r0.w, l(0.318309873)
lt r1.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[2].zzwz
movc r1.zw, r1.zzzz, r3.xxxy, r0.yyyx
mul r0.z, r0.z, cb0[2].x
div r0.xy, r0.yxyy, r0.zzzz
mad r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
movc r0.xy, r1.yyyy, r0.xyxx, r1.zwzz
add r0.zw, -r0.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000)
mul r0.xy, r0.zwzz, r0.xyxx
dp2_sat r0.x, r0.xxxx, r0.yyyy
mul r2.xyzw, v0.yyyy, cb1[37].xyzw
mad r2.xyzw, v0.xxxx, cb1[36].xyzw, r2.xyzw
mad r1.xyzw, r1.xxxx, cb1[38].xyzw, r2.xyzw
add r1.xyzw, r1.xyzw, cb1[39].xyzw
div r0.yzw, r1.xxyz, r1.wwww
add r0.yzw, r0.yyzw, -cb1[56].xxyz
add r1.xyz, r0.yzwy, cb2[4].xyzx
add r1.xyz, r0.xxxx, -r1.xyzx
dp3 r0.x, r1.xyzx, r1.xyzx
sqrt r0.x, r0.x
mad r0.x, -r0.x, cb2[13].x, l(1.000000)
mul_sat r0.x, r0.x, l(1.250000)
div r1.xy, r0.yzyy, cb2[9].zzzz
add r0.yzw, -r0.yyzw, cb1[53].xxyz
dp3 r0.y, r0.yzwy, r0.yzwy
sqrt r0.y, r0.y
add r0.y, -r0.y, cb0[11].x
add r0.zw, r1.xxxy, l(0.000000, 0.000000, -0.500000, -0.500000)
dp2 r1.x, cb2[1].xyxx, r0.zwzz
dp2 r1.y, cb2[2].xyxx, r0.zwzz
add r0.zw, r1.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000)
mul r1.xy, r0.zwzz, cb2[9].wwww
mul r1.z, cb1[124].z, cb2[8].x
mad r2.x, r1.z, l(0.100000), r1.x
mul r1.xzw, cb1[124].zzzz, cb2[10].xxyw
mad r2.y, r1.x, l(0.100000), r1.y
mul r1.xy, r1.zwzz, l(0.100000, 0.100000, 0.000000, 0.000000)
mad r1.xy, r0.zwzz, cb2[10].zzzz, r1.xyxx
mul r0.zw, r0.zzzw, cb2[11].yyyy
sample_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t0.xyzw, s0
sample_indexable(texture2d)(float,float,float,float) r1.y, r2.xyxx, t0.xyzw, s0
mul r1.x, r1.x, r1.y
mul r1.yz, cb1[124].zzzz, cb2[11].xxzx
mad r0.zw, r1.yyyz, l(0.000000, 0.000000, 0.100000, 0.100000), r0.zzzw
sample_indexable(texture2d)(float,float,float,float) r0.z, r0.zwzz, t0.xyzw, s0
mad r0.z, r1.x, r0.z, l(-1.000000)
mul r0.z, r0.z, cb2[11].w
mad r0.x, r0.x, r0.z, l(1.000000)
add r0.xzw, r0.xxxx, cb2[5].xxyz
max r0.xzw, r0.xxzw, l(0.000000, 0.000000, 0.000000, 0.000000)
dp3 r0.x, r0.xzwx, l(0.333300, 0.333300, 0.333300, 0.000000)
add r0.x, r0.x, -cb0[11].y
mul r0.z, cb0[11].x, l(0.200000)
div_sat r0.y, r0.y, r0.z
mul r0.x, r0.x, r0.y
mad r0.x, cb0[2].y, r0.x, cb0[11].y
sqrt r0.z, r0.x
mov r0.xyw, l(1.000000,1.000000,0,1.000000)
add r1.xyzw, -r0.wwzw, r0.zzzz
mad o0.xyzw, cb0[11].zzzz, r1.xyzw, r0.xyzw
ret
// Approximately 0 instruction slots used
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
There's another PS that causes reflections on the church floor to look incorrect:
------------------------------>
// ---- Created with 3Dmigoto v1.3.11 on Sun Sep 23 23:29:14 2018
Texture2D<float4> t6 : register(t6);
TextureCube<float4> t5 : register(t5);
Texture2D<float4> t4 : register(t4);
Texture2D<float4> t3 : register(t3);
Texture2D<float4> t2 : register(t2);
Texture2D<float4> t1 : register(t1);
Texture2D<float4> t0 : register(t0);
SamplerState s6_s : register(s6);
SamplerState s5_s : register(s5);
SamplerState s4_s : register(s4);
SamplerState s3_s : register(s3);
SamplerState s2_s : register(s2);
SamplerState s1_s : register(s1);
SamplerState s0_s : register(s0);
cbuffer cb1 : register(b1)
{
float4 cb1[134];
}
cbuffer cb0 : register(b0)
{
float4 cb0[20];
}
// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);
void main(
linear noperspective float4 v0 : TEXCOORD0,
float4 v1 : SV_POSITION0,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13;
uint4 bitmask, uiDest;
float4 fDest;
r0.xyz = t0.SampleLevel(s0_s, v0.xy, 0).xyz;
r1.xyzw = t1.SampleLevel(s1_s, v0.xy, 0).xyzw;
r2.xyzw = t2.SampleLevel(s2_s, v0.xy, 0).xyzw;
r3.xyz = t3.SampleLevel(s3_s, v0.xy, 0).xyz;
r4.xy = cb1[116].xy * v0.xy;
r4.xy = (uint2)r4.xy;
r0.w = (uint)cb1[133].x;
r3.w = (int)r4.y + (int)r4.x;
r0.w = (int)r0.w + (int)r3.w;
r0.w = (int)r0.w & 1;
r0.xyz = r0.xyz * float3(2,2,2) + float3(-1,-1,-1);
r3.w = dot(r0.xyz, r0.xyz);
r3.w = rsqrt(r3.w);
r4.xyz = r3.www * r0.xyz;
r1.w = 255 * r1.w;
r1.w = round(r1.w);
r1.w = (uint)r1.w;
r5.xy = (int2)r1.ww & int2(15,16);
r3.xyz = r5.yyy ? float3(0,0,0) : r3.xyz;
r6.xyzw = cmp((int4)r5.xxxx == int4(5,4,7,2));
r7.xy = r0.ww ? float2(1,0) : float2(0,1);
r7.z = r7.y * r1.y;
r8.xyz = r2.xyz;
r8.w = r1.y;
r7.xyzw = r6.xxxx ? r7.xxxz : r8.xyzw;
r2.xyz = -r7.xyz * r1.xxx + r7.xyz;
r0.w = 0.0799999982 * r7.w;
r5.yzw = -r7.www * float3(0.0799999982,0.0799999982,0.0799999982) + r7.xyz;
r5.yzw = r1.xxx * r5.yzw + r0.www;
r2.xyz = r2.xyz * cb1[118].www + cb1[118].xyz;
r5.yzw = r5.yzw * cb1[119].www + cb1[119].xyz;
r0.w = t4.SampleLevel(s4_s, v0.xy, 0).x;
r8.xyz = cb1[41].xyz * v0.www;
r8.xyz = v0.zzz * cb1[40].xyz + r8.xyz;
r8.xyz = cb1[42].xyz + r8.xyz;
r1.y = dot(r8.xyz, r8.xyz);
r1.y = rsqrt(r1.y);
r8.xyz = r8.xyz * r1.yyy;
r1.y = dot(-r8.xyz, r4.xyz);
r1.w = r1.y + r1.y;
r9.xyz = r1.www * r4.xyz + r8.xyz;
r10.x = saturate(r1.y);
r1.w = -r1.z * r1.z + 1;
r4.w = sqrt(r1.w);
r4.w = r1.z * r1.z + r4.w;
r1.w = r4.w * r1.w;
r0.xyz = -r0.xyz * r3.www + r9.xyz;
r0.xyz = r1.www * r0.xyz + r4.xyz;
r11.xyz = t5.SampleLevel(s5_s, r4.xyz, cb0[19].z).xyz;
r2.xyz = r11.xyz * r2.xyz;
if (r6.y != 0) {
r1.w = log2(r1.z);
r1.w = -r1.w * 1.14999998 + 3;
r3.w = -1 + cb0[19].w;
r1.w = r3.w + -r1.w;
r12.xyz = t5.SampleLevel(s5_s, r0.xyz, r1.w).xyz;
r10.y = r1.z;
r6.xy = t6.SampleLevel(s6_s, r10.xy, 0).xy;
r1.w = 1 + -r3.x;
r1.w = r6.y * r1.w;
r13.xyz = r5.yzw * r6.xxx + r1.www;
r12.xyz = r13.xyz * r12.xyz;
r1.w = log2(r3.y);
r1.w = -r1.w * 1.14999998 + 3;
r1.w = r3.w + -r1.w;
r9.xyz = t5.SampleLevel(s5_s, r9.xyz, r1.w).xyz;
r1.w = 1 + -r10.x;
r3.w = r1.w * r1.w;
r3.w = r3.w * r3.w;
r4.w = r3.w * r1.w;
r1.w = -r1.w * r3.w + 1;
r1.w = r1.w * 0.0399999991 + r4.w;
r3.w = r1.w * r3.x;
r1.w = -r1.w * r3.x + 1;
r2.xyz = r2.xyz * r1.www;
r9.xyz = r9.xyz * r3.www;
r9.xyz = r12.xyz * r1.www + r9.xyz;
} else {
r1.w = log2(r1.z);
r1.w = -r1.w * 1.14999998 + 3;
r3.w = -1 + cb0[19].w;
r1.w = r3.w + -r1.w;
r0.xyz = t5.SampleLevel(s5_s, r0.xyz, r1.w).xyz;
r10.z = r1.z;
r6.xy = t6.SampleLevel(s6_s, r10.xz, 0).xy;
r1.w = saturate(50 * r5.z);
r1.w = r1.w * r6.y;
r5.yzw = r5.yzw * r6.xxx + r1.www;
r9.xyz = r5.yzw * r0.xyz;
}
if (r6.z != 0) {
r0.xyz = -r4.xyz * r1.yyy + -r8.xyz;
r1.w = dot(r0.xyz, r0.xyz);
r3.w = rsqrt(r1.w);
r5.yzw = r3.www * r0.xyz;
r6.xyz = t5.SampleLevel(s5_s, r5.yzw, cb0[19].z).xyz;
r1.z = max(0.00392156886, r1.z);
r1.z = min(1, r1.z);
r3.w = dot(-r8.xyz, r5.yzw);
r4.w = dot(r4.xyz, r5.yzw);
r8.w = abs(r1.y) * -0.156582996 + 1.57079637;
r9.w = 1 + -abs(r1.y);
r9.w = sqrt(r9.w);
r10.x = r9.w * r8.w;
r10.y = cmp(r1.y >= 0);
r8.w = -r8.w * r9.w + 3.14159274;
r8.w = r10.y ? r10.x : r8.w;
r8.w = 1.57079637 + -r8.w;
r9.w = abs(r4.w) * -0.156582996 + 1.57079637;
r10.x = 1 + -abs(r4.w);
r10.x = sqrt(r10.x);
r10.y = r10.x * r9.w;
r10.z = cmp(r4.w >= 0);
r9.w = -r9.w * r10.x + 3.14159274;
r9.w = r10.z ? r10.y : r9.w;
r9.w = 1.57079637 + -r9.w;
r8.w = -r9.w + r8.w;
r8.w = 0.5 * abs(r8.w);
r8.w = cos(r8.w);
r4.xyz = -r4.www * r4.xyz + r5.yzw;
r0.x = dot(r4.xyz, r0.xyz);
r0.y = dot(r4.xyz, r4.xyz);
r0.y = r0.y * r1.w + 9.99999975e-005;
r0.y = rsqrt(r0.y);
r0.z = r0.x * r0.y;
r0.z = saturate(r0.z * 0.5 + 0.5);
r0.z = sqrt(r0.z);
r1.w = r1.z * r1.z;
r1.z = r1.z * r1.z + 0.200000003;
r1.w = r1.w * 2 + 0.200000003;
r4.x = -0.139543116 * r0.z;
r4.y = -r1.y * r1.y + 1;
r4.y = sqrt(r4.y);
r4.z = 0.00978400372 * r1.y;
r4.x = r4.x * r4.y + r4.z;
r1.z = r1.z * r0.z;
r4.yz = float2(1.41421354,3.54490757) * r1.zz;
r1.y = r4.w + r1.y;
r1.z = r1.y + -r4.x;
r1.z = r1.z * r1.z;
r1.z = -0.5 * r1.z;
r4.x = r4.y * r4.y;
r1.z = r1.z / r4.x;
r1.z = 1.44269502 * r1.z;
r1.z = exp2(r1.z);
r1.z = r1.z / r4.z;
r0.z = r1.z * r0.z;
r1.z = saturate(r3.w * 0.5 + 0.5);
r1.z = sqrt(r1.z);
r1.z = 1 + -r1.z;
r4.x = r1.z * r1.z;
r4.x = r4.x * r4.x;
r1.z = r4.x * r1.z;
r1.z = r1.z * 0.953479409 + 0.0465205684;
r0.z = r1.z * r0.z;
r0.z = r0.z * r7.w;
r3.w = saturate(-r3.w);
r1.z = 1 + -r3.w;
r1.y = -0.140000001 + r1.y;
r1.y = r1.y * r1.y;
r1.y = -0.5 * r1.y;
r3.w = r1.w * r1.w;
r1.y = r1.y / r3.w;
r1.yw = float2(1.44269502,2.50662827) * r1.yw;
r1.y = exp2(r1.y);
r1.y = r1.y / r1.w;
r1.w = -r8.w * 0.5 + 1;
r3.w = r1.w * r1.w;
r3.w = r3.w * r3.w;
r1.w = r3.w * r1.w;
r1.w = r1.w * 0.953479409 + 0.0465205684;
r3.w = 1 + -r1.w;
r3.w = r3.w * r3.w;
r1.w = r3.w * r1.w;
r3.w = 0.800000012 / r8.w;
r4.xyz = log2(r7.xyz);
r4.xyz = r4.xyz * r3.www;
r4.xyz = exp2(r4.xyz);
r0.x = r0.x * r0.y + -1;
r0.xz = float2(7.50201416,0.5) * r0.xz;
r0.x = exp2(r0.x);
r0.x = r1.y * r0.x;
r0.x = r1.w * r0.x;
r0.x = 0.827605724 * r0.x;
r4.xyz = r0.xxx * r4.xyz;
r0.xyz = r0.zzz * r1.zzz + r4.xyz;
r1.y = dot(r5.yzw, r5.yzw);
r1.y = 1 + r1.y;
r1.y = 0.25 * r1.y;
r1.y = min(1, r1.y);
r1.x = r1.x * r1.y;
r1.x = 0.318309873 * r1.x;
r1.yzw = sqrt(r7.xyz);
r0.xyz = r1.yzw * r1.xxx + r0.xyz;
r0.xyz = min(float3(0,0,0), -r0.xyz);
r0.xyz = r6.xyz * -r0.xyz;
r9.xyz = float3(3.14159274,3.14159274,3.14159274) * r0.xyz;
r2.xyz = float3(0,0,0);
}
r0.x = r2.w * r0.w;
r0.y = cmp((int)r5.x == 3);
r0.y = (int)r0.y | (int)r6.w;
if (r0.y != 0) {
r0.yzw = r3.xyz * r3.xyz;
r1.xyz = r11.xyz * r0.yzw;
r2.xyz = r1.xyz * float3(0.5,0.5,0.5) + r2.xyz;
r1.x = -2.5 + cb0[19].z;
r1.xyz = t5.SampleLevel(s5_s, r8.xyz, r1.x).xyz;
r0.yzw = r1.xyz * r0.yzw;
r1.x = 0.5 * r0.x;
r9.xyz = r0.yzw * r1.xxx + r9.xyz;
}
r0.yzw = r9.xyz + r2.xyz;
r0.yzw = cb0[18].xyz * r0.yzw;
o0.xyz = r0.yzw * r0.xxx;
o0.w = 0;
return;
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.3.11 on Sun Sep 23 23:29:14 2018
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 0 xyzw 0 NONE float xyzw
// SV_POSITION 0 xyzw 1 POS float
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[20], immediateIndexed
dcl_constantbuffer cb1[134], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, mode_default
dcl_sampler s6, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texturecube (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_input_ps linear noperspective v0.xyzw
dcl_output o0.xyzw
dcl_temps 14
sample_l_indexable(texture2d)(float,float,float,float) r0.xyz, v0.xyxx, t0.xyzw, s0, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r1.xyzw, v0.xyxx, t1.xyzw, s1, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r2.xyzw, v0.xyxx, t2.xyzw, s2, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, v0.xyxx, t3.xyzw, s3, l(0.000000)
mul r4.xy, v0.xyxx, cb1[116].xyxx
ftou r4.xy, r4.xyxx
ftou r0.w, cb1[133].x
iadd r3.w, r4.y, r4.x
iadd r0.w, r0.w, r3.w
and r0.w, r0.w, l(1)
mad r0.xyz, r0.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r3.w, r0.xyzx, r0.xyzx
rsq r3.w, r3.w
mul r4.xyz, r0.xyzx, r3.wwww
mul r1.w, r1.w, l(255.000000)
round_ne r1.w, r1.w
ftou r1.w, r1.w
and r5.xy, r1.wwww, l(15, 16, 0, 0)
movc r3.xyz, r5.yyyy, l(0,0,0,0), r3.xyzx
ieq r6.xyzw, r5.xxxx, l(5, 4, 7, 2)
movc r7.xy, r0.wwww, l(1.000000,0,0,0), l(0,1.000000,0,0)
mul r7.z, r1.y, r7.y
mov r8.xyz, r2.xyzx
mov r8.w, r1.y
movc r7.xyzw, r6.xxxx, r7.xxxz, r8.xyzw
mad r2.xyz, -r7.xyzx, r1.xxxx, r7.xyzx
mul r0.w, r7.w, l(0.080000)
mad r5.yzw, -r7.wwww, l(0.000000, 0.080000, 0.080000, 0.080000), r7.xxyz
mad r5.yzw, r1.xxxx, r5.yyzw, r0.wwww
mad r2.xyz, r2.xyzx, cb1[118].wwww, cb1[118].xyzx
mad r5.yzw, r5.yyzw, cb1[119].wwww, cb1[119].xxyz
sample_l_indexable(texture2d)(float,float,float,float) r0.w, v0.xyxx, t4.yzwx, s4, l(0.000000)
mul r8.xyz, v0.wwww, cb1[41].xyzx
mad r8.xyz, v0.zzzz, cb1[40].xyzx, r8.xyzx
add r8.xyz, r8.xyzx, cb1[42].xyzx
dp3 r1.y, r8.xyzx, r8.xyzx
rsq r1.y, r1.y
mul r8.xyz, r1.yyyy, r8.xyzx
dp3 r1.y, -r8.xyzx, r4.xyzx
add r1.w, r1.y, r1.y
mad r9.xyz, r1.wwww, r4.xyzx, r8.xyzx
mov_sat r10.x, r1.y
mad r1.w, -r1.z, r1.z, l(1.000000)
sqrt r4.w, r1.w
mad r4.w, r1.z, r1.z, r4.w
mul r1.w, r1.w, r4.w
mad r0.xyz, -r0.xyzx, r3.wwww, r9.xyzx
mad r0.xyz, r1.wwww, r0.xyzx, r4.xyzx
sample_l_indexable(texturecube)(float,float,float,float) r11.xyz, r4.xyzx, t5.xyzw, s5, cb0[19].z
mul r2.xyz, r2.xyzx, r11.xyzx
if_nz r6.y
log r1.w, r1.z
mad r1.w, -r1.w, l(1.150000), l(3.000000)
add r3.w, cb0[19].w, l(-1.000000)
add r1.w, -r1.w, r3.w
sample_l_indexable(texturecube)(float,float,float,float) r12.xyz, r0.xyzx, t5.xyzw, s5, r1.w
mov r10.y, r1.z
sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r10.xyxx, t6.xyzw, s6, l(0.000000)
add r1.w, -r3.x, l(1.000000)
mul r1.w, r1.w, r6.y
mad r13.xyz, r5.yzwy, r6.xxxx, r1.wwww
mul r12.xyz, r12.xyzx, r13.xyzx
log r1.w, r3.y
mad r1.w, -r1.w, l(1.150000), l(3.000000)
add r1.w, -r1.w, r3.w
sample_l_indexable(texturecube)(float,float,float,float) r9.xyz, r9.xyzx, t5.xyzw, s5, r1.w
add r1.w, -r10.x, l(1.000000)
mul r3.w, r1.w, r1.w
mul r3.w, r3.w, r3.w
mul r4.w, r1.w, r3.w
mad r1.w, -r1.w, r3.w, l(1.000000)
mad r1.w, r1.w, l(0.040000), r4.w
mul r3.w, r3.x, r1.w
mad r1.w, -r1.w, r3.x, l(1.000000)
mul r2.xyz, r1.wwww, r2.xyzx
mul r9.xyz, r3.wwww, r9.xyzx
mad r9.xyz, r12.xyzx, r1.wwww, r9.xyzx
else
log r1.w, r1.z
mad r1.w, -r1.w, l(1.150000), l(3.000000)
add r3.w, cb0[19].w, l(-1.000000)
add r1.w, -r1.w, r3.w
sample_l_indexable(texturecube)(float,float,float,float) r0.xyz, r0.xyzx, t5.xyzw, s5, r1.w
mov r10.z, r1.z
sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r10.xzxx, t6.xyzw, s6, l(0.000000)
mul_sat r1.w, r5.z, l(50.000000)
mul r1.w, r6.y, r1.w
mad r5.yzw, r5.yyzw, r6.xxxx, r1.wwww
mul r9.xyz, r0.xyzx, r5.yzwy
endif
if_nz r6.z
mad r0.xyz, -r4.xyzx, r1.yyyy, -r8.xyzx
dp3 r1.w, r0.xyzx, r0.xyzx
rsq r3.w, r1.w
mul r5.yzw, r0.xxyz, r3.wwww
sample_l_indexable(texturecube)(float,float,float,float) r6.xyz, r5.yzwy, t5.xyzw, s5, cb0[19].z
max r1.z, r1.z, l(0.00392156886)
min r1.z, r1.z, l(1.000000)
dp3 r3.w, -r8.xyzx, r5.yzwy
dp3 r4.w, r4.xyzx, r5.yzwy
mad r8.w, |r1.y|, l(-0.156583), l(1.57079637)
add r9.w, -|r1.y|, l(1.000000)
sqrt r9.w, r9.w
mul r10.x, r8.w, r9.w
ge r10.y, r1.y, l(0.000000)
mad r8.w, -r8.w, r9.w, l(3.14159274)
movc r8.w, r10.y, r10.x, r8.w
add r8.w, -r8.w, l(1.57079637)
mad r9.w, |r4.w|, l(-0.156583), l(1.57079637)
add r10.x, -|r4.w|, l(1.000000)
sqrt r10.x, r10.x
mul r10.y, r9.w, r10.x
ge r10.z, r4.w, l(0.000000)
mad r9.w, -r9.w, r10.x, l(3.14159274)
movc r9.w, r10.z, r10.y, r9.w
add r9.w, -r9.w, l(1.57079637)
add r8.w, r8.w, -r9.w
mul r8.w, |r8.w|, l(0.500000)
sincos null, r8.w, r8.w
mad r4.xyz, -r4.wwww, r4.xyzx, r5.yzwy
dp3 r0.x, r4.xyzx, r0.xyzx
dp3 r0.y, r4.xyzx, r4.xyzx
mad r0.y, r0.y, r1.w, l(0.000100)
rsq r0.y, r0.y
mul r0.z, r0.y, r0.x
mad_sat r0.z, r0.z, l(0.500000), l(0.500000)
sqrt r0.z, r0.z
mul r1.w, r1.z, r1.z
mad r1.z, r1.z, r1.z, l(0.200000)
mad r1.w, r1.w, l(2.000000), l(0.200000)
mul r4.x, r0.z, l(-0.139543116)
mad r4.y, -r1.y, r1.y, l(1.000000)
sqrt r4.y, r4.y
mul r4.z, r1.y, l(0.00978400372)
mad r4.x, r4.x, r4.y, r4.z
mul r1.z, r0.z, r1.z
mul r4.yz, r1.zzzz, l(0.000000, 1.41421354, 3.54490757, 0.000000)
add r1.y, r1.y, r4.w
add r1.z, -r4.x, r1.y
mul r1.z, r1.z, r1.z
mul r1.z, r1.z, l(-0.500000)
mul r4.x, r4.y, r4.y
div r1.z, r1.z, r4.x
mul r1.z, r1.z, l(1.442695)
exp r1.z, r1.z
div r1.z, r1.z, r4.z
mul r0.z, r0.z, r1.z
mad_sat r1.z, r3.w, l(0.500000), l(0.500000)
sqrt r1.z, r1.z
add r1.z, -r1.z, l(1.000000)
mul r4.x, r1.z, r1.z
mul r4.x, r4.x, r4.x
mul r1.z, r1.z, r4.x
mad r1.z, r1.z, l(0.953479409), l(0.0465205684)
mul r0.z, r0.z, r1.z
mul r0.z, r7.w, r0.z
mov_sat r3.w, -r3.w
add r1.z, -r3.w, l(1.000000)
add r1.y, r1.y, l(-0.140000)
mul r1.y, r1.y, r1.y
mul r1.y, r1.y, l(-0.500000)
mul r3.w, r1.w, r1.w
div r1.y, r1.y, r3.w
mul r1.yw, r1.yyyw, l(0.000000, 1.442695, 0.000000, 2.50662827)
exp r1.y, r1.y
div r1.y, r1.y, r1.w
mad r1.w, -r8.w, l(0.500000), l(1.000000)
mul r3.w, r1.w, r1.w
mul r3.w, r3.w, r3.w
mul r1.w, r1.w, r3.w
mad r1.w, r1.w, l(0.953479409), l(0.0465205684)
add r3.w, -r1.w, l(1.000000)
mul r3.w, r3.w, r3.w
mul r1.w, r1.w, r3.w
div r3.w, l(0.800000), r8.w
log r4.xyz, r7.xyzx
mul r4.xyz, r3.wwww, r4.xyzx
exp r4.xyz, r4.xyzx
mad r0.x, r0.x, r0.y, l(-1.000000)
mul r0.xz, r0.xxzx, l(7.502014, 0.000000, 0.500000, 0.000000)
exp r0.x, r0.x
mul r0.x, r0.x, r1.y
mul r0.x, r0.x, r1.w
mul r0.x, r0.x, l(0.827605724)
mul r4.xyz, r4.xyzx, r0.xxxx
mad r0.xyz, r0.zzzz, r1.zzzz, r4.xyzx
dp3 r1.y, r5.yzwy, r5.yzwy
add r1.y, r1.y, l(1.000000)
mul r1.y, r1.y, l(0.250000)
min r1.y, r1.y, l(1.000000)
mul r1.x, r1.y, r1.x
mul r1.x, r1.x, l(0.318309873)
sqrt r1.yzw, r7.xxyz
mad r0.xyz, r1.yzwy, r1.xxxx, r0.xyzx
min r0.xyz, -r0.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
mul r0.xyz, -r0.xyzx, r6.xyzx
mul r9.xyz, r0.xyzx, l(3.14159274, 3.14159274, 3.14159274, 0.000000)
mov r2.xyz, l(0,0,0,0)
endif
mul r0.x, r0.w, r2.w
ieq r0.y, r5.x, l(3)
or r0.y, r0.y, r6.w
if_nz r0.y
mul r0.yzw, r3.xxyz, r3.xxyz
mul r1.xyz, r0.yzwy, r11.xyzx
mad r2.xyz, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r2.xyzx
add r1.x, cb0[19].z, l(-2.500000)
sample_l_indexable(texturecube)(float,float,float,float) r1.xyz, r8.xyzx, t5.xyzw, s5, r1.x
mul r0.yzw, r0.yyzw, r1.xxyz
mul r1.x, r0.x, l(0.500000)
mad r9.xyz, r0.yzwy, r1.xxxx, r9.xyzx
endif
add r0.yzw, r2.xxyz, r9.xxyz
mul r0.yzw, r0.yyzw, cb0[18].xxyz
mul o0.xyz, r0.xxxx, r0.yzwy
mov o0.w, l(0)
ret
// Approximately 0 instruction slots used
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
I wasn't able to hunt down the shader for a minor lighting glitch (candlefire reflections in church), but I guess I'll give it another go and look for a VS instead of a PS. However, it's no big deal anyway.
It's the orchestral music mod.
CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: MSI GeForce RTX 2080Ti Gaming X Trio
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com
I know how to fix both shaders...the first one need a double correction and is a variant of the swizzle that the regex don't cover, and the second one is a reflections shader (i saw the same shader in at least 3 UE4 games....probably can make a regex for that since is consistent repeating in some games).
Can you upload the shaders? not only the text....the files.
I can look when i arrive home in the night.
MY WEB
Helix Mod - Making 3D Better
My 3D Screenshot Gallery
Like my fixes? you can donate to Paypal: dhr.donation@gmail.com
Thanks, masterotaku! The proper music from the Tokyo Metropolitan Symphony Orchestra beats the midi-files of the release version any day of the week :D
Thank you so much for looking into this, DHR.
Will the ps_replace.txt files that I've saved with 3Dmigoto in hunting mode help or do I have to grab them elsewhere?
If that's what you meant, here are the Dropbox-links:
https://www.dropbox.com/s/6ppqf6zzekstt1o/c801eddf127ee7e1-ps_replace.txt?dl=0
https://www.dropbox.com/s/1bj3sfy46on0c7v/9bd20d1c26e87bb8-ps_replace.txt?dl=0