Bo3b's School For Shaderhackers
  85 / 88    
Thanks alot DHR I played around with the numbers and it worked with some compromise less smearing on the Side but the position of the clouds and skybox gets bended over to one side. For me its very good because i didnt recognise the smearing on the side playing on a big screen but for an official release its maybe not enough. Would you use the same formula for Volumetric 3d Clouds?
Thanks alot DHR
I played around with the numbers and it worked with some
compromise less smearing on the Side but the position of the clouds and skybox
gets bended over to one side. For me its very good because i didnt recognise
the smearing on the side playing on a big screen but for an official release its
maybe not enough. Would you use the same formula for Volumetric 3d Clouds?

Posted 12/10/2018 09:15 PM   
do you have some screenshots with this fix: [code]o1.x += stereo.x;[/code] and this fix (with the numbers you found that works the best): [code]o1.x += stereo.x * 0.88; o1.xyz *= 1.15;[/code]
do you have some screenshots with this fix:
o1.x += stereo.x;


and this fix (with the numbers you found that works the best):
o1.x += stereo.x * 0.88;
o1.xyz *= 1.15;

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

Posted 12/11/2018 09:02 PM   
Here the Pics i used this numbers: [code]o1.x += stereo.x * 0.9; o1.xyz *= 1.025;[/code]
Here the Pics i used this numbers:
o1.x += stereo.x * 0.9;  
o1.xyz *= 1.025;

Posted 12/11/2018 10:37 PM   
Try with this: [code]o1.x += stereo.x * 0.9; o1.xy *= 1.025;[/code] and this: [code]o1.x += stereo.x * 0.9; o1.x *= 1.025; [/code] Those stripes are new....never see that behavior.
Try with this:

o1.x += stereo.x * 0.9;  
o1.xy *= 1.025;


and this:
o1.x += stereo.x * 0.9;  
o1.x *= 1.025;


Those stripes are new....never see that behavior.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

Posted 12/12/2018 12:52 PM   
[quote="DHR"]Those stripes are new....never see that behavior.[/quote]Looks like it's a sky sphere instead of a sky box, though it's not entirely clear to me why the adjustment is revealing that. There might be a second shader that will need the same adjustment. Another thought - what happens if you adjust the texcoord instead of the position? Either o0.x -= stereo.x/2; at the end of the shader or v1.x -= stereo.x/2; at the start? [quote][code] o1.x += stereo.x * 0.88; o1.xyz *= 1.15; [/code][/quote]I don't recommend using these type of fudge factors unless it's a last resort, and I'm not positive if they will work on other screen sizes (i.e. you might be picking values that only work for you). If you need to stretch an effect to fill up the gaps at the side of the screen try multiplying by the absolute value of 1+separation instead (not necessarily to the output - you may need texcoords to match so experiment a little and see what works): [code] o1.x *= 1 + abs(stereo.x); [/code]
DHR said:Those stripes are new....never see that behavior.
Looks like it's a sky sphere instead of a sky box, though it's not entirely clear to me why the adjustment is revealing that. There might be a second shader that will need the same adjustment.

Another thought - what happens if you adjust the texcoord instead of the position? Either o0.x -= stereo.x/2; at the end of the shader or v1.x -= stereo.x/2; at the start?



o1.x += stereo.x * 0.88;
o1.xyz *= 1.15;
I don't recommend using these type of fudge factors unless it's a last resort, and I'm not positive if they will work on other screen sizes (i.e. you might be picking values that only work for you). If you need to stretch an effect to fill up the gaps at the side of the screen try multiplying by the absolute value of 1+separation instead (not necessarily to the output - you may need texcoords to match so experiment a little and see what works):

o1.x *= 1 + abs(stereo.x);

2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit

Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD

Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword

Posted 12/12/2018 03:10 PM   
Wohoo thanks alot DSS and DHR This one at the beginning of the code did it[code]{ float4 params = IniParams.Load(0); float4 stereo = StereoParams.Load(0); v1.x -= stereo.x/2;[/code] First Pic in Low quality cloud settings looks perfect Second is in High quality cloud settings there seems in the distance are something wrong with the convergence maybe? But not a big deal because the only difference between high and low is the smoothness of the movement from the clouds.
Wohoo thanks alot DSS and DHR

This one at the beginning of the code did it
{
float4 params = IniParams.Load(0);
float4 stereo = StereoParams.Load(0);
v1.x -= stereo.x/2;


First Pic in Low quality cloud settings looks perfect
Second is in High quality cloud settings there seems in the
distance are something wrong with the convergence maybe?
But not a big deal because the only difference between high and
low is the smoothness of the movement from the clouds.

Posted 12/12/2018 08:04 PM   
The first pictures seems right... You play at 5% depth? just noticed in the screenshot
The first pictures seems right...
You play at 5% depth? just noticed in the screenshot

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

Posted 12/12/2018 09:32 PM   
[quote="DHR"]The first pictures seems right...[/quote] No, it doesn't look completely right. The skybox is at more depth than the furthest scenery, and clouds seem somewhat stereoized in the Y axis. The second picture just makes it a lot more apparent.
DHR said:The first pictures seems right...


No, it doesn't look completely right. The skybox is at more depth than the furthest scenery, and clouds seem somewhat stereoized in the Y axis.

The second picture just makes it a lot more apparent.

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

Posted 12/12/2018 09:42 PM   
ah sorry i forget to set the monitorsize back to normal before makin pics 5% is like 100% on my screen. What you think should i post this fix on helixmod? To fast maybe more testing is required:)
ah sorry i forget to set the monitorsize back
to normal before makin pics 5% is like 100%
on my screen. What you think should i post this
fix on helixmod?
To fast maybe more testing is required:)

Posted 12/12/2018 09:51 PM   
Misalignment in the Y axis is eye-strain inducing bad, but this at least tells us that the texcoords are in a different coordinate system that is not lined up with the screen. If the vertex shader seems like a dead end it might be one of the cases where the adjustment has to go in somewhere in the pixel shader - it might be worth taking a look at it and experimenting with adjustments in different spots to see if you can find somewhere to move the sky in the right direction without breaking anything else. It's a little harder to give concrete suggestions for exactly what to do to fix a sky pixel shader because they tend to be a bit more complicated than vertex shaders, but play around and you might find something.
Misalignment in the Y axis is eye-strain inducing bad, but this at least tells us that the texcoords are in a different coordinate system that is not lined up with the screen.

If the vertex shader seems like a dead end it might be one of the cases where the adjustment has to go in somewhere in the pixel shader - it might be worth taking a look at it and experimenting with adjustments in different spots to see if you can find somewhere to move the sky in the right direction without breaking anything else. It's a little harder to give concrete suggestions for exactly what to do to fix a sky pixel shader because they tend to be a bit more complicated than vertex shaders, but play around and you might find something.

2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit

Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD

Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword

Posted 12/13/2018 10:32 PM   
yes...now looking the first screenshots in my 3DTV looks bit strange (yesterday look the screnshoot cross-eye) Also i recommend to disable that monitor hack depth....that may be causing issues with the original know common fix pattern.
yes...now looking the first screenshots in my 3DTV looks bit strange (yesterday look the screnshoot cross-eye)

Also i recommend to disable that monitor hack depth....that may be causing issues with the original know common fix pattern.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

Posted 12/13/2018 11:30 PM   
here some pics with viewing to different directions. Im very happy with your fixes and grateful what you guys doin for the 3d vision community.
here some pics with viewing to different directions.
Im very happy with your fixes and grateful what you guys
doin for the 3d vision community.

Posted 12/14/2018 06:56 PM   
Hey Guys, EDIT: SOLVED IT WITH THE FOLLOWING CODE: [code] //lights under station bay in hangar need to fix..12-14 // ---- Created with 3Dmigoto v1.2.54 on Fri Dec 14 18:31:18 2018 cbuffer cb0 : register(b0) { float4 cb0[9]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float3 v0 : COLOR0, float3 v1 : POSITION0, float4 v2 : TEXCOORD0, float4 v3 : TEXCOORD1, float3 v4 : TEXCOORD2, out float4 o0 : TEXCOORD0, out float4 o1 : TEXCOORD1, out float4 o2 : TEXCOORD2, out float3 o3 : TEXCOORD3, out float4 o4 : SV_Position0) { float4 r0,r1; uint4 bitmask, uiDest; float4 fDest; float4 stereo = StereoParams.Load(0); float separation = stereo.x, convergence = stereo.y, eye = stereo.z; o0.w = v3.x; r0.xyz = v4.xyz * v3.xxx + v1.xyz; r0.w = 1; r1.x = dot(cb0[4].xyzw, r0.xyzw); r1.y = dot(cb0[5].xyzw, r0.xyzw); r1.w = dot(cb0[7].xyzw, r0.xyzw); o4.xyw = r1.xyw; //relocated here from below if (r1.w != 1.0) { r1.x += separation * (r1.w - convergence); } o0.xyz = r1.xyw; // o4.xyw = r1.xyw; o1.w = v2.x * v2.x; r1.xyz = v1.xyz; r1.w = 1; o1.x = dot(cb0[0].xyzw, r1.xyzw); o1.y = dot(cb0[1].xyzw, r1.xyzw); o1.z = dot(cb0[2].xyzw, r1.xyzw); r1.x = v3.x * v3.x; o2.w = 1 / r1.x; o2.xyz = cb0[8].xxx * v0.xyz; o3.x = dot(cb0[0].xyzw, r0.xyzw); o3.y = dot(cb0[1].xyzw, r0.xyzw); o3.z = dot(cb0[2].xyzw, r0.xyzw); o4.z = dot(cb0[6].xyzw, r0.xyzw); return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // using 3Dmigoto v1.2.54 on Fri Dec 14 18:31:18 2018 // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // COLOR 0 xyz 0 NONE float xyz // POSITION 0 xyz 1 NONE float xyz // TEXCOORD 0 x 2 NONE float x // TEXCOORD 1 x 3 NONE float x // TEXCOORD 2 xyz 4 NONE float xyz // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // TEXCOORD 0 xyzw 0 NONE float xyzw // TEXCOORD 1 xyzw 1 NONE float xyzw // TEXCOORD 2 xyzw 2 NONE float xyzw // TEXCOORD 3 xyz 3 NONE float xyz // SV_Position 0 xyzw 4 POS float xyzw // vs_4_1 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[9], immediateIndexed dcl_input v0.xyz dcl_input v1.xyz dcl_input v2.x dcl_input v3.x dcl_input v4.xyz dcl_output o0.xyzw dcl_output o1.xyzw dcl_output o2.xyzw dcl_output o3.xyz dcl_output_siv o4.xyzw, position dcl_temps 3 mov o0.w, v3.x mad r0.xyz, v4.xyzx, v3.xxxx, v1.xyzx mov r0.w, l(1.000000) dp4 r1.x, cb0[4].xyzw, r0.xyzw dp4 r1.y, cb0[5].xyzw, r0.xyzw dp4 r1.w, cb0[7].xyzw, r0.xyzw mov o0.xyz, r1.xywx mov o4.xyw, r1.xyxw mul o1.w, v2.x, v2.x mov r1.xyz, v1.xyzx mov r1.w, l(1.000000) dp4 o1.x, cb0[0].xyzw, r1.xyzw dp4 o1.y, cb0[1].xyzw, r1.xyzw dp4 o1.z, cb0[2].xyzw, r1.xyzw mul r1.x, v3.x, v3.x div o2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x mul o2.xyz, v0.xyzx, cb0[8].xxxx dp4 o3.x, cb0[0].xyzw, r0.xyzw dp4 o3.y, cb0[1].xyzw, r0.xyzw dp4 o3.z, cb0[2].xyzw, r0.xyzw dp4 o4.z, cb0[6].xyzw, r0.xyzw ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code]
Hey Guys,

EDIT: SOLVED IT WITH THE FOLLOWING CODE:


//lights under station bay in hangar need to fix..12-14
// ---- Created with 3Dmigoto v1.2.54 on Fri Dec 14 18:31:18 2018
cbuffer cb0 : register(b0)
{
float4 cb0[9];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float3 v0 : COLOR0,
float3 v1 : POSITION0,
float4 v2 : TEXCOORD0,
float4 v3 : TEXCOORD1,
float3 v4 : TEXCOORD2,
out float4 o0 : TEXCOORD0,
out float4 o1 : TEXCOORD1,
out float4 o2 : TEXCOORD2,
out float3 o3 : TEXCOORD3,
out float4 o4 : SV_Position0)
{
float4 r0,r1;
uint4 bitmask, uiDest;
float4 fDest;


float4 stereo = StereoParams.Load(0);
float separation = stereo.x, convergence = stereo.y, eye = stereo.z;

o0.w = v3.x;
r0.xyz = v4.xyz * v3.xxx + v1.xyz;
r0.w = 1;
r1.x = dot(cb0[4].xyzw, r0.xyzw);
r1.y = dot(cb0[5].xyzw, r0.xyzw);
r1.w = dot(cb0[7].xyzw, r0.xyzw);

o4.xyw = r1.xyw; //relocated here from below

if (r1.w != 1.0) { r1.x += separation * (r1.w - convergence); }

o0.xyz = r1.xyw;
// o4.xyw = r1.xyw;
o1.w = v2.x * v2.x;
r1.xyz = v1.xyz;
r1.w = 1;
o1.x = dot(cb0[0].xyzw, r1.xyzw);
o1.y = dot(cb0[1].xyzw, r1.xyzw);
o1.z = dot(cb0[2].xyzw, r1.xyzw);
r1.x = v3.x * v3.x;
o2.w = 1 / r1.x;
o2.xyz = cb0[8].xxx * v0.xyz;
o3.x = dot(cb0[0].xyzw, r0.xyzw);
o3.y = dot(cb0[1].xyzw, r0.xyzw);
o3.z = dot(cb0[2].xyzw, r0.xyzw);
o4.z = dot(cb0[6].xyzw, r0.xyzw);
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.2.54 on Fri Dec 14 18:31:18 2018
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// COLOR 0 xyz 0 NONE float xyz
// POSITION 0 xyz 1 NONE float xyz
// TEXCOORD 0 x 2 NONE float x
// TEXCOORD 1 x 3 NONE float x
// TEXCOORD 2 xyz 4 NONE float xyz
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 0 xyzw 0 NONE float xyzw
// TEXCOORD 1 xyzw 1 NONE float xyzw
// TEXCOORD 2 xyzw 2 NONE float xyzw
// TEXCOORD 3 xyz 3 NONE float xyz
// SV_Position 0 xyzw 4 POS float xyzw
//
vs_4_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[9], immediateIndexed
dcl_input v0.xyz
dcl_input v1.xyz
dcl_input v2.x
dcl_input v3.x
dcl_input v4.xyz
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyz
dcl_output_siv o4.xyzw, position
dcl_temps 3
mov o0.w, v3.x
mad r0.xyz, v4.xyzx, v3.xxxx, v1.xyzx
mov r0.w, l(1.000000)
dp4 r1.x, cb0[4].xyzw, r0.xyzw
dp4 r1.y, cb0[5].xyzw, r0.xyzw
dp4 r1.w, cb0[7].xyzw, r0.xyzw
mov o0.xyz, r1.xywx
mov o4.xyw, r1.xyxw
mul o1.w, v2.x, v2.x
mov r1.xyz, v1.xyzx
mov r1.w, l(1.000000)
dp4 o1.x, cb0[0].xyzw, r1.xyzw
dp4 o1.y, cb0[1].xyzw, r1.xyzw
dp4 o1.z, cb0[2].xyzw, r1.xyzw
mul r1.x, v3.x, v3.x
div o2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x
mul o2.xyz, v0.xyzx, cb0[8].xxxx
dp4 o3.x, cb0[0].xyzw, r0.xyzw
dp4 o3.y, cb0[1].xyzw, r0.xyzw
dp4 o3.z, cb0[2].xyzw, r0.xyzw
dp4 o4.z, cb0[6].xyzw, r0.xyzw
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

Intel i5 7600K @ 4.8ghz / MSI Z270 SLI / Asus 1080GTX - 416.16 / Optoma HD142x Projector / 1 4'x10' Curved Screen PVC / TrackIR / HOTAS Cougar / Cougar MFD's / Track IR / NVidia 3D Vision / Win 10 64bit

Posted 12/15/2018 02:32 AM   
OK Onto the next one that I am finding difficult to fix.. this shader I think needs a double fix as part of it is fixed in the following shader but then some light in this same shader are still broke.. [code] //Station green/red lights outside and bright lights in corner of landing pad.. // ---- Created with 3Dmigoto v1.2.54 on Fri Nov 09 14:10:00 2018 Texture2D<float4> t0 : register(t0); SamplerState s0_s : register(s0); cbuffer cb0 : register(b0) { float4 cb0[3]; } cbuffer cb1 : register(b1) { float4 cb1[8]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : COLOR6, float4 v1 : POSITION0, float4 v2 : POSITION1, float4 v3 : POSITION2, float4 v4 : POSITION3, float4 v5 : TEXCOORD0, float4 v6 : TEXCOORD1, float4 v7 : TEXCOORD2, float4 v8 : TEXCOORD3, out float4 o0 : TEXCOORD0, out float4 o1 : TEXCOORD1, out float o2 : TEXCOORD2, out float4 o3 : SV_Position0) { float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10; uint4 bitmask, uiDest; float4 fDest; float4 stereo = StereoParams.Load(0); float4 params2 = IniParams.Load(int2(1,0)); float4 params = IniParams.Load(0); r0.xy = v7.zw * v5.xy; r0.xy = float2(0.0625,0.125) * r0.xy; o1.xy = v7.xy * float2(0.0625,0.125) + r0.xy; r0.xyz = v1.xyz; r0.w = 1; r1.y = dot(cb1[4].xyzw, r0.xyzw); r1.z = dot(cb1[5].xyzw, r0.xyzw); r0.x = dot(cb1[7].xyzw, r0.xyzw); r0.y = cmp(v1.w < 0.5); r0.z = -v1.w + r0.x; r0.z = max(0, r0.z); r0.y = r0.y ? r0.x : r0.z; r0.z = cmp(0 < v6.y); if (r0.z != 0) { r0.z = saturate(v6.y); r0.zw = v2.zw * r0.zz; } else { r1.x = 3.14159012 * v4.z; r1.x = cos(r1.x); r1.x = r1.x * 0.5 + 0.5; r1.x = 1 + -r1.x; r0.zw = v2.zw * r1.xx; } r1.xy = r1.yz / r0.xx; r1.zw = cb0[0].zw + -cb0[0].xy; r1.xy = r1.xy * float2(0.5,0.5) + float2(0.5,0.5); r1.xy = r1.zw * r1.xy + cb0[0].xy; r1.xy = r1.xy * float2(2,2) + float2(-1,-1); r2.xy = float2(0.5,0.5) * r1.xy; r3.xy = r1.xy * float2(0.5,0.5) + float2(0.5,0.5); r4.xy = float2(1,1) + -v4.xy; r4.xy = v8.xy * r4.xy; r4.xy = r4.xy * v8.zz + r1.xy; r0.zw = v8.xy * r0.zw; r0.zw = v8.zz * r0.zw; r0.zw = v4.xy * r0.zw; r0.zw = r0.zw * float2(2,2) + r4.xy; r4.xy = r0.zw + -r1.xy; r3.w = dot(r4.xy, r4.xy); r3.w = rsqrt(r3.w); r4.xy = r4.xy * r3.ww; r4.xy = float2(1,-1) * r4.xy; r3.w = dot(r4.xy, r4.xy); r3.w = sqrt(r3.w); r3.w = cmp(r3.w < 0.899999976); r4.w = cmp(0 >= v6.w); r3.w = (int)r3.w | (int)r4.w; if (r3.w != 0) { r4.xy = float2(1,0); } sincos(v4.w, r5.x, r6.x); r7.x = sin(-v4.w); r4.z = -r4.y; r7.y = r6.x; r7.z = r5.x; r5.x = dot(r4.xz, r7.yz); r6.x = dot(r4.xz, r7.xy); r5.y = dot(r4.yx, r7.yz); r6.y = dot(r4.yx, r7.xy); r3.w = dot(r1.xy, r1.xy); r3.w = sqrt(r3.w); r3.w = min(1, r3.w); r4.xy = float2(1,1) + -v3.zw; r4.xy = -abs(r1.xy) * r4.xy + float2(1,1); r4.xy = max(float2(0.200000003,0.200000003), r4.xy); r4.xy = min(float2(1,1), r4.xy); r4.z = 1 + -r3.w; r4.zw = v3.xy * r4.zz; r4.xy = r4.xy * r3.ww + r4.zw; r4.yz = v2.xy * r4.xy; r4.x = r4.y / cb0[2].x; r3.w = cmp(0 < v8.w); r4.yw = cb0[2].yy * r4.xz; r4.xy = r3.ww ? r4.yw : r4.xz; r4.xy = v5.zw * r4.xy; r5.x = dot(r4.xy, r5.xy); r5.y = dot(r4.xy, r6.xy); r0.zw = r5.xy + r0.zw; r0.zw = r0.zw * float2(0.5,0.5) + -cb0[0].xy; r0.zw = float2(0.5,0.5) + r0.zw; r0.zw = r0.zw / r1.zw; r0.zw = r0.zw * float2(2,2) + float2(-1,-1); r0.x = cmp(0 < r0.x); r4.xy = r0.xx ? r0.zw : 0; r0.xz = r4.xy * float2(0.5,0.5) + float2(0.5,0.5); r0.xz = r0.xz * r1.zw + cb0[0].xy; r5.xy = float2(1,1) / cb0[1].xy; r6.xyz = -r5.xyx; r1.w = -2 * r5.y; r3.z = 1 + -r3.y; r3.yw = r5.xy * float2(-2,-2) + r3.xz; r7.xyzw = t0.SampleLevel(s0_s, r3.yw, 0).xyzw; r0.w = cmp(r0.y < r7.x); r0.w = r0.w ? 1.000000 : 0; r5.w = -2 * r5.y; r3.xy = r5.xy * float2(-1,-2) + r3.xz; r3.xyzw = t0.SampleLevel(s0_s, r3.xy, 0).xyzw; r3.x = cmp(r0.y < r3.x); r3.x = r3.x ? 1.000000 : 0; r0.w = r3.x + r0.w; r2.z = -r1.y * 0.5 + 0.5; r1.z = 0.5; r1.yz = r2.xz + r1.zw; r3.xyzw = t0.SampleLevel(s0_s, r1.yz, 0).xyzw; r1.y = cmp(r0.y < r3.x); r1.y = r1.y ? 1.000000 : 0; r0.w = r1.y + r0.w; r2.w = r1.x * 0.5 + 0.5; r1.xy = r2.wz + r5.xw; r1.xyzw = t0.SampleLevel(s0_s, r1.xy, 0).xyzw; r1.x = cmp(r0.y < r1.x); r1.x = r1.x ? 1.000000 : 0; r0.w = r1.x + r0.w; r1.xy = float2(0.5,0) + r2.xz; r3.xyzw = r5.xwxy * float4(2,1,-2,1) + r1.xyxy; r7.xyzw = t0.SampleLevel(s0_s, r3.xy, 0).xyzw; r1.z = cmp(r0.y < r7.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r7.xy = float2(-2,-1) * r5.xy; r1.zw = r5.xy * float2(-2,-1) + r1.xy; r8.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw; r1.z = cmp(r0.y < r8.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r1.zw = r1.xy + r6.xy; r8.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw; r1.z = cmp(r0.y < r8.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r7.zw = float2(0.5,1); r1.zw = r7.zy + r2.xz; r8.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw; r1.z = cmp(r0.y < r8.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r8.x = 1 * r5.x; r1.zw = r5.xy * float2(1,-1) + r1.xy; r9.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw; r1.z = cmp(r0.y < r9.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r9.x = 2 * r5.x; r1.zw = r5.xy * float2(2,-1) + r1.xy; r10.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw; r1.z = cmp(r0.y < r10.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r1.zw = r2.xy * float2(1,-1) + float2(0.5,-0.5); r2.yw = r1.zw + r7.xw; r7.xyzw = t0.SampleLevel(s0_s, r2.yw, 0).xyzw; r2.y = cmp(r0.y < r7.x); r2.y = r2.y ? 1.000000 : 0; r0.w = r2.y + r0.w; r6.w = 1; r2.yw = r6.zw + r1.zw; r6.xyzw = t0.SampleLevel(s0_s, r2.yw, 0).xyzw; r2.y = cmp(r0.y < r6.x); r2.y = r2.y ? 1.000000 : 0; r0.w = r2.y + r0.w; r6.xyzw = t0.SampleLevel(s0_s, r1.xy, 0).xyzw; r2.y = cmp(r0.y < r6.x); r2.y = r2.y ? 1.000000 : 0; r0.w = r2.y + r0.w; r8.z = 1; r2.yw = r8.xz + r1.zw; r6.xyzw = t0.SampleLevel(s0_s, r2.yw, 0).xyzw; r2.y = cmp(r0.y < r6.x); r2.y = r2.y ? 1.000000 : 0; r0.w = r2.y + r0.w; r9.z = 1; r1.zw = r9.xz + r1.zw; r6.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw; r1.z = cmp(r0.y < r6.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r3.xyzw = t0.SampleLevel(s0_s, r3.zw, 0).xyzw; r1.z = cmp(r0.y < r3.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r3.y = 1 * r5.y; r1.zw = r5.xy * float2(-1,1) + r1.xy; r6.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw; r1.z = cmp(r0.y < r6.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r3.z = 0.5; r1.zw = r3.zy + r2.xz; r3.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw; r1.z = cmp(r0.y < r3.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r1.zw = r1.xy + r5.xy; r3.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw; r1.z = cmp(r0.y < r3.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r3.xyzw = r5.xyxy * float4(2,1,-2,2) + r1.xyxy; r6.xyzw = t0.SampleLevel(s0_s, r3.xy, 0).xyzw; r1.z = cmp(r0.y < r6.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r3.xyzw = t0.SampleLevel(s0_s, r3.zw, 0).xyzw; r1.z = cmp(r0.y < r3.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r3.y = 2 * r5.y; r1.zw = r5.xy * float2(-1,2) + r1.xy; r6.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw; r1.z = cmp(r0.y < r6.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r3.z = 0.5; r1.zw = r3.zy + r2.xz; r2.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw; r1.z = cmp(r0.y < r2.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r1.zw = r5.xy * float2(1,2) + r1.xy; r2.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw; r1.z = cmp(r0.y < r2.x); r1.z = r1.z ? 1.000000 : 0; r0.w = r1.z + r0.w; r1.xy = r5.xy * float2(2,2) + r1.xy; r1.xyzw = t0.SampleLevel(s0_s, r1.xy, 0).xyzw; r0.y = cmp(r0.y < r1.x); r0.y = r0.y ? 1.000000 : 0; r0.y = r0.w + r0.y; r0.w = 0.0399999991 * r0.y; r0.y = cmp(0.25 < r0.y); r4.zw = float2(0,1); o3.xyzw = r0.yyyy ? r4.xyzw : 0; o0.xyz = v0.xyz * r0.www; o0.w = v6.x; o1.zw = r0.xz * float2(1,-1) + float2(0,1); o2.x = v6.z; o3.x += stereo.x; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // using 3Dmigoto v1.2.54 on Fri Nov 09 14:10:00 2018 // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // COLOR 6 xyzw 0 NONE float xyz // POSITION 0 xyzw 1 NONE float xyzw // POSITION 1 xyzw 2 NONE float xyzw // POSITION 2 xyzw 3 NONE float xyzw // POSITION 3 xyzw 4 NONE float xyzw // TEXCOORD 0 xyzw 5 NONE float xyzw // TEXCOORD 1 xyzw 6 NONE float xyzw // TEXCOORD 2 xyzw 7 NONE float xyzw // TEXCOORD 3 xyzw 8 NONE float xyzw // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // TEXCOORD 0 xyzw 0 NONE float xyzw // TEXCOORD 1 xyzw 1 NONE float xyzw // TEXCOORD 2 x 2 NONE float x // SV_Position 0 xyzw 3 POS float xyzw // vs_4_0 dcl_constantbuffer cb1[8], immediateIndexed dcl_constantbuffer cb0[3], immediateIndexed dcl_sampler s0, mode_default dcl_resource_texture2d (float,float,float,float) t0 dcl_input v0.xyz dcl_input v1.xyzw dcl_input v2.xyzw dcl_input v3.xyzw dcl_input v4.xyzw dcl_input v5.xyzw dcl_input v6.xyzw dcl_input v7.xyzw dcl_input v8.xyzw dcl_output o0.xyzw dcl_output o1.xyzw dcl_output o2.x dcl_output_siv o3.xyzw, position dcl_temps 11 mul r0.xy, v5.xyxx, v7.zwzz mul r0.xy, r0.xyxx, l(0.062500, 0.125000, 0.000000, 0.000000) mad o1.xy, v7.xyxx, l(0.062500, 0.125000, 0.000000, 0.000000), r0.xyxx mov r0.xyz, v1.xyzx mov r0.w, l(1.000000) dp4 r1.y, cb1[4].xyzw, r0.xyzw dp4 r1.z, cb1[5].xyzw, r0.xyzw dp4 r0.x, cb1[7].xyzw, r0.xyzw lt r0.y, v1.w, l(0.500000) add r0.z, r0.x, -v1.w max r0.z, r0.z, l(0.000000) movc r0.y, r0.y, r0.x, r0.z lt r0.z, l(0.000000), v6.y if_nz r0.z mov_sat r0.z, v6.y mul r0.zw, r0.zzzz, v2.zzzw else mul r1.x, v4.z, l(3.141590) sincos null, r1.x, r1.x mad r1.x, r1.x, l(0.500000), l(0.500000) add r1.x, -r1.x, l(1.000000) mul r0.zw, r1.xxxx, v2.zzzw endif div r1.xy, r1.yzyy, r0.xxxx add r1.zw, -cb0[0].xxxy, cb0[0].zzzw mad r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) mad r1.xy, r1.zwzz, r1.xyxx, cb0[0].xyxx mad r1.xy, r1.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) mul r2.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) mad r3.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) add r4.xy, -v4.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) mul r4.xy, r4.xyxx, v8.xyxx mad r4.xy, r4.xyxx, v8.zzzz, r1.xyxx mul r0.zw, r0.zzzw, v8.xxxy mul r0.zw, r0.zzzw, v8.zzzz mul r0.zw, r0.zzzw, v4.xxxy mad r0.zw, r0.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), r4.xxxy add r4.xy, -r1.xyxx, r0.zwzz dp2 r3.w, r4.xyxx, r4.xyxx rsq r3.w, r3.w mul r4.xy, r3.wwww, r4.xyxx mul r4.xy, r4.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000) dp2 r3.w, r4.xyxx, r4.xyxx sqrt r3.w, r3.w lt r3.w, r3.w, l(0.900000) ge r4.w, l(0.000000), v6.w or r3.w, r3.w, r4.w if_nz r3.w mov r4.xy, l(1.000000,0,0,0) endif sincos r5.x, r6.x, v4.w sincos r7.x, null, -v4.w mov r4.z, -r4.y mov r7.y, r6.x mov r7.z, r5.x dp2 r5.x, r4.xzxx, r7.yzyy dp2 r6.x, r4.xzxx, r7.xyxx dp2 r5.y, r4.yxyy, r7.yzyy dp2 r6.y, r4.yxyy, r7.xyxx dp2 r3.w, r1.xyxx, r1.xyxx sqrt r3.w, r3.w min r3.w, r3.w, l(1.000000) add r4.xy, -v3.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000) mad r4.xy, -|r1.xyxx|, r4.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) max r4.xy, r4.xyxx, l(0.200000, 0.200000, 0.000000, 0.000000) min r4.xy, r4.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) add r4.z, -r3.w, l(1.000000) mul r4.zw, r4.zzzz, v3.xxxy mad r4.xy, r4.xyxx, r3.wwww, r4.zwzz mul r4.yz, r4.xxyx, v2.xxyx div r4.x, r4.y, cb0[2].x lt r3.w, l(0.000000), v8.w mul r4.yw, r4.xxxz, cb0[2].yyyy movc r4.xy, r3.wwww, r4.ywyy, r4.xzxx mul r4.xy, r4.xyxx, v5.zwzz dp2 r5.x, r4.xyxx, r5.xyxx dp2 r5.y, r4.xyxx, r6.xyxx add r0.zw, r0.zzzw, r5.xxxy mad r0.zw, r0.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), -cb0[0].xxxy add r0.zw, r0.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000) div r0.zw, r0.zzzw, r1.zzzw mad r0.zw, r0.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) lt r0.x, l(0.000000), r0.x and r4.xy, r0.zwzz, r0.xxxx mad r0.xz, r4.xxyx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000) mad r0.xz, r0.xxzx, r1.zzwz, cb0[0].xxyx div r5.xy, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[1].xyxx mov r6.xyz, -r5.xyxx mul r1.w, r5.y, l(-2.000000) add r3.z, -r3.y, l(1.000000) mad r3.yw, r5.xxxy, l(0.000000, -2.000000, 0.000000, -2.000000), r3.xxxz sample_l r7.xyzw, r3.ywyy, t0.xyzw, s0, l(0.000000) lt r0.w, r0.y, r7.x and r0.w, r0.w, l(0x3f800000) mul r5.w, r5.y, l(-2.000000) mad r3.xy, r5.xyxx, l(-1.000000, -2.000000, 0.000000, 0.000000), r3.xzxx sample_l r3.xyzw, r3.xyxx, t0.xyzw, s0, l(0.000000) lt r3.x, r0.y, r3.x and r3.x, r3.x, l(0x3f800000) add r0.w, r0.w, r3.x mad r2.z, -r1.y, l(0.500000), l(0.500000) mov r1.z, l(0.500000) add r1.yz, r1.zzwz, r2.xxzx sample_l r3.xyzw, r1.yzyy, t0.xyzw, s0, l(0.000000) lt r1.y, r0.y, r3.x and r1.y, r1.y, l(0x3f800000) add r0.w, r0.w, r1.y mad r2.w, r1.x, l(0.500000), l(0.500000) add r1.xy, r5.xwxx, r2.wzww sample_l r1.xyzw, r1.xyxx, t0.xyzw, s0, l(0.000000) lt r1.x, r0.y, r1.x and r1.x, r1.x, l(0x3f800000) add r0.w, r0.w, r1.x add r1.xy, r2.xzxx, l(0.500000, 0.000000, 0.000000, 0.000000) mad r3.xyzw, r5.xwxy, l(2.000000, 1.000000, -2.000000, 1.000000), r1.xyxy sample_l r7.xyzw, r3.xyxx, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r7.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z mul r7.xy, r5.xyxx, l(-2.000000, -1.000000, 0.000000, 0.000000) mad r1.zw, r5.xxxy, l(0.000000, 0.000000, -2.000000, -1.000000), r1.xxxy sample_l r8.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r8.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z add r1.zw, r6.xxxy, r1.xxxy sample_l r8.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r8.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z mov r7.zw, l(0,0,0.500000,1.000000) add r1.zw, r2.xxxz, r7.zzzy sample_l r8.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r8.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z mul r8.x, r5.x, l(1.000000) mad r1.zw, r5.xxxy, l(0.000000, 0.000000, 1.000000, -1.000000), r1.xxxy sample_l r9.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r9.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z mul r9.x, r5.x, l(2.000000) mad r1.zw, r5.xxxy, l(0.000000, 0.000000, 2.000000, -1.000000), r1.xxxy sample_l r10.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r10.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z mad r1.zw, r2.xxxy, l(0.000000, 0.000000, 1.000000, -1.000000), l(0.000000, 0.000000, 0.500000, -0.500000) add r2.yw, r7.xxxw, r1.zzzw sample_l r7.xyzw, r2.ywyy, t0.xyzw, s0, l(0.000000) lt r2.y, r0.y, r7.x and r2.y, r2.y, l(0x3f800000) add r0.w, r0.w, r2.y mov r6.w, l(1.000000) add r2.yw, r1.zzzw, r6.zzzw sample_l r6.xyzw, r2.ywyy, t0.xyzw, s0, l(0.000000) lt r2.y, r0.y, r6.x and r2.y, r2.y, l(0x3f800000) add r0.w, r0.w, r2.y sample_l r6.xyzw, r1.xyxx, t0.xyzw, s0, l(0.000000) lt r2.y, r0.y, r6.x and r2.y, r2.y, l(0x3f800000) add r0.w, r0.w, r2.y mov r8.z, l(1.000000) add r2.yw, r1.zzzw, r8.xxxz sample_l r6.xyzw, r2.ywyy, t0.xyzw, s0, l(0.000000) lt r2.y, r0.y, r6.x and r2.y, r2.y, l(0x3f800000) add r0.w, r0.w, r2.y mov r9.z, l(1.000000) add r1.zw, r1.zzzw, r9.xxxz sample_l r6.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r6.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z sample_l r3.xyzw, r3.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r3.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z mul r3.y, r5.y, l(1.000000) mad r1.zw, r5.xxxy, l(0.000000, 0.000000, -1.000000, 1.000000), r1.xxxy sample_l r6.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r6.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z mov r3.z, l(0.500000) add r1.zw, r2.xxxz, r3.zzzy sample_l r3.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r3.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z add r1.zw, r5.xxxy, r1.xxxy sample_l r3.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r3.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z mad r3.xyzw, r5.xyxy, l(2.000000, 1.000000, -2.000000, 2.000000), r1.xyxy sample_l r6.xyzw, r3.xyxx, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r6.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z sample_l r3.xyzw, r3.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r3.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z mul r3.y, r5.y, l(2.000000) mad r1.zw, r5.xxxy, l(0.000000, 0.000000, -1.000000, 2.000000), r1.xxxy sample_l r6.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r6.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z mov r3.z, l(0.500000) add r1.zw, r2.xxxz, r3.zzzy sample_l r2.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r2.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z mad r1.zw, r5.xxxy, l(0.000000, 0.000000, 1.000000, 2.000000), r1.xxxy sample_l r2.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000) lt r1.z, r0.y, r2.x and r1.z, r1.z, l(0x3f800000) add r0.w, r0.w, r1.z mad r1.xy, r5.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), r1.xyxx sample_l r1.xyzw, r1.xyxx, t0.xyzw, s0, l(0.000000) lt r0.y, r0.y, r1.x and r0.y, r0.y, l(0x3f800000) add r0.y, r0.y, r0.w mul r0.w, r0.y, l(0.040000) lt r0.y, l(0.250000), r0.y mov r4.zw, l(0,0,0,1.000000) and o3.xyzw, r0.yyyy, r4.xyzw mul o0.xyz, r0.wwww, v0.xyzx mov o0.w, v6.x mad o1.zw, r0.xxxz, l(0.000000, 0.000000, 1.000000, -1.000000), l(0.000000, 0.000000, 0.000000, 1.000000) mov o2.x, v6.z ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] here is a screenshot the first shows the red/green lights. if you look closely the lights from inside the station bleed through to the outside of the station even tho you should only see the red/green lights outside.. the red lights on the right near the entrance is supposed to be there the green lights are from the inside and should be invisible but they are not.. Also if you look on the outer rim of the station you see bright white lights with one eye effect.. so I would appreciate if you guys can let me in on how to do a Double fix if it is possible.. I tried looking for differnt shaders but all those lights I mentioned are in this 1 shader.. anyhelp appreciated..
OK Onto the next one that I am finding difficult to fix.. this shader I think needs a double fix as part of it is fixed in the following shader but then some light in this same shader are still broke..

//Station green/red lights outside and bright lights in corner of landing pad..
// ---- Created with 3Dmigoto v1.2.54 on Fri Nov 09 14:10:00 2018
Texture2D<float4> t0 : register(t0);

SamplerState s0_s : register(s0);

cbuffer cb0 : register(b0)
{
float4 cb0[3];
}

cbuffer cb1 : register(b1)
{
float4 cb1[8];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : COLOR6,
float4 v1 : POSITION0,
float4 v2 : POSITION1,
float4 v3 : POSITION2,
float4 v4 : POSITION3,
float4 v5 : TEXCOORD0,
float4 v6 : TEXCOORD1,
float4 v7 : TEXCOORD2,
float4 v8 : TEXCOORD3,
out float4 o0 : TEXCOORD0,
out float4 o1 : TEXCOORD1,
out float o2 : TEXCOORD2,
out float4 o3 : SV_Position0)
{
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10;
uint4 bitmask, uiDest;
float4 fDest;

float4 stereo = StereoParams.Load(0);
float4 params2 = IniParams.Load(int2(1,0));
float4 params = IniParams.Load(0);

r0.xy = v7.zw * v5.xy;
r0.xy = float2(0.0625,0.125) * r0.xy;
o1.xy = v7.xy * float2(0.0625,0.125) + r0.xy;
r0.xyz = v1.xyz;
r0.w = 1;
r1.y = dot(cb1[4].xyzw, r0.xyzw);
r1.z = dot(cb1[5].xyzw, r0.xyzw);
r0.x = dot(cb1[7].xyzw, r0.xyzw);
r0.y = cmp(v1.w < 0.5);
r0.z = -v1.w + r0.x;
r0.z = max(0, r0.z);
r0.y = r0.y ? r0.x : r0.z;
r0.z = cmp(0 < v6.y);
if (r0.z != 0) {
r0.z = saturate(v6.y);
r0.zw = v2.zw * r0.zz;
} else {
r1.x = 3.14159012 * v4.z;
r1.x = cos(r1.x);
r1.x = r1.x * 0.5 + 0.5;
r1.x = 1 + -r1.x;
r0.zw = v2.zw * r1.xx;
}
r1.xy = r1.yz / r0.xx;
r1.zw = cb0[0].zw + -cb0[0].xy;
r1.xy = r1.xy * float2(0.5,0.5) + float2(0.5,0.5);
r1.xy = r1.zw * r1.xy + cb0[0].xy;
r1.xy = r1.xy * float2(2,2) + float2(-1,-1);
r2.xy = float2(0.5,0.5) * r1.xy;
r3.xy = r1.xy * float2(0.5,0.5) + float2(0.5,0.5);
r4.xy = float2(1,1) + -v4.xy;
r4.xy = v8.xy * r4.xy;
r4.xy = r4.xy * v8.zz + r1.xy;
r0.zw = v8.xy * r0.zw;
r0.zw = v8.zz * r0.zw;
r0.zw = v4.xy * r0.zw;
r0.zw = r0.zw * float2(2,2) + r4.xy;
r4.xy = r0.zw + -r1.xy;
r3.w = dot(r4.xy, r4.xy);
r3.w = rsqrt(r3.w);
r4.xy = r4.xy * r3.ww;
r4.xy = float2(1,-1) * r4.xy;
r3.w = dot(r4.xy, r4.xy);
r3.w = sqrt(r3.w);
r3.w = cmp(r3.w < 0.899999976);
r4.w = cmp(0 >= v6.w);
r3.w = (int)r3.w | (int)r4.w;
if (r3.w != 0) {
r4.xy = float2(1,0);
}
sincos(v4.w, r5.x, r6.x);
r7.x = sin(-v4.w);
r4.z = -r4.y;
r7.y = r6.x;
r7.z = r5.x;
r5.x = dot(r4.xz, r7.yz);
r6.x = dot(r4.xz, r7.xy);
r5.y = dot(r4.yx, r7.yz);
r6.y = dot(r4.yx, r7.xy);
r3.w = dot(r1.xy, r1.xy);
r3.w = sqrt(r3.w);
r3.w = min(1, r3.w);
r4.xy = float2(1,1) + -v3.zw;
r4.xy = -abs(r1.xy) * r4.xy + float2(1,1);
r4.xy = max(float2(0.200000003,0.200000003), r4.xy);
r4.xy = min(float2(1,1), r4.xy);
r4.z = 1 + -r3.w;
r4.zw = v3.xy * r4.zz;
r4.xy = r4.xy * r3.ww + r4.zw;
r4.yz = v2.xy * r4.xy;
r4.x = r4.y / cb0[2].x;
r3.w = cmp(0 < v8.w);
r4.yw = cb0[2].yy * r4.xz;
r4.xy = r3.ww ? r4.yw : r4.xz;
r4.xy = v5.zw * r4.xy;
r5.x = dot(r4.xy, r5.xy);
r5.y = dot(r4.xy, r6.xy);
r0.zw = r5.xy + r0.zw;
r0.zw = r0.zw * float2(0.5,0.5) + -cb0[0].xy;
r0.zw = float2(0.5,0.5) + r0.zw;
r0.zw = r0.zw / r1.zw;
r0.zw = r0.zw * float2(2,2) + float2(-1,-1);
r0.x = cmp(0 < r0.x);
r4.xy = r0.xx ? r0.zw : 0;
r0.xz = r4.xy * float2(0.5,0.5) + float2(0.5,0.5);
r0.xz = r0.xz * r1.zw + cb0[0].xy;
r5.xy = float2(1,1) / cb0[1].xy;
r6.xyz = -r5.xyx;
r1.w = -2 * r5.y;
r3.z = 1 + -r3.y;
r3.yw = r5.xy * float2(-2,-2) + r3.xz;
r7.xyzw = t0.SampleLevel(s0_s, r3.yw, 0).xyzw;
r0.w = cmp(r0.y < r7.x);
r0.w = r0.w ? 1.000000 : 0;
r5.w = -2 * r5.y;
r3.xy = r5.xy * float2(-1,-2) + r3.xz;
r3.xyzw = t0.SampleLevel(s0_s, r3.xy, 0).xyzw;
r3.x = cmp(r0.y < r3.x);
r3.x = r3.x ? 1.000000 : 0;
r0.w = r3.x + r0.w;
r2.z = -r1.y * 0.5 + 0.5;
r1.z = 0.5;
r1.yz = r2.xz + r1.zw;
r3.xyzw = t0.SampleLevel(s0_s, r1.yz, 0).xyzw;
r1.y = cmp(r0.y < r3.x);
r1.y = r1.y ? 1.000000 : 0;
r0.w = r1.y + r0.w;
r2.w = r1.x * 0.5 + 0.5;
r1.xy = r2.wz + r5.xw;
r1.xyzw = t0.SampleLevel(s0_s, r1.xy, 0).xyzw;
r1.x = cmp(r0.y < r1.x);
r1.x = r1.x ? 1.000000 : 0;
r0.w = r1.x + r0.w;
r1.xy = float2(0.5,0) + r2.xz;
r3.xyzw = r5.xwxy * float4(2,1,-2,1) + r1.xyxy;
r7.xyzw = t0.SampleLevel(s0_s, r3.xy, 0).xyzw;
r1.z = cmp(r0.y < r7.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r7.xy = float2(-2,-1) * r5.xy;
r1.zw = r5.xy * float2(-2,-1) + r1.xy;
r8.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw;
r1.z = cmp(r0.y < r8.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r1.zw = r1.xy + r6.xy;
r8.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw;
r1.z = cmp(r0.y < r8.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r7.zw = float2(0.5,1);
r1.zw = r7.zy + r2.xz;
r8.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw;
r1.z = cmp(r0.y < r8.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r8.x = 1 * r5.x;
r1.zw = r5.xy * float2(1,-1) + r1.xy;
r9.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw;
r1.z = cmp(r0.y < r9.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r9.x = 2 * r5.x;
r1.zw = r5.xy * float2(2,-1) + r1.xy;
r10.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw;
r1.z = cmp(r0.y < r10.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r1.zw = r2.xy * float2(1,-1) + float2(0.5,-0.5);
r2.yw = r1.zw + r7.xw;
r7.xyzw = t0.SampleLevel(s0_s, r2.yw, 0).xyzw;
r2.y = cmp(r0.y < r7.x);
r2.y = r2.y ? 1.000000 : 0;
r0.w = r2.y + r0.w;
r6.w = 1;
r2.yw = r6.zw + r1.zw;
r6.xyzw = t0.SampleLevel(s0_s, r2.yw, 0).xyzw;
r2.y = cmp(r0.y < r6.x);
r2.y = r2.y ? 1.000000 : 0;
r0.w = r2.y + r0.w;
r6.xyzw = t0.SampleLevel(s0_s, r1.xy, 0).xyzw;
r2.y = cmp(r0.y < r6.x);
r2.y = r2.y ? 1.000000 : 0;
r0.w = r2.y + r0.w;
r8.z = 1;
r2.yw = r8.xz + r1.zw;
r6.xyzw = t0.SampleLevel(s0_s, r2.yw, 0).xyzw;
r2.y = cmp(r0.y < r6.x);
r2.y = r2.y ? 1.000000 : 0;
r0.w = r2.y + r0.w;
r9.z = 1;
r1.zw = r9.xz + r1.zw;
r6.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw;
r1.z = cmp(r0.y < r6.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r3.xyzw = t0.SampleLevel(s0_s, r3.zw, 0).xyzw;
r1.z = cmp(r0.y < r3.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r3.y = 1 * r5.y;
r1.zw = r5.xy * float2(-1,1) + r1.xy;
r6.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw;
r1.z = cmp(r0.y < r6.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r3.z = 0.5;
r1.zw = r3.zy + r2.xz;
r3.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw;
r1.z = cmp(r0.y < r3.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r1.zw = r1.xy + r5.xy;
r3.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw;
r1.z = cmp(r0.y < r3.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r3.xyzw = r5.xyxy * float4(2,1,-2,2) + r1.xyxy;
r6.xyzw = t0.SampleLevel(s0_s, r3.xy, 0).xyzw;
r1.z = cmp(r0.y < r6.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r3.xyzw = t0.SampleLevel(s0_s, r3.zw, 0).xyzw;
r1.z = cmp(r0.y < r3.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r3.y = 2 * r5.y;
r1.zw = r5.xy * float2(-1,2) + r1.xy;
r6.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw;
r1.z = cmp(r0.y < r6.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r3.z = 0.5;
r1.zw = r3.zy + r2.xz;
r2.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw;
r1.z = cmp(r0.y < r2.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r1.zw = r5.xy * float2(1,2) + r1.xy;
r2.xyzw = t0.SampleLevel(s0_s, r1.zw, 0).xyzw;
r1.z = cmp(r0.y < r2.x);
r1.z = r1.z ? 1.000000 : 0;
r0.w = r1.z + r0.w;
r1.xy = r5.xy * float2(2,2) + r1.xy;
r1.xyzw = t0.SampleLevel(s0_s, r1.xy, 0).xyzw;
r0.y = cmp(r0.y < r1.x);
r0.y = r0.y ? 1.000000 : 0;
r0.y = r0.w + r0.y;
r0.w = 0.0399999991 * r0.y;
r0.y = cmp(0.25 < r0.y);
r4.zw = float2(0,1);
o3.xyzw = r0.yyyy ? r4.xyzw : 0;
o0.xyz = v0.xyz * r0.www;
o0.w = v6.x;
o1.zw = r0.xz * float2(1,-1) + float2(0,1);
o2.x = v6.z;

o3.x += stereo.x;

return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.2.54 on Fri Nov 09 14:10:00 2018
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// COLOR 6 xyzw 0 NONE float xyz
// POSITION 0 xyzw 1 NONE float xyzw
// POSITION 1 xyzw 2 NONE float xyzw
// POSITION 2 xyzw 3 NONE float xyzw
// POSITION 3 xyzw 4 NONE float xyzw
// TEXCOORD 0 xyzw 5 NONE float xyzw
// TEXCOORD 1 xyzw 6 NONE float xyzw
// TEXCOORD 2 xyzw 7 NONE float xyzw
// TEXCOORD 3 xyzw 8 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 0 xyzw 0 NONE float xyzw
// TEXCOORD 1 xyzw 1 NONE float xyzw
// TEXCOORD 2 x 2 NONE float x
// SV_Position 0 xyzw 3 POS float xyzw
//
vs_4_0
dcl_constantbuffer cb1[8], immediateIndexed
dcl_constantbuffer cb0[3], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input v0.xyz
dcl_input v1.xyzw
dcl_input v2.xyzw
dcl_input v3.xyzw
dcl_input v4.xyzw
dcl_input v5.xyzw
dcl_input v6.xyzw
dcl_input v7.xyzw
dcl_input v8.xyzw
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_output o2.x
dcl_output_siv o3.xyzw, position
dcl_temps 11
mul r0.xy, v5.xyxx, v7.zwzz
mul r0.xy, r0.xyxx, l(0.062500, 0.125000, 0.000000, 0.000000)
mad o1.xy, v7.xyxx, l(0.062500, 0.125000, 0.000000, 0.000000), r0.xyxx
mov r0.xyz, v1.xyzx
mov r0.w, l(1.000000)
dp4 r1.y, cb1[4].xyzw, r0.xyzw
dp4 r1.z, cb1[5].xyzw, r0.xyzw
dp4 r0.x, cb1[7].xyzw, r0.xyzw
lt r0.y, v1.w, l(0.500000)
add r0.z, r0.x, -v1.w
max r0.z, r0.z, l(0.000000)
movc r0.y, r0.y, r0.x, r0.z
lt r0.z, l(0.000000), v6.y
if_nz r0.z
mov_sat r0.z, v6.y
mul r0.zw, r0.zzzz, v2.zzzw
else
mul r1.x, v4.z, l(3.141590)
sincos null, r1.x, r1.x
mad r1.x, r1.x, l(0.500000), l(0.500000)
add r1.x, -r1.x, l(1.000000)
mul r0.zw, r1.xxxx, v2.zzzw
endif
div r1.xy, r1.yzyy, r0.xxxx
add r1.zw, -cb0[0].xxxy, cb0[0].zzzw
mad r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
mad r1.xy, r1.zwzz, r1.xyxx, cb0[0].xyxx
mad r1.xy, r1.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
mul r2.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
mad r3.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
add r4.xy, -v4.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
mul r4.xy, r4.xyxx, v8.xyxx
mad r4.xy, r4.xyxx, v8.zzzz, r1.xyxx
mul r0.zw, r0.zzzw, v8.xxxy
mul r0.zw, r0.zzzw, v8.zzzz
mul r0.zw, r0.zzzw, v4.xxxy
mad r0.zw, r0.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), r4.xxxy
add r4.xy, -r1.xyxx, r0.zwzz
dp2 r3.w, r4.xyxx, r4.xyxx
rsq r3.w, r3.w
mul r4.xy, r3.wwww, r4.xyxx
mul r4.xy, r4.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000)
dp2 r3.w, r4.xyxx, r4.xyxx
sqrt r3.w, r3.w
lt r3.w, r3.w, l(0.900000)
ge r4.w, l(0.000000), v6.w
or r3.w, r3.w, r4.w
if_nz r3.w
mov r4.xy, l(1.000000,0,0,0)
endif
sincos r5.x, r6.x, v4.w
sincos r7.x, null, -v4.w
mov r4.z, -r4.y
mov r7.y, r6.x
mov r7.z, r5.x
dp2 r5.x, r4.xzxx, r7.yzyy
dp2 r6.x, r4.xzxx, r7.xyxx
dp2 r5.y, r4.yxyy, r7.yzyy
dp2 r6.y, r4.yxyy, r7.xyxx
dp2 r3.w, r1.xyxx, r1.xyxx
sqrt r3.w, r3.w
min r3.w, r3.w, l(1.000000)
add r4.xy, -v3.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000)
mad r4.xy, -|r1.xyxx|, r4.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
max r4.xy, r4.xyxx, l(0.200000, 0.200000, 0.000000, 0.000000)
min r4.xy, r4.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
add r4.z, -r3.w, l(1.000000)
mul r4.zw, r4.zzzz, v3.xxxy
mad r4.xy, r4.xyxx, r3.wwww, r4.zwzz
mul r4.yz, r4.xxyx, v2.xxyx
div r4.x, r4.y, cb0[2].x
lt r3.w, l(0.000000), v8.w
mul r4.yw, r4.xxxz, cb0[2].yyyy
movc r4.xy, r3.wwww, r4.ywyy, r4.xzxx
mul r4.xy, r4.xyxx, v5.zwzz
dp2 r5.x, r4.xyxx, r5.xyxx
dp2 r5.y, r4.xyxx, r6.xyxx
add r0.zw, r0.zzzw, r5.xxxy
mad r0.zw, r0.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), -cb0[0].xxxy
add r0.zw, r0.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
div r0.zw, r0.zzzw, r1.zzzw
mad r0.zw, r0.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)
lt r0.x, l(0.000000), r0.x
and r4.xy, r0.zwzz, r0.xxxx
mad r0.xz, r4.xxyx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000)
mad r0.xz, r0.xxzx, r1.zzwz, cb0[0].xxyx
div r5.xy, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[1].xyxx
mov r6.xyz, -r5.xyxx
mul r1.w, r5.y, l(-2.000000)
add r3.z, -r3.y, l(1.000000)
mad r3.yw, r5.xxxy, l(0.000000, -2.000000, 0.000000, -2.000000), r3.xxxz
sample_l r7.xyzw, r3.ywyy, t0.xyzw, s0, l(0.000000)
lt r0.w, r0.y, r7.x
and r0.w, r0.w, l(0x3f800000)
mul r5.w, r5.y, l(-2.000000)
mad r3.xy, r5.xyxx, l(-1.000000, -2.000000, 0.000000, 0.000000), r3.xzxx
sample_l r3.xyzw, r3.xyxx, t0.xyzw, s0, l(0.000000)
lt r3.x, r0.y, r3.x
and r3.x, r3.x, l(0x3f800000)
add r0.w, r0.w, r3.x
mad r2.z, -r1.y, l(0.500000), l(0.500000)
mov r1.z, l(0.500000)
add r1.yz, r1.zzwz, r2.xxzx
sample_l r3.xyzw, r1.yzyy, t0.xyzw, s0, l(0.000000)
lt r1.y, r0.y, r3.x
and r1.y, r1.y, l(0x3f800000)
add r0.w, r0.w, r1.y
mad r2.w, r1.x, l(0.500000), l(0.500000)
add r1.xy, r5.xwxx, r2.wzww
sample_l r1.xyzw, r1.xyxx, t0.xyzw, s0, l(0.000000)
lt r1.x, r0.y, r1.x
and r1.x, r1.x, l(0x3f800000)
add r0.w, r0.w, r1.x
add r1.xy, r2.xzxx, l(0.500000, 0.000000, 0.000000, 0.000000)
mad r3.xyzw, r5.xwxy, l(2.000000, 1.000000, -2.000000, 1.000000), r1.xyxy
sample_l r7.xyzw, r3.xyxx, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r7.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
mul r7.xy, r5.xyxx, l(-2.000000, -1.000000, 0.000000, 0.000000)
mad r1.zw, r5.xxxy, l(0.000000, 0.000000, -2.000000, -1.000000), r1.xxxy
sample_l r8.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r8.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
add r1.zw, r6.xxxy, r1.xxxy
sample_l r8.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r8.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
mov r7.zw, l(0,0,0.500000,1.000000)
add r1.zw, r2.xxxz, r7.zzzy
sample_l r8.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r8.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
mul r8.x, r5.x, l(1.000000)
mad r1.zw, r5.xxxy, l(0.000000, 0.000000, 1.000000, -1.000000), r1.xxxy
sample_l r9.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r9.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
mul r9.x, r5.x, l(2.000000)
mad r1.zw, r5.xxxy, l(0.000000, 0.000000, 2.000000, -1.000000), r1.xxxy
sample_l r10.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r10.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
mad r1.zw, r2.xxxy, l(0.000000, 0.000000, 1.000000, -1.000000), l(0.000000, 0.000000, 0.500000, -0.500000)
add r2.yw, r7.xxxw, r1.zzzw
sample_l r7.xyzw, r2.ywyy, t0.xyzw, s0, l(0.000000)
lt r2.y, r0.y, r7.x
and r2.y, r2.y, l(0x3f800000)
add r0.w, r0.w, r2.y
mov r6.w, l(1.000000)
add r2.yw, r1.zzzw, r6.zzzw
sample_l r6.xyzw, r2.ywyy, t0.xyzw, s0, l(0.000000)
lt r2.y, r0.y, r6.x
and r2.y, r2.y, l(0x3f800000)
add r0.w, r0.w, r2.y
sample_l r6.xyzw, r1.xyxx, t0.xyzw, s0, l(0.000000)
lt r2.y, r0.y, r6.x
and r2.y, r2.y, l(0x3f800000)
add r0.w, r0.w, r2.y
mov r8.z, l(1.000000)
add r2.yw, r1.zzzw, r8.xxxz
sample_l r6.xyzw, r2.ywyy, t0.xyzw, s0, l(0.000000)
lt r2.y, r0.y, r6.x
and r2.y, r2.y, l(0x3f800000)
add r0.w, r0.w, r2.y
mov r9.z, l(1.000000)
add r1.zw, r1.zzzw, r9.xxxz
sample_l r6.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r6.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
sample_l r3.xyzw, r3.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r3.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
mul r3.y, r5.y, l(1.000000)
mad r1.zw, r5.xxxy, l(0.000000, 0.000000, -1.000000, 1.000000), r1.xxxy
sample_l r6.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r6.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
mov r3.z, l(0.500000)
add r1.zw, r2.xxxz, r3.zzzy
sample_l r3.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r3.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
add r1.zw, r5.xxxy, r1.xxxy
sample_l r3.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r3.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
mad r3.xyzw, r5.xyxy, l(2.000000, 1.000000, -2.000000, 2.000000), r1.xyxy
sample_l r6.xyzw, r3.xyxx, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r6.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
sample_l r3.xyzw, r3.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r3.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
mul r3.y, r5.y, l(2.000000)
mad r1.zw, r5.xxxy, l(0.000000, 0.000000, -1.000000, 2.000000), r1.xxxy
sample_l r6.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r6.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
mov r3.z, l(0.500000)
add r1.zw, r2.xxxz, r3.zzzy
sample_l r2.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r2.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
mad r1.zw, r5.xxxy, l(0.000000, 0.000000, 1.000000, 2.000000), r1.xxxy
sample_l r2.xyzw, r1.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.z, r0.y, r2.x
and r1.z, r1.z, l(0x3f800000)
add r0.w, r0.w, r1.z
mad r1.xy, r5.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), r1.xyxx
sample_l r1.xyzw, r1.xyxx, t0.xyzw, s0, l(0.000000)
lt r0.y, r0.y, r1.x
and r0.y, r0.y, l(0x3f800000)
add r0.y, r0.y, r0.w
mul r0.w, r0.y, l(0.040000)
lt r0.y, l(0.250000), r0.y
mov r4.zw, l(0,0,0,1.000000)
and o3.xyzw, r0.yyyy, r4.xyzw
mul o0.xyz, r0.wwww, v0.xyzx
mov o0.w, v6.x
mad o1.zw, r0.xxxz, l(0.000000, 0.000000, 1.000000, -1.000000), l(0.000000, 0.000000, 0.000000, 1.000000)
mov o2.x, v6.z
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/




here is a screenshot the first shows the red/green lights. if you look closely the lights from inside the station bleed through to the outside of the station even tho you should only see the red/green lights outside.. the red lights on the right near the entrance is supposed to be there the green lights are from the inside and should be invisible but they are not..

Also if you look on the outer rim of the station you see bright white lights with one eye effect.. so I would appreciate if you guys can let me in on how to do a Double fix if it is possible..

I tried looking for differnt shaders but all those lights I mentioned are in this 1 shader.. anyhelp appreciated..

Intel i5 7600K @ 4.8ghz / MSI Z270 SLI / Asus 1080GTX - 416.16 / Optoma HD142x Projector / 1 4'x10' Curved Screen PVC / TrackIR / HOTAS Cougar / Cougar MFD's / Track IR / NVidia 3D Vision / Win 10 64bit

Posted 12/21/2018 05:07 AM   
Howdy :) I am trying to stereoise ('trying' in this case meaning having no clue and randomly applying fixes I located from other unity 2018 games without success) a shader from "re-entry : An orbital simulation". The shader is as follows (it is an earth atmosphere blue haze effect) [code]// ---- Created with 3Dmigoto v1.3.11 on Sat Dec 22 10:40:48 2018 Texture2D<float4> t2 : register(t2); Texture2D<float4> t1 : register(t1); Texture2D<float4> t0 : register(t0); SamplerState s2_s : register(s2); SamplerState s1_s : register(s1); SamplerState s0_s : register(s0); cbuffer cb3 : register(b3) { float4 cb3[21]; } cbuffer cb2 : register(b2) { float4 cb2[4]; } cbuffer cb1 : register(b1) { float4 cb1[5]; } cbuffer cb0 : register(b0) { float4 cb0[9]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : POSITION0, float3 v1 : NORMAL0, float4 v2 : TEXCOORD0, out float4 o0 : SV_POSITION0, out float4 o1 : TEXCOORD0, out float3 o2 : TEXCOORD1, out float3 o3 : COLOR0, out float3 o4 : COLOR1) { float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12; uint4 bitmask, uiDest; float4 fDest; r0.xyz = cb1[4].xyz + -cb0[2].xyz; r0.w = dot(r0.xyz, r0.xyz); r1.xyz = cb2[1].xyz * v0.yyy; r1.xyz = cb2[0].xyz * v0.xxx + r1.xyz; r1.xyz = cb2[2].xyz * v0.zzz + r1.xyz; r1.xyz = cb2[3].xyz * v0.www + r1.xyz; r1.xyz = -cb0[2].xyz + r1.xyz; r2.xyz = r1.xyz + -r0.xyz; r1.w = dot(r2.xyz, r2.xyz); r1.w = sqrt(r1.w); r2.xyz = r2.xyz / r1.www; r3.xyzw = cb2[1].xyzw * v0.yyyy; r3.xyzw = cb2[0].xyzw * v0.xxxx + r3.xyzw; r3.xyzw = cb2[2].xyzw * v0.zzzz + r3.xyzw; r3.xyzw = cb2[3].xyzw + r3.xyzw; r4.xyzw = cb3[18].xyzw * r3.yyyy; r4.xyzw = cb3[17].xyzw * r3.xxxx + r4.xyzw; r4.xyzw = cb3[19].xyzw * r3.zzzz + r4.xyzw; r3.xyzw = cb3[20].xyzw * r3.wwww + r4.xyzw; r4.xyz = -r1.xyz + r0.xyz; r2.w = dot(r0.xyz, r2.xyz); r4.w = r2.w + r2.w; r5.x = -cb0[5].x + r0.w; r5.x = 4 * r5.x; r4.w = r4.w * r4.w + -r5.x; r4.w = max(0, r4.w); r4.w = sqrt(r4.w); r2.w = -r2.w * 2 + -r4.w; r4.w = cmp(0 >= r2.w); if (r4.w != 0) { r0.w = sqrt(r0.w); r4.w = -cb0[5].y + r0.w; r5.x = cb0[6].w * r4.w; r1.x = dot(r1.xyz, r1.xyz); r1.x = sqrt(r1.x); r1.x = cmp(r0.w >= r1.x); r6.xyz = r1.xxx ? -r2.xyz : r2.xyz; r1.y = dot(r6.xyz, r0.xyz); r0.w = r1.y / r0.w; r5.y = -r0.w * 0.5 + 0.5; r6.xyzw = t0.SampleLevel(s0_s, r5.xy, 0).xyzw; r5.xyzw = t2.SampleLevel(s1_s, r5.xy, 0).xyzw; r0.w = dot(r5.xyzw, float4(6.03086292e-008,1.53787005e-005,0.00392156886,1)); r1.y = cmp(r0.w >= 0.999998987); r0.w = r1.y ? 1 : r0.w; r6.y = cb0[8].x * r0.w; } else { r0.w = 0.5 * r2.w; r0.xyz = r2.xyz * r0.www + r0.xyz; r1.w = -r2.w * 0.5 + r1.w; r6.xy = float2(0,0); r1.x = -1; } r0.w = cmp(9.99999997e-007 >= r1.w); if (r0.w != 0) { o0.xyzw = r3.xyzw; o2.xyz = r4.xyz; o3.xyz = float3(0,0,0); o4.xyz = float3(0,0,0); o1.xy = v2.xy; return; } r0.w = r1.w / cb0[7].w; r1.y = cb0[6].w * r0.w; r5.xyz = r2.xyz * r0.www; r0.xyz = r5.xyz * float3(0.5,0.5,0.5) + r0.xyz; r1.z = (int)cb0[7].w; r5.xyz = float3(0,0,0); r7.xyz = float3(0,0,0); r8.xyz = r0.xyz; r1.w = r1.x; r2.w = 0; while (true) { r4.w = cmp((int)r2.w >= (int)r1.z); if (r4.w != 0) break; r4.w = dot(r8.xyz, r8.xyz); r4.w = sqrt(r4.w); r5.w = dot(cb0[3].xyz, r8.xyz); r5.w = r5.w / r4.w; r6.z = -cb0[5].y + r4.w; r9.x = cb0[6].w * r6.z; r9.y = -r5.w * 0.5 + 0.5; r10.xyzw = t0.SampleLevel(s0_s, r9.xy, 0).xyzw; r5.w = cmp(r10.x < 9.99999997e-007); if (r5.w != 0) { break; } r11.xyzw = t1.SampleLevel(s2_s, r9.xy, 0).xyzw; r5.w = dot(r11.xyzw, float4(6.03086292e-008,1.53787005e-005,0.00392156886,1)); r6.z = cmp(r5.w >= 0.999998987); r5.w = r6.z ? 1 : r5.w; r11.xyzw = t2.SampleLevel(s1_s, r9.xy, 0).xyzw; r6.z = dot(r11.xyzw, float4(6.03086292e-008,1.53787005e-005,0.00392156886,1)); r6.w = cmp(r6.z >= 0.999998987); r6.z = r6.w ? 1 : r6.z; r10.xy = r10.xy * r1.yy; if (r1.w != 0) { r6.w = dot(-r2.xyz, r8.xyz); r6.w = r6.w / r4.w; r9.z = -r6.w * 0.5 + 0.5; r11.xyzw = t0.SampleLevel(s0_s, r9.xz, 0).xyzw; r12.xyzw = t2.SampleLevel(s1_s, r9.xz, 0).xyzw; r6.w = dot(r12.xyzw, float4(6.03086292e-008,1.53787005e-005,0.00392156886,1)); r7.w = cmp(r6.w >= 0.999998987); r6.w = r7.w ? 1 : r6.w; r7.w = r11.x + -r6.x; r11.x = r5.w * cb0[8].y + r7.w; r6.w = r6.w * cb0[8].x + -r6.y; r11.y = r6.z * cb0[8].x + r6.w; } else { r6.w = dot(r2.xyz, r8.xyz); r4.w = r6.w / r4.w; r9.w = -r4.w * 0.5 + 0.5; r12.xyzw = t0.SampleLevel(s0_s, r9.xw, 0).xyzw; r9.xyzw = t2.SampleLevel(s1_s, r9.xw, 0).xyzw; r4.w = dot(r9.xyzw, float4(6.03086292e-008,1.53787005e-005,0.00392156886,1)); r6.w = cmp(r4.w >= 0.999998987); r4.w = r6.w ? 1 : r4.w; r6.w = -r12.x + r6.x; r11.x = r5.w * cb0[8].y + r6.w; r4.w = -r4.w * cb0[8].x + r6.y; r11.y = r6.z * cb0[8].x + r4.w; } r6.zw = cb0[6].yz * r11.xy; r9.xyz = -r6.zzz * cb0[4].xyz + -r6.www; r9.xyz = float3(1.44269502,1.44269502,1.44269502) * r9.xyz; r9.xyz = exp2(r9.xyz); r5.xyz = r10.xxx * r9.xyz + r5.xyz; r7.xyz = r10.yyy * r9.xyz + r7.xyz; r8.xyz = r2.xyz * r0.www + r8.xyz; r2.w = (int)r2.w + 1; } r0.xyz = cb0[4].xyz * r5.xyz; o3.xyz = cb0[5].www * r0.xyz; o4.xyz = cb0[6].xxx * r7.xyz; o0.xyzw = r3.xyzw; o2.xyz = r4.xyz; o1.xy = v2.xy; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // using 3Dmigoto v1.3.11 on Sat Dec 22 10:40:48 2018 // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyzw 0 NONE float xyzw // NORMAL 0 xyz 1 NONE float // TEXCOORD 0 xyzw 2 NONE float xy // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float xyzw // TEXCOORD 0 xy 1 NONE float xy // TEXCOORD 1 xyz 2 NONE float xyz // COLOR 0 xyz 3 NONE float xyz // COLOR 1 xyz 4 NONE float xyz // vs_4_0 dcl_constantbuffer cb0[9], immediateIndexed dcl_constantbuffer cb1[5], immediateIndexed dcl_constantbuffer cb2[4], immediateIndexed dcl_constantbuffer cb3[21], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, 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_input v0.xyzw dcl_input v2.xy dcl_output_siv o0.xyzw, position dcl_output o1.xy dcl_output o2.xyz dcl_output o3.xyz dcl_output o4.xyz dcl_temps 13 add r0.xyz, -cb0[2].xyzx, cb1[4].xyzx dp3 r0.w, r0.xyzx, r0.xyzx mul r1.xyz, v0.yyyy, cb2[1].xyzx mad r1.xyz, cb2[0].xyzx, v0.xxxx, r1.xyzx mad r1.xyz, cb2[2].xyzx, v0.zzzz, r1.xyzx mad r1.xyz, cb2[3].xyzx, v0.wwww, r1.xyzx add r1.xyz, r1.xyzx, -cb0[2].xyzx add r2.xyz, -r0.xyzx, r1.xyzx dp3 r1.w, r2.xyzx, r2.xyzx sqrt r1.w, r1.w div r2.xyz, r2.xyzx, r1.wwww mul r3.xyzw, v0.yyyy, cb2[1].xyzw mad r3.xyzw, cb2[0].xyzw, v0.xxxx, r3.xyzw mad r3.xyzw, cb2[2].xyzw, v0.zzzz, r3.xyzw add r3.xyzw, r3.xyzw, cb2[3].xyzw mul r4.xyzw, r3.yyyy, cb3[18].xyzw mad r4.xyzw, cb3[17].xyzw, r3.xxxx, r4.xyzw mad r4.xyzw, cb3[19].xyzw, r3.zzzz, r4.xyzw mad r3.xyzw, cb3[20].xyzw, r3.wwww, r4.xyzw add r4.xyz, r0.xyzx, -r1.xyzx dp3 r2.w, r0.xyzx, r2.xyzx add r4.w, r2.w, r2.w add r5.x, r0.w, -cb0[5].x mul r5.x, r5.x, l(4.000000) mad r4.w, r4.w, r4.w, -r5.x max r4.w, r4.w, l(0.000000) sqrt r4.w, r4.w mad r2.w, -r2.w, l(2.000000), -r4.w ge r4.w, l(0.000000), r2.w if_nz r4.w sqrt r0.w, r0.w add r4.w, r0.w, -cb0[5].y mul r5.x, r4.w, cb0[6].w dp3 r1.x, r1.xyzx, r1.xyzx sqrt r1.x, r1.x ge r1.x, r0.w, r1.x movc r6.xyz, r1.xxxx, -r2.xyzx, r2.xyzx dp3 r1.y, r6.xyzx, r0.xyzx div r0.w, r1.y, r0.w mad r5.y, -r0.w, l(0.500000), l(0.500000) sample_l r6.xyzw, r5.xyxx, t0.xyzw, s0, l(0.000000) sample_l r5.xyzw, r5.xyxx, t2.xyzw, s1, l(0.000000) dp4 r0.w, r5.xyzw, l(6.030862920E-008, 0.0000153787005, 0.00392156886, 1.000000) ge r1.y, r0.w, l(0.999999) movc r0.w, r1.y, l(1.000000), r0.w mul r6.y, r0.w, cb0[8].x else mul r0.w, r2.w, l(0.500000) mad r0.xyz, r2.xyzx, r0.wwww, r0.xyzx mad r1.w, -r2.w, l(0.500000), r1.w mov r6.xy, l(0,0,0,0) mov r1.x, l(-1) endif ge r0.w, l(0.000001), r1.w if_nz r0.w mov o0.xyzw, r3.xyzw mov o2.xyz, r4.xyzx mov o3.xyz, l(0,0,0,0) mov o4.xyz, l(0,0,0,0) mov o1.xy, v2.xyxx ret endif div r0.w, r1.w, cb0[7].w mul r1.y, r0.w, cb0[6].w mul r5.xyz, r0.wwww, r2.xyzx mad r0.xyz, r5.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r0.xyzx ftoi r1.z, cb0[7].w mov r5.xyz, l(0,0,0,0) mov r7.xyz, l(0,0,0,0) mov r8.xyz, r0.xyzx mov r1.w, r1.x mov r2.w, l(0) loop ige r4.w, r2.w, r1.z breakc_nz r4.w dp3 r4.w, r8.xyzx, r8.xyzx sqrt r4.w, r4.w dp3 r5.w, cb0[3].xyzx, r8.xyzx div r5.w, r5.w, r4.w add r6.z, r4.w, -cb0[5].y mul r9.x, r6.z, cb0[6].w mad r9.y, -r5.w, l(0.500000), l(0.500000) sample_l r10.xyzw, r9.xyxx, t0.xyzw, s0, l(0.000000) lt r5.w, r10.x, l(0.000001) if_nz r5.w break endif sample_l r11.xyzw, r9.xyxx, t1.xyzw, s2, l(0.000000) dp4 r5.w, r11.xyzw, l(6.030862920E-008, 0.0000153787005, 0.00392156886, 1.000000) ge r6.z, r5.w, l(0.999999) movc r5.w, r6.z, l(1.000000), r5.w sample_l r11.xyzw, r9.xyxx, t2.xyzw, s1, l(0.000000) dp4 r6.z, r11.xyzw, l(6.030862920E-008, 0.0000153787005, 0.00392156886, 1.000000) ge r6.w, r6.z, l(0.999999) movc r6.z, r6.w, l(1.000000), r6.z mul r10.xy, r1.yyyy, r10.xyxx if_nz r1.w dp3 r6.w, -r2.xyzx, r8.xyzx div r6.w, r6.w, r4.w mad r9.z, -r6.w, l(0.500000), l(0.500000) sample_l r11.xyzw, r9.xzxx, t0.xyzw, s0, l(0.000000) sample_l r12.xyzw, r9.xzxx, t2.xyzw, s1, l(0.000000) dp4 r6.w, r12.xyzw, l(6.030862920E-008, 0.0000153787005, 0.00392156886, 1.000000) ge r7.w, r6.w, l(0.999999) movc r6.w, r7.w, l(1.000000), r6.w add r7.w, -r6.x, r11.x mad r11.x, r5.w, cb0[8].y, r7.w mad r6.w, r6.w, cb0[8].x, -r6.y mad r11.y, r6.z, cb0[8].x, r6.w else dp3 r6.w, r2.xyzx, r8.xyzx div r4.w, r6.w, r4.w mad r9.w, -r4.w, l(0.500000), l(0.500000) sample_l r12.xyzw, r9.xwxx, t0.xyzw, s0, l(0.000000) sample_l r9.xyzw, r9.xwxx, t2.xyzw, s1, l(0.000000) dp4 r4.w, r9.xyzw, l(6.030862920E-008, 0.0000153787005, 0.00392156886, 1.000000) ge r6.w, r4.w, l(0.999999) movc r4.w, r6.w, l(1.000000), r4.w add r6.w, r6.x, -r12.x mad r11.x, r5.w, cb0[8].y, r6.w mad r4.w, -r4.w, cb0[8].x, r6.y mad r11.y, r6.z, cb0[8].x, r4.w endif mul r6.zw, r11.xxxy, cb0[6].yyyz mad r9.xyz, -r6.zzzz, cb0[4].xyzx, -r6.wwww mul r9.xyz, r9.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) exp r9.xyz, r9.xyzx mad r5.xyz, r10.xxxx, r9.xyzx, r5.xyzx mad r7.xyz, r10.yyyy, r9.xyzx, r7.xyzx mad r8.xyz, r2.xyzx, r0.wwww, r8.xyzx iadd r2.w, r2.w, l(1) endloop mul r0.xyz, r5.xyzx, cb0[4].xyzx mul o3.xyz, r0.xyzx, cb0[5].wwww mul o4.xyz, r7.xyzx, cb0[6].xxxx mov o0.xyzw, r3.xyzw mov o2.xyz, r4.xyzx mov o1.xy, v2.xyxx ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] I have already applied the Universal Unity fix but this shader is problematic. I have disabled other problematic shaders but disabling this one reduces the visuals somewhat. Any help greatly appreciated.
Howdy :)

I am trying to stereoise ('trying' in this case meaning having no clue and randomly applying fixes I located from other unity 2018 games without success) a shader from "re-entry : An orbital simulation".


The shader is as follows (it is an earth atmosphere blue haze effect)


// ---- Created with 3Dmigoto v1.3.11 on Sat Dec 22 10:40:48 2018
Texture2D<float4> t2 : register(t2);

Texture2D<float4> t1 : register(t1);

Texture2D<float4> t0 : register(t0);

SamplerState s2_s : register(s2);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

cbuffer cb3 : register(b3)
{
float4 cb3[21];
}

cbuffer cb2 : register(b2)
{
float4 cb2[4];
}

cbuffer cb1 : register(b1)
{
float4 cb1[5];
}

cbuffer cb0 : register(b0)
{
float4 cb0[9];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : POSITION0,
float3 v1 : NORMAL0,
float4 v2 : TEXCOORD0,
out float4 o0 : SV_POSITION0,
out float4 o1 : TEXCOORD0,
out float3 o2 : TEXCOORD1,
out float3 o3 : COLOR0,
out float3 o4 : COLOR1)
{
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12;
uint4 bitmask, uiDest;
float4 fDest;

r0.xyz = cb1[4].xyz + -cb0[2].xyz;
r0.w = dot(r0.xyz, r0.xyz);
r1.xyz = cb2[1].xyz * v0.yyy;
r1.xyz = cb2[0].xyz * v0.xxx + r1.xyz;
r1.xyz = cb2[2].xyz * v0.zzz + r1.xyz;
r1.xyz = cb2[3].xyz * v0.www + r1.xyz;
r1.xyz = -cb0[2].xyz + r1.xyz;
r2.xyz = r1.xyz + -r0.xyz;
r1.w = dot(r2.xyz, r2.xyz);
r1.w = sqrt(r1.w);
r2.xyz = r2.xyz / r1.www;
r3.xyzw = cb2[1].xyzw * v0.yyyy;
r3.xyzw = cb2[0].xyzw * v0.xxxx + r3.xyzw;
r3.xyzw = cb2[2].xyzw * v0.zzzz + r3.xyzw;
r3.xyzw = cb2[3].xyzw + r3.xyzw;
r4.xyzw = cb3[18].xyzw * r3.yyyy;
r4.xyzw = cb3[17].xyzw * r3.xxxx + r4.xyzw;
r4.xyzw = cb3[19].xyzw * r3.zzzz + r4.xyzw;
r3.xyzw = cb3[20].xyzw * r3.wwww + r4.xyzw;
r4.xyz = -r1.xyz + r0.xyz;
r2.w = dot(r0.xyz, r2.xyz);
r4.w = r2.w + r2.w;
r5.x = -cb0[5].x + r0.w;
r5.x = 4 * r5.x;
r4.w = r4.w * r4.w + -r5.x;
r4.w = max(0, r4.w);
r4.w = sqrt(r4.w);
r2.w = -r2.w * 2 + -r4.w;
r4.w = cmp(0 >= r2.w);
if (r4.w != 0) {
r0.w = sqrt(r0.w);
r4.w = -cb0[5].y + r0.w;
r5.x = cb0[6].w * r4.w;
r1.x = dot(r1.xyz, r1.xyz);
r1.x = sqrt(r1.x);
r1.x = cmp(r0.w >= r1.x);
r6.xyz = r1.xxx ? -r2.xyz : r2.xyz;
r1.y = dot(r6.xyz, r0.xyz);
r0.w = r1.y / r0.w;
r5.y = -r0.w * 0.5 + 0.5;
r6.xyzw = t0.SampleLevel(s0_s, r5.xy, 0).xyzw;
r5.xyzw = t2.SampleLevel(s1_s, r5.xy, 0).xyzw;
r0.w = dot(r5.xyzw, float4(6.03086292e-008,1.53787005e-005,0.00392156886,1));
r1.y = cmp(r0.w >= 0.999998987);
r0.w = r1.y ? 1 : r0.w;
r6.y = cb0[8].x * r0.w;
} else {
r0.w = 0.5 * r2.w;
r0.xyz = r2.xyz * r0.www + r0.xyz;
r1.w = -r2.w * 0.5 + r1.w;
r6.xy = float2(0,0);
r1.x = -1;
}
r0.w = cmp(9.99999997e-007 >= r1.w);
if (r0.w != 0) {
o0.xyzw = r3.xyzw;
o2.xyz = r4.xyz;
o3.xyz = float3(0,0,0);
o4.xyz = float3(0,0,0);
o1.xy = v2.xy;
return;
}
r0.w = r1.w / cb0[7].w;
r1.y = cb0[6].w * r0.w;
r5.xyz = r2.xyz * r0.www;
r0.xyz = r5.xyz * float3(0.5,0.5,0.5) + r0.xyz;
r1.z = (int)cb0[7].w;
r5.xyz = float3(0,0,0);
r7.xyz = float3(0,0,0);
r8.xyz = r0.xyz;
r1.w = r1.x;
r2.w = 0;
while (true) {
r4.w = cmp((int)r2.w >= (int)r1.z);
if (r4.w != 0) break;
r4.w = dot(r8.xyz, r8.xyz);
r4.w = sqrt(r4.w);
r5.w = dot(cb0[3].xyz, r8.xyz);
r5.w = r5.w / r4.w;
r6.z = -cb0[5].y + r4.w;
r9.x = cb0[6].w * r6.z;
r9.y = -r5.w * 0.5 + 0.5;
r10.xyzw = t0.SampleLevel(s0_s, r9.xy, 0).xyzw;
r5.w = cmp(r10.x < 9.99999997e-007);
if (r5.w != 0) {
break;
}
r11.xyzw = t1.SampleLevel(s2_s, r9.xy, 0).xyzw;
r5.w = dot(r11.xyzw, float4(6.03086292e-008,1.53787005e-005,0.00392156886,1));
r6.z = cmp(r5.w >= 0.999998987);
r5.w = r6.z ? 1 : r5.w;
r11.xyzw = t2.SampleLevel(s1_s, r9.xy, 0).xyzw;
r6.z = dot(r11.xyzw, float4(6.03086292e-008,1.53787005e-005,0.00392156886,1));
r6.w = cmp(r6.z >= 0.999998987);
r6.z = r6.w ? 1 : r6.z;
r10.xy = r10.xy * r1.yy;
if (r1.w != 0) {
r6.w = dot(-r2.xyz, r8.xyz);
r6.w = r6.w / r4.w;
r9.z = -r6.w * 0.5 + 0.5;
r11.xyzw = t0.SampleLevel(s0_s, r9.xz, 0).xyzw;
r12.xyzw = t2.SampleLevel(s1_s, r9.xz, 0).xyzw;
r6.w = dot(r12.xyzw, float4(6.03086292e-008,1.53787005e-005,0.00392156886,1));
r7.w = cmp(r6.w >= 0.999998987);
r6.w = r7.w ? 1 : r6.w;
r7.w = r11.x + -r6.x;
r11.x = r5.w * cb0[8].y + r7.w;
r6.w = r6.w * cb0[8].x + -r6.y;
r11.y = r6.z * cb0[8].x + r6.w;
} else {
r6.w = dot(r2.xyz, r8.xyz);
r4.w = r6.w / r4.w;
r9.w = -r4.w * 0.5 + 0.5;
r12.xyzw = t0.SampleLevel(s0_s, r9.xw, 0).xyzw;
r9.xyzw = t2.SampleLevel(s1_s, r9.xw, 0).xyzw;
r4.w = dot(r9.xyzw, float4(6.03086292e-008,1.53787005e-005,0.00392156886,1));
r6.w = cmp(r4.w >= 0.999998987);
r4.w = r6.w ? 1 : r4.w;
r6.w = -r12.x + r6.x;
r11.x = r5.w * cb0[8].y + r6.w;
r4.w = -r4.w * cb0[8].x + r6.y;
r11.y = r6.z * cb0[8].x + r4.w;
}
r6.zw = cb0[6].yz * r11.xy;
r9.xyz = -r6.zzz * cb0[4].xyz + -r6.www;
r9.xyz = float3(1.44269502,1.44269502,1.44269502) * r9.xyz;
r9.xyz = exp2(r9.xyz);
r5.xyz = r10.xxx * r9.xyz + r5.xyz;
r7.xyz = r10.yyy * r9.xyz + r7.xyz;
r8.xyz = r2.xyz * r0.www + r8.xyz;
r2.w = (int)r2.w + 1;
}
r0.xyz = cb0[4].xyz * r5.xyz;
o3.xyz = cb0[5].www * r0.xyz;
o4.xyz = cb0[6].xxx * r7.xyz;
o0.xyzw = r3.xyzw;
o2.xyz = r4.xyz;
o1.xy = v2.xy;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.3.11 on Sat Dec 22 10:40:48 2018
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyzw
// NORMAL 0 xyz 1 NONE float
// TEXCOORD 0 xyzw 2 NONE float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// TEXCOORD 0 xy 1 NONE float xy
// TEXCOORD 1 xyz 2 NONE float xyz
// COLOR 0 xyz 3 NONE float xyz
// COLOR 1 xyz 4 NONE float xyz
//
vs_4_0
dcl_constantbuffer cb0[9], immediateIndexed
dcl_constantbuffer cb1[5], immediateIndexed
dcl_constantbuffer cb2[4], immediateIndexed
dcl_constantbuffer cb3[21], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, 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_input v0.xyzw
dcl_input v2.xy
dcl_output_siv o0.xyzw, position
dcl_output o1.xy
dcl_output o2.xyz
dcl_output o3.xyz
dcl_output o4.xyz
dcl_temps 13
add r0.xyz, -cb0[2].xyzx, cb1[4].xyzx
dp3 r0.w, r0.xyzx, r0.xyzx
mul r1.xyz, v0.yyyy, cb2[1].xyzx
mad r1.xyz, cb2[0].xyzx, v0.xxxx, r1.xyzx
mad r1.xyz, cb2[2].xyzx, v0.zzzz, r1.xyzx
mad r1.xyz, cb2[3].xyzx, v0.wwww, r1.xyzx
add r1.xyz, r1.xyzx, -cb0[2].xyzx
add r2.xyz, -r0.xyzx, r1.xyzx
dp3 r1.w, r2.xyzx, r2.xyzx
sqrt r1.w, r1.w
div r2.xyz, r2.xyzx, r1.wwww
mul r3.xyzw, v0.yyyy, cb2[1].xyzw
mad r3.xyzw, cb2[0].xyzw, v0.xxxx, r3.xyzw
mad r3.xyzw, cb2[2].xyzw, v0.zzzz, r3.xyzw
add r3.xyzw, r3.xyzw, cb2[3].xyzw
mul r4.xyzw, r3.yyyy, cb3[18].xyzw
mad r4.xyzw, cb3[17].xyzw, r3.xxxx, r4.xyzw
mad r4.xyzw, cb3[19].xyzw, r3.zzzz, r4.xyzw
mad r3.xyzw, cb3[20].xyzw, r3.wwww, r4.xyzw
add r4.xyz, r0.xyzx, -r1.xyzx
dp3 r2.w, r0.xyzx, r2.xyzx
add r4.w, r2.w, r2.w
add r5.x, r0.w, -cb0[5].x
mul r5.x, r5.x, l(4.000000)
mad r4.w, r4.w, r4.w, -r5.x
max r4.w, r4.w, l(0.000000)
sqrt r4.w, r4.w
mad r2.w, -r2.w, l(2.000000), -r4.w
ge r4.w, l(0.000000), r2.w
if_nz r4.w
sqrt r0.w, r0.w
add r4.w, r0.w, -cb0[5].y
mul r5.x, r4.w, cb0[6].w
dp3 r1.x, r1.xyzx, r1.xyzx
sqrt r1.x, r1.x
ge r1.x, r0.w, r1.x
movc r6.xyz, r1.xxxx, -r2.xyzx, r2.xyzx
dp3 r1.y, r6.xyzx, r0.xyzx
div r0.w, r1.y, r0.w
mad r5.y, -r0.w, l(0.500000), l(0.500000)
sample_l r6.xyzw, r5.xyxx, t0.xyzw, s0, l(0.000000)
sample_l r5.xyzw, r5.xyxx, t2.xyzw, s1, l(0.000000)
dp4 r0.w, r5.xyzw, l(6.030862920E-008, 0.0000153787005, 0.00392156886, 1.000000)
ge r1.y, r0.w, l(0.999999)
movc r0.w, r1.y, l(1.000000), r0.w
mul r6.y, r0.w, cb0[8].x
else
mul r0.w, r2.w, l(0.500000)
mad r0.xyz, r2.xyzx, r0.wwww, r0.xyzx
mad r1.w, -r2.w, l(0.500000), r1.w
mov r6.xy, l(0,0,0,0)
mov r1.x, l(-1)
endif
ge r0.w, l(0.000001), r1.w
if_nz r0.w
mov o0.xyzw, r3.xyzw
mov o2.xyz, r4.xyzx
mov o3.xyz, l(0,0,0,0)
mov o4.xyz, l(0,0,0,0)
mov o1.xy, v2.xyxx
ret
endif
div r0.w, r1.w, cb0[7].w
mul r1.y, r0.w, cb0[6].w
mul r5.xyz, r0.wwww, r2.xyzx
mad r0.xyz, r5.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r0.xyzx
ftoi r1.z, cb0[7].w
mov r5.xyz, l(0,0,0,0)
mov r7.xyz, l(0,0,0,0)
mov r8.xyz, r0.xyzx
mov r1.w, r1.x
mov r2.w, l(0)
loop
ige r4.w, r2.w, r1.z
breakc_nz r4.w
dp3 r4.w, r8.xyzx, r8.xyzx
sqrt r4.w, r4.w
dp3 r5.w, cb0[3].xyzx, r8.xyzx
div r5.w, r5.w, r4.w
add r6.z, r4.w, -cb0[5].y
mul r9.x, r6.z, cb0[6].w
mad r9.y, -r5.w, l(0.500000), l(0.500000)
sample_l r10.xyzw, r9.xyxx, t0.xyzw, s0, l(0.000000)
lt r5.w, r10.x, l(0.000001)
if_nz r5.w
break
endif
sample_l r11.xyzw, r9.xyxx, t1.xyzw, s2, l(0.000000)
dp4 r5.w, r11.xyzw, l(6.030862920E-008, 0.0000153787005, 0.00392156886, 1.000000)
ge r6.z, r5.w, l(0.999999)
movc r5.w, r6.z, l(1.000000), r5.w
sample_l r11.xyzw, r9.xyxx, t2.xyzw, s1, l(0.000000)
dp4 r6.z, r11.xyzw, l(6.030862920E-008, 0.0000153787005, 0.00392156886, 1.000000)
ge r6.w, r6.z, l(0.999999)
movc r6.z, r6.w, l(1.000000), r6.z
mul r10.xy, r1.yyyy, r10.xyxx
if_nz r1.w
dp3 r6.w, -r2.xyzx, r8.xyzx
div r6.w, r6.w, r4.w
mad r9.z, -r6.w, l(0.500000), l(0.500000)
sample_l r11.xyzw, r9.xzxx, t0.xyzw, s0, l(0.000000)
sample_l r12.xyzw, r9.xzxx, t2.xyzw, s1, l(0.000000)
dp4 r6.w, r12.xyzw, l(6.030862920E-008, 0.0000153787005, 0.00392156886, 1.000000)
ge r7.w, r6.w, l(0.999999)
movc r6.w, r7.w, l(1.000000), r6.w
add r7.w, -r6.x, r11.x
mad r11.x, r5.w, cb0[8].y, r7.w
mad r6.w, r6.w, cb0[8].x, -r6.y
mad r11.y, r6.z, cb0[8].x, r6.w
else
dp3 r6.w, r2.xyzx, r8.xyzx
div r4.w, r6.w, r4.w
mad r9.w, -r4.w, l(0.500000), l(0.500000)
sample_l r12.xyzw, r9.xwxx, t0.xyzw, s0, l(0.000000)
sample_l r9.xyzw, r9.xwxx, t2.xyzw, s1, l(0.000000)
dp4 r4.w, r9.xyzw, l(6.030862920E-008, 0.0000153787005, 0.00392156886, 1.000000)
ge r6.w, r4.w, l(0.999999)
movc r4.w, r6.w, l(1.000000), r4.w
add r6.w, r6.x, -r12.x
mad r11.x, r5.w, cb0[8].y, r6.w
mad r4.w, -r4.w, cb0[8].x, r6.y
mad r11.y, r6.z, cb0[8].x, r4.w
endif
mul r6.zw, r11.xxxy, cb0[6].yyyz
mad r9.xyz, -r6.zzzz, cb0[4].xyzx, -r6.wwww
mul r9.xyz, r9.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000)
exp r9.xyz, r9.xyzx
mad r5.xyz, r10.xxxx, r9.xyzx, r5.xyzx
mad r7.xyz, r10.yyyy, r9.xyzx, r7.xyzx
mad r8.xyz, r2.xyzx, r0.wwww, r8.xyzx
iadd r2.w, r2.w, l(1)
endloop
mul r0.xyz, r5.xyzx, cb0[4].xyzx
mul o3.xyz, r0.xyzx, cb0[5].wwww
mul o4.xyz, r7.xyzx, cb0[6].xxxx
mov o0.xyzw, r3.xyzw
mov o2.xyz, r4.xyzx
mov o1.xy, v2.xyxx
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/


I have already applied the Universal Unity fix but this shader is problematic. I have disabled other problematic shaders but disabling this one reduces the visuals somewhat.

Any help greatly appreciated.

Posted 12/22/2018 12:45 AM   
  85 / 88    
Scroll To Top