Elite dangerous Alpha - Just tried 3DVision
  6 / 7    
Will there - by any chance - be a proper 3D Vision mod for Elite Dangerous? Come ON!
Will there - by any chance - be a proper 3D Vision mod for Elite Dangerous? Come ON!

#76
Posted 09/11/2015 02:55 PM   
[quote="Klaj"]Will there - by any chance - be a proper 3D Vision mod for Elite Dangerous? Come ON![/quote] See previous post. You will find the solution for the fix there:)
Klaj said:Will there - by any chance - be a proper 3D Vision mod for Elite Dangerous? Come ON!

See previous post. You will find the solution for the fix there:)

1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc


My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com

(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)

#77
Posted 09/11/2015 03:28 PM   
I am not able nor willing to learn how to fix the game myself. I know it might be fun... But I am just not a skilled coder.
I am not able nor willing to learn how to fix the game myself. I know it might be fun... But I am just not a skilled coder.

#78
Posted 09/12/2015 06:44 PM   
I've recently found myself willing to attempt fixing shaders. My track record is poor. I couldn't look at Elite Dangerous as I don't own the game. Can't really wish you good luck as at this point no-one is attempting to fix the game as far as I know.
I've recently found myself willing to attempt fixing shaders. My track record is poor. I couldn't look at Elite Dangerous as I don't own the game. Can't really wish you good luck as at this point no-one is attempting to fix the game as far as I know.

Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?

donations: ulfjalmbrant@hotmail.com

#79
Posted 09/12/2015 08:45 PM   
[quote="Klaj"]I am not able nor willing to learn how to fix the game myself. I know it might be fun... But I am just not a skilled coder.[/quote] Actually, as I observe in a different thread, the real key to being able to become a shaderhacker is the ability to solve puzzles. Very much like adventure games, or in-game puzzles. Knowing coding is not a prerequisite for being able to fix shaders, as it is so different and so arcane that coding knowledge really doesn't add much here. (I say this as a professional software developer with a lot of real-world coding experience.) If you like puzzles, this is a really unique way to apply that skill. There are a lot more resources now than we had in the past, and other shaderhackers will be happy to help you out if you do the first steps of setting up the tools and identifying the shaders. If the effects can be simply disabled- that is a skill that literally anyone here can learn.
Klaj said:I am not able nor willing to learn how to fix the game myself. I know it might be fun... But I am just not a skilled coder.

Actually, as I observe in a different thread, the real key to being able to become a shaderhacker is the ability to solve puzzles. Very much like adventure games, or in-game puzzles. Knowing coding is not a prerequisite for being able to fix shaders, as it is so different and so arcane that coding knowledge really doesn't add much here. (I say this as a professional software developer with a lot of real-world coding experience.)

If you like puzzles, this is a really unique way to apply that skill. There are a lot more resources now than we had in the past, and other shaderhackers will be happy to help you out if you do the first steps of setting up the tools and identifying the shaders.

If the effects can be simply disabled- that is a skill that literally anyone here can learn.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#80
Posted 09/12/2015 09:15 PM   
Nevermind
Nevermind

Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?

donations: ulfjalmbrant@hotmail.com

#81
Posted 09/12/2015 09:46 PM   
I have just bought Elite Dangerous. It'd on sale atm. It looks like lots of it renders well in 3D with some that might need to be disabled. I think I am going to have a go at fixing the shaders. To save me looking. What are the hotkeys or what must I do to get the debug program to only show active shaders again? Any other time-saver tips or a link to where they are quickly found would be very gratefully recieved
I have just bought Elite Dangerous. It'd on sale atm.

It looks like lots of it renders well in 3D with some that might need to be disabled.

I think I am going to have a go at fixing the shaders.

To save me looking. What are the hotkeys or what must I do to get the debug program to only show active shaders again?

Any other time-saver tips or a link to where they are quickly found would be very gratefully recieved

Lord, grant me the serenity to accept the things I cannot change, the courage to change the things I can, and the wisdom to know the difference.
-------------------
Vitals: Windows 7 64bit, i5 2500 @ 4.4ghz, SLI GTX670, 8GB, Viewsonic VX2268WM

Handy Driver Discussion
Helix Mod - community fixes
Bo3b's Shaderhacker School - How to fix 3D in games
3dsolutionsgaming.com - videos, reviews and 3D fixes

#82
Posted 09/27/2015 08:41 PM   
Great, glad to hear it! This is a DX11 game, so you should be able to use 3Dmigoto without problems. Go to the latest release of 1.2.1: https://github.com/bo3b/3Dmigoto/releases Nothing special needs to change in the d3dx.ini unless you don't like the keys. Comments in the .ini file will tell you the layout, using the number pad. 4,5,6 for VS, 1,2,3 for PS. It will only show/step through active shaders in the current frame, and you should also have the green text UI. Let me know if you run into problems. In general, 3Dmigoto has been stable on recent games, but we know there are still glitches.
Great, glad to hear it! This is a DX11 game, so you should be able to use 3Dmigoto without problems. Go to the latest release of 1.2.1: https://github.com/bo3b/3Dmigoto/releases


Nothing special needs to change in the d3dx.ini unless you don't like the keys. Comments in the .ini file will tell you the layout, using the number pad. 4,5,6 for VS, 1,2,3 for PS.

It will only show/step through active shaders in the current frame, and you should also have the green text UI.

Let me know if you run into problems. In general, 3Dmigoto has been stable on recent games, but we know there are still glitches.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#83
Posted 09/27/2015 10:29 PM   
nvm It is now working But not showing green text. F10 beeps nicely though
nvm

It is now working

But not showing green text.

F10 beeps nicely though

Lord, grant me the serenity to accept the things I cannot change, the courage to change the things I can, and the wisdom to know the difference.
-------------------
Vitals: Windows 7 64bit, i5 2500 @ 4.4ghz, SLI GTX670, 8GB, Viewsonic VX2268WM

Handy Driver Discussion
Helix Mod - community fixes
Bo3b's Shaderhacker School - How to fix 3D in games
3dsolutionsgaming.com - videos, reviews and 3D fixes

#84
Posted 09/28/2015 07:34 PM   
update I have found six pairs of shaders: [list] [.]three of them I want to remove[/.] [.]one of them needs to be pushed back further so it becomes infinity (stars)[/.] [.]one of them needs to go from 2D to infinity (nebular)[/.] [.]one of them is not at the right depth (a station texture which double as a radar one)[/.] [/list] Bar the last one, presumably these are fairly common hacks? Especially the first disable type hack? Would it be possible to provide some links to where these type of fixes have been done before so I can follow the method? Or does it not work like that? Thanks!
update

I have found six pairs of shaders:
  • three of them I want to remove
  • one of them needs to be pushed back further so it becomes infinity (stars)
  • one of them needs to go from 2D to infinity (nebular)
  • one of them is not at the right depth (a station texture which double as a radar one)

Bar the last one, presumably these are fairly common hacks? Especially the first disable type hack?

Would it be possible to provide some links to where these type of fixes have been done before so I can follow the method? Or does it not work like that?

Thanks!

Lord, grant me the serenity to accept the things I cannot change, the courage to change the things I can, and the wisdom to know the difference.
-------------------
Vitals: Windows 7 64bit, i5 2500 @ 4.4ghz, SLI GTX670, 8GB, Viewsonic VX2268WM

Handy Driver Discussion
Helix Mod - community fixes
Bo3b's Shaderhacker School - How to fix 3D in games
3dsolutionsgaming.com - videos, reviews and 3D fixes

#85
Posted 09/28/2015 08:49 PM   
Disabling is easy;)) If you give us the vertex shader I can tell you how to disable it or even fix it;))
Disabling is easy;)) If you give us the vertex shader I can tell you how to disable it or even fix it;))

1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc


My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com

(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)

#86
Posted 09/28/2015 09:51 PM   
You sir are awesome. I did try to use Bo3b's school but I couldn't find any constants to use! If you wouldn't mind, please will you add comments to what you have used and any changes? this is the PS bit... [code] // bloom in 2D Texture2D<float4> t1 : register(t1); Texture2D<float4> t0 : register(t0); SamplerState s1_s : register(s1); SamplerState s0_s : register(s0); cbuffer cb0 : register(b0) { float4 cb0[1]; } Texture2D<float4> StereoParams : register(t125); Texture1D<float4> IniParams : register(t120); void main( float4 v0 : TEXCOORD0, float4 v1 : TEXCOORD1, float v2 : TEXCOORD2, float4 v3 : SV_Position0, out float4 o0 : SV_Target0) { float4 r0,r1; uint4 bitmask, uiDest; float4 fDest; r0.xyzw = t1.Sample(s1_s, v1.zw).xyzw; r0.xyz = cb0[0].xxx * r0.xyz; r1.xyzw = t0.Sample(s0_s, v1.xy).xyzw; r0.xyz = r0.xyz * r1.xyz + -r1.xyz; r0.xyz = v2.xxx * r0.xyz + r1.xyz; o0.w = v0.w * r1.w; o0.xyz = v0.xyz * r0.xyz; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // // Input 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 // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_4_0 dcl_constantbuffer cb0[1], 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.xyzw dcl_input_ps linear v1.xyzw dcl_input_ps linear v2.x dcl_output o0.xyzw dcl_temps 2 sample r0.xyzw, v1.zwzz, t1.xyzw, s1 mul r0.xyz, r0.xyzx, cb0[0].xxxx sample r1.xyzw, v1.xyxx, t0.xyzw, s0 mad r0.xyz, r0.xyzx, r1.xyzx, -r1.xyzx mad r0.xyz, v2.xxxx, r0.xyzx, r1.xyzx mul o0.w, r1.w, v0.w mul o0.xyz, r0.xyzx, v0.xyzx ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] This is the VS [code]//2D Bloom Texture2D<float4> t0 : register(t0); SamplerState s0_s : register(s0); cbuffer cb0 : register(b0) { float4 cb0[2]; } cbuffer cb1 : register(b1) { float4 cb1[8]; } Texture2D<float4> StereoParams : register(t125); Texture1D<float4> IniParams : register(t120); 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; r0.xy = v7.zw * v5.xy; r0.xy = float2(6.250000e-002,1.250000e-001) * r0.xy; o1.xy = v7.xy * float2(6.250000e-002,1.250000e-001) + r0.xy; r0.xyz = v1.xyz; r0.w = 1.000000000e+000; 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.yz = r1.yz / r0.xx; r1.xy = float2(5.000000e-001,5.000000e-001) * r0.yz; r2.xy = r0.yz * float2(5.000000e-001,5.000000e-001) + float2(5.000000e-001,5.000000e-001); r0.w = v1.w < 5.000000000e-001; r2.w = min(r0.x, 5.000000000e+004); r0.w = r0.w ? r0.x : r2.w; r2.w = 0.000000000e+000 < v6.y; if (r2.w != 0) { r2.w = saturate(v6.y); r3.xy = v2.zw * r2.ww; } else { r2.w = 3.141590118e+000 * v4.z; r2.w = cos(r2.w); r2.w = r2.w * 5.000000000e-001 + 5.000000000e-001; r2.w = 1.000000000e+000 + -r2.w; r3.xy = v2.zw * r2.ww; } r3.zw = float2(1.000000e+000,1.000000e+000) + -v4.xy; r3.xyzw = v8.xyxy * r3.xyzw; r3.zw = r3.zw * v8.zz + r0.yz; r3.xy = v8.zz * r3.xy; r3.xy = v4.xy * r3.xy; r3.xy = r3.xy * float2(2.000000e+000,2.000000e+000) + r3.zw; r3.zw = r3.xy + -r0.yz; r2.w = dot(r3.zw, r3.zw); r2.w = rsqrt(r2.w); r3.zw = r3.zw * r2.ww; r4.xy = float2(1.000000e+000,-1.000000e+000) * r3.zw; r2.w = dot(r4.xy, r4.xy); r2.w = sqrt(r2.w); r2.w = r2.w < 8.999999762e-001; r3.z = 0.000000000e+000 >= v6.w; r2.w = (int)r2.w | (int)r3.z; if (r2.w != 0) { r4.xy = float2(1.000000e+000,0.000000e+000); } 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); r2.w = dot(r0.yz, r0.yz); r2.w = sqrt(r2.w); r2.w = min(r2.w, 1.000000000e+000); r3.zw = float2(1.000000e+000,1.000000e+000) + -v3.zw; r3.zw = -abs(r0.yz) * r3.zw + float2(1.000000e+000,1.000000e+000); r3.zw = max(r3.zw, float2(2.000000e-001,2.000000e-001)); r3.zw = min(r3.zw, float2(1.000000e+000,1.000000e+000)); r4.x = 1.000000000e+000 + -r2.w; r4.xy = v3.xy * r4.xx; r3.zw = r3.zw * r2.ww + r4.xy; r4.yz = v2.xy * r3.zw; r4.x = r4.y / cb0[1].x; r2.w = 0.000000000e+000 < v8.w; r3.zw = cb0[1].yy * r4.xz; r3.zw = r2.ww ? r3.zw : r4.xz; r0.x = 0.000000000e+000 < r0.x; r3.zw = v5.zw * r3.zw; r4.x = dot(r3.zw, r5.xy); r4.y = dot(r3.zw, r6.xy); r3.xy = r4.xy + r3.xy; r3.xy = r0.xx ? r3.xy : 0; r4.xy = r3.xy * float2(5.000000e-001,5.000000e-001) + float2(5.000000e-001,5.000000e-001); r5.xy = float2(1.000000e+000,1.000000e+000) / cb0[0].xy; r6.xyz = -r5.xyx; r4.w = -2.000000000e+000 * r5.y; r2.z = 1.000000000e+000 + -r2.y; r2.yw = r5.xy * float2(-2.000000e+000,-2.000000e+000) + r2.xz; r7.xyzw = t0.SampleLevel(s0_s, r2.yw, 0.000000000e+000).xyzw; r0.x = r0.w < r7.x; r0.x = r0.x ? 1.000000 : 0; r5.w = -2.000000000e+000 * r5.y; r2.xy = r5.xy * float2(-1.000000e+000,-2.000000e+000) + r2.xz; r2.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw; r2.x = r0.w < r2.x; r2.x = r2.x ? 1.000000 : 0; r0.x = r2.x + r0.x; r1.z = -r0.z * 5.000000000e-001 + 5.000000000e-001; r4.z = 5.000000000e-001; r2.xy = r4.zw + r1.xz; r2.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw; r0.z = r0.w < r2.x; r0.z = r0.z ? 1.000000 : 0; r0.x = r0.x + r0.z; r1.w = r0.y * 5.000000000e-001 + 5.000000000e-001; r0.yz = r1.wz + r5.xw; r2.xyzw = t0.SampleLevel(s0_s, r0.yz, 0.000000000e+000).xyzw; r0.y = r0.w < r2.x; r0.y = r0.y ? 1.000000 : 0; r0.x = r0.x + r0.y; r0.yz = float2(5.000000e-001,0.000000e+000) + r1.xz; r2.xyzw = r5.xwxy * float4(2.000000e+000,1.000000e+000,-2.000000e+000,1.000000e+000) + r0.yzyz; r7.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw; r1.w = r0.w < r7.x; r1.w = r1.w ? 1.000000 : 0; r0.x = r1.w + r0.x; r7.xy = float2(-2.000000e+000,-1.000000e+000) * r5.xy; r2.xy = r5.xy * float2(-2.000000e+000,-1.000000e+000) + r0.yz; r8.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw; r1.w = r0.w < r8.x; r1.w = r1.w ? 1.000000 : 0; r0.x = r1.w + r0.x; r2.xy = r0.yz + r6.xy; r8.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw; r1.w = r0.w < r8.x; r1.w = r1.w ? 1.000000 : 0; r0.x = r1.w + r0.x; r7.zw = float2(5.000000e-001,1.000000e+000); r2.xy = r7.zy + r1.xz; r8.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw; r1.w = r0.w < r8.x; r1.w = r1.w ? 1.000000 : 0; r0.x = r1.w + r0.x; r8.x = 1.000000000e+000 * r5.x; r2.xy = r5.xy * float2(1.000000e+000,-1.000000e+000) + r0.yz; r9.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw; r1.w = r0.w < r9.x; r1.w = r1.w ? 1.000000 : 0; r0.x = r1.w + r0.x; r9.x = 2.000000000e+000 * r5.x; r2.xy = r5.xy * float2(2.000000e+000,-1.000000e+000) + r0.yz; r10.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw; r1.w = r0.w < r10.x; r1.w = r1.w ? 1.000000 : 0; r0.x = r1.w + r0.x; r1.yw = r1.xy * float2(1.000000e+000,-1.000000e+000) + float2(5.000000e-001,-5.000000e-001); r2.xy = r1.yw + r7.xw; r7.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw; r2.x = r0.w < r7.x; r2.x = r2.x ? 1.000000 : 0; r0.x = r2.x + r0.x; r6.w = 1.000000000e+000; r2.xy = r6.zw + r1.yw; r6.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw; r2.x = r0.w < r6.x; r2.x = r2.x ? 1.000000 : 0; r0.x = r2.x + r0.x; r6.xyzw = t0.SampleLevel(s0_s, r0.yz, 0.000000000e+000).xyzw; r2.x = r0.w < r6.x; r2.x = r2.x ? 1.000000 : 0; r0.x = r2.x + r0.x; r8.z = 1.000000000e+000; r2.xy = r8.xz + r1.yw; r6.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw; r2.x = r0.w < r6.x; r2.x = r2.x ? 1.000000 : 0; r0.x = r2.x + r0.x; r9.z = 1.000000000e+000; r1.yw = r9.xz + r1.yw; r6.xyzw = t0.SampleLevel(s0_s, r1.yw, 0.000000000e+000).xyzw; r1.y = r0.w < r6.x; r1.y = r1.y ? 1.000000 : 0; r0.x = r1.y + r0.x; r2.xyzw = t0.SampleLevel(s0_s, r2.zw, 0.000000000e+000).xyzw; r1.y = r0.w < r2.x; r1.y = r1.y ? 1.000000 : 0; r0.x = r1.y + r0.x; r2.y = 1.000000000e+000 * r5.y; r1.yw = r5.xy * float2(-1.000000e+000,1.000000e+000) + r0.yz; r6.xyzw = t0.SampleLevel(s0_s, r1.yw, 0.000000000e+000).xyzw; r1.y = r0.w < r6.x; r1.y = r1.y ? 1.000000 : 0; r0.x = r1.y + r0.x; r2.z = 5.000000000e-001; r1.yw = r2.zy + r1.xz; r2.xyzw = t0.SampleLevel(s0_s, r1.yw, 0.000000000e+000).xyzw; r1.y = r0.w < r2.x; r1.y = r1.y ? 1.000000 : 0; r0.x = r1.y + r0.x; r1.yw = r0.yz + r5.xy; r2.xyzw = t0.SampleLevel(s0_s, r1.yw, 0.000000000e+000).xyzw; r1.y = r0.w < r2.x; r1.y = r1.y ? 1.000000 : 0; r0.x = r1.y + r0.x; r2.xyzw = r5.xyxy * float4(2.000000e+000,1.000000e+000,-2.000000e+000,2.000000e+000) + r0.yzyz; r6.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw; r1.y = r0.w < r6.x; r1.y = r1.y ? 1.000000 : 0; r0.x = r1.y + r0.x; r2.xyzw = t0.SampleLevel(s0_s, r2.zw, 0.000000000e+000).xyzw; r1.y = r0.w < r2.x; r1.y = r1.y ? 1.000000 : 0; r0.x = r1.y + r0.x; r2.y = 2.000000000e+000 * r5.y; r1.yw = r5.xy * float2(-1.000000e+000,2.000000e+000) + r0.yz; r6.xyzw = t0.SampleLevel(s0_s, r1.yw, 0.000000000e+000).xyzw; r1.y = r0.w < r6.x; r1.y = r1.y ? 1.000000 : 0; r0.x = r1.y + r0.x; r2.z = 5.000000000e-001; r1.xy = r2.zy + r1.xz; r1.xyzw = t0.SampleLevel(s0_s, r1.xy, 0.000000000e+000).xyzw; r1.x = r0.w < r1.x; r1.x = r1.x ? 1.000000 : 0; r0.x = r1.x + r0.x; r1.xy = r5.xy * float2(1.000000e+000,2.000000e+000) + r0.yz; r1.xyzw = t0.SampleLevel(s0_s, r1.xy, 0.000000000e+000).xyzw; r1.x = r0.w < r1.x; r1.x = r1.x ? 1.000000 : 0; r0.x = r1.x + r0.x; r0.yz = r5.xy * float2(2.000000e+000,2.000000e+000) + r0.yz; r1.xyzw = t0.SampleLevel(s0_s, r0.yz, 0.000000000e+000).xyzw; r0.y = r0.w < r1.x; r0.y = r0.y ? 1.000000 : 0; r0.x = r0.x + r0.y; r0.y = 3.999999911e-002 * r0.x; r0.x = 2.500000000e-001 < r0.x; r3.zw = float2(0.000000e+000,1.000000e+000); o3.xyzw = r0.xxxx ? r3.xyzw : 0; o0.xyz = v0.xyz * r0.yyy; o0.w = v6.x; o1.zw = r4.xy * float2(1.000000e+000,-1.000000e+000) + float2(0.000000e+000,1.000000e+000); o2.x = v6.z; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // // 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[2], 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 div r0.yz, r1.yyzy, r0.xxxx mul r1.xy, r0.yzyy, l(0.500000, 0.500000, 0.000000, 0.000000) mad r2.xy, r0.yzyy, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) lt r0.w, v1.w, l(0.500000) min r2.w, r0.x, l(50000.000000) movc r0.w, r0.w, r0.x, r2.w lt r2.w, l(0.000000), v6.y if_nz r2.w mov_sat r2.w, v6.y mul r3.xy, r2.wwww, v2.zwzz else mul r2.w, v4.z, l(3.141590) sincos null, r2.w, r2.w mad r2.w, r2.w, l(0.500000), l(0.500000) add r2.w, -r2.w, l(1.000000) mul r3.xy, r2.wwww, v2.zwzz endif add r3.zw, -v4.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) mul r3.xyzw, r3.xyzw, v8.xyxy mad r3.zw, r3.zzzw, v8.zzzz, r0.yyyz mul r3.xy, r3.xyxx, v8.zzzz mul r3.xy, r3.xyxx, v4.xyxx mad r3.xy, r3.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), r3.zwzz add r3.zw, -r0.yyyz, r3.xxxy dp2 r2.w, r3.zwzz, r3.zwzz rsq r2.w, r2.w mul r3.zw, r2.wwww, r3.zzzw mul r4.xy, r3.zwzz, l(1.000000, -1.000000, 0.000000, 0.000000) dp2 r2.w, r4.xyxx, r4.xyxx sqrt r2.w, r2.w lt r2.w, r2.w, l(0.900000) ge r3.z, l(0.000000), v6.w or r2.w, r2.w, r3.z if_nz r2.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 r2.w, r0.yzyy, r0.yzyy sqrt r2.w, r2.w min r2.w, r2.w, l(1.000000) add r3.zw, -v3.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) mad r3.zw, -|r0.yyyz|, r3.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) max r3.zw, r3.zzzw, l(0.000000, 0.000000, 0.200000, 0.200000) min r3.zw, r3.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) add r4.x, -r2.w, l(1.000000) mul r4.xy, r4.xxxx, v3.xyxx mad r3.zw, r3.zzzw, r2.wwww, r4.xxxy mul r4.yz, r3.zzwz, v2.xxyx div r4.x, r4.y, cb0[1].x lt r2.w, l(0.000000), v8.w mul r3.zw, r4.xxxz, cb0[1].yyyy movc r3.zw, r2.wwww, r3.zzzw, r4.xxxz lt r0.x, l(0.000000), r0.x mul r3.zw, r3.zzzw, v5.zzzw dp2 r4.x, r3.zwzz, r5.xyxx dp2 r4.y, r3.zwzz, r6.xyxx add r3.xy, r3.xyxx, r4.xyxx and r3.xy, r0.xxxx, r3.xyxx mad r4.xy, r3.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) div r5.xy, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[0].xyxx mov r6.xyz, -r5.xyxx mul r4.w, r5.y, l(-2.000000) add r2.z, -r2.y, l(1.000000) mad r2.yw, r5.xxxy, l(0.000000, -2.000000, 0.000000, -2.000000), r2.xxxz sample_l r7.xyzw, r2.ywyy, t0.xyzw, s0, l(0.000000) lt r0.x, r0.w, r7.x and r0.x, r0.x, l(0x3f800000) mul r5.w, r5.y, l(-2.000000) mad r2.xy, r5.xyxx, l(-1.000000, -2.000000, 0.000000, 0.000000), r2.xzxx sample_l r2.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) lt r2.x, r0.w, r2.x and r2.x, r2.x, l(0x3f800000) add r0.x, r0.x, r2.x mad r1.z, -r0.z, l(0.500000), l(0.500000) mov r4.z, l(0.500000) add r2.xy, r1.xzxx, r4.zwzz sample_l r2.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) lt r0.z, r0.w, r2.x and r0.z, r0.z, l(0x3f800000) add r0.x, r0.z, r0.x mad r1.w, r0.y, l(0.500000), l(0.500000) add r0.yz, r5.xxwx, r1.wwzw sample_l r2.xyzw, r0.yzyy, t0.xyzw, s0, l(0.000000) lt r0.y, r0.w, r2.x and r0.y, r0.y, l(0x3f800000) add r0.x, r0.y, r0.x add r0.yz, r1.xxzx, l(0.000000, 0.500000, 0.000000, 0.000000) mad r2.xyzw, r5.xwxy, l(2.000000, 1.000000, -2.000000, 1.000000), r0.yzyz sample_l r7.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) lt r1.w, r0.w, r7.x and r1.w, r1.w, l(0x3f800000) add r0.x, r0.x, r1.w mul r7.xy, r5.xyxx, l(-2.000000, -1.000000, 0.000000, 0.000000) mad r2.xy, r5.xyxx, l(-2.000000, -1.000000, 0.000000, 0.000000), r0.yzyy sample_l r8.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) lt r1.w, r0.w, r8.x and r1.w, r1.w, l(0x3f800000) add r0.x, r0.x, r1.w add r2.xy, r6.xyxx, r0.yzyy sample_l r8.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) lt r1.w, r0.w, r8.x and r1.w, r1.w, l(0x3f800000) add r0.x, r0.x, r1.w mov r7.zw, l(0,0,0.500000,1.000000) add r2.xy, r1.xzxx, r7.zyzz sample_l r8.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) lt r1.w, r0.w, r8.x and r1.w, r1.w, l(0x3f800000) add r0.x, r0.x, r1.w mul r8.x, r5.x, l(1.000000) mad r2.xy, r5.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000), r0.yzyy sample_l r9.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) lt r1.w, r0.w, r9.x and r1.w, r1.w, l(0x3f800000) add r0.x, r0.x, r1.w mul r9.x, r5.x, l(2.000000) mad r2.xy, r5.xyxx, l(2.000000, -1.000000, 0.000000, 0.000000), r0.yzyy sample_l r10.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) lt r1.w, r0.w, r10.x and r1.w, r1.w, l(0x3f800000) add r0.x, r0.x, r1.w mad r1.yw, r1.xxxy, l(0.000000, 1.000000, 0.000000, -1.000000), l(0.000000, 0.500000, 0.000000, -0.500000) add r2.xy, r7.xwxx, r1.ywyy sample_l r7.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) lt r2.x, r0.w, r7.x and r2.x, r2.x, l(0x3f800000) add r0.x, r0.x, r2.x mov r6.w, l(1.000000) add r2.xy, r1.ywyy, r6.zwzz sample_l r6.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) lt r2.x, r0.w, r6.x and r2.x, r2.x, l(0x3f800000) add r0.x, r0.x, r2.x sample_l r6.xyzw, r0.yzyy, t0.xyzw, s0, l(0.000000) lt r2.x, r0.w, r6.x and r2.x, r2.x, l(0x3f800000) add r0.x, r0.x, r2.x mov r8.z, l(1.000000) add r2.xy, r1.ywyy, r8.xzxx sample_l r6.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) lt r2.x, r0.w, r6.x and r2.x, r2.x, l(0x3f800000) add r0.x, r0.x, r2.x mov r9.z, l(1.000000) add r1.yw, r1.yyyw, r9.xxxz sample_l r6.xyzw, r1.ywyy, t0.xyzw, s0, l(0.000000) lt r1.y, r0.w, r6.x and r1.y, r1.y, l(0x3f800000) add r0.x, r0.x, r1.y sample_l r2.xyzw, r2.zwzz, t0.xyzw, s0, l(0.000000) lt r1.y, r0.w, r2.x and r1.y, r1.y, l(0x3f800000) add r0.x, r0.x, r1.y mul r2.y, r5.y, l(1.000000) mad r1.yw, r5.xxxy, l(0.000000, -1.000000, 0.000000, 1.000000), r0.yyyz sample_l r6.xyzw, r1.ywyy, t0.xyzw, s0, l(0.000000) lt r1.y, r0.w, r6.x and r1.y, r1.y, l(0x3f800000) add r0.x, r0.x, r1.y mov r2.z, l(0.500000) add r1.yw, r1.xxxz, r2.zzzy sample_l r2.xyzw, r1.ywyy, t0.xyzw, s0, l(0.000000) lt r1.y, r0.w, r2.x and r1.y, r1.y, l(0x3f800000) add r0.x, r0.x, r1.y add r1.yw, r5.xxxy, r0.yyyz sample_l r2.xyzw, r1.ywyy, t0.xyzw, s0, l(0.000000) lt r1.y, r0.w, r2.x and r1.y, r1.y, l(0x3f800000) add r0.x, r0.x, r1.y mad r2.xyzw, r5.xyxy, l(2.000000, 1.000000, -2.000000, 2.000000), r0.yzyz sample_l r6.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000) lt r1.y, r0.w, r6.x and r1.y, r1.y, l(0x3f800000) add r0.x, r0.x, r1.y sample_l r2.xyzw, r2.zwzz, t0.xyzw, s0, l(0.000000) lt r1.y, r0.w, r2.x and r1.y, r1.y, l(0x3f800000) add r0.x, r0.x, r1.y mul r2.y, r5.y, l(2.000000) mad r1.yw, r5.xxxy, l(0.000000, -1.000000, 0.000000, 2.000000), r0.yyyz sample_l r6.xyzw, r1.ywyy, t0.xyzw, s0, l(0.000000) lt r1.y, r0.w, r6.x and r1.y, r1.y, l(0x3f800000) add r0.x, r0.x, r1.y mov r2.z, l(0.500000) add r1.xy, r1.xzxx, r2.zyzz sample_l r1.xyzw, r1.xyxx, t0.xyzw, s0, l(0.000000) lt r1.x, r0.w, r1.x and r1.x, r1.x, l(0x3f800000) add r0.x, r0.x, r1.x mad r1.xy, r5.xyxx, l(1.000000, 2.000000, 0.000000, 0.000000), r0.yzyy sample_l r1.xyzw, r1.xyxx, t0.xyzw, s0, l(0.000000) lt r1.x, r0.w, r1.x and r1.x, r1.x, l(0x3f800000) add r0.x, r0.x, r1.x mad r0.yz, r5.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), r0.yyzy sample_l r1.xyzw, r0.yzyy, t0.xyzw, s0, l(0.000000) lt r0.y, r0.w, r1.x and r0.y, r0.y, l(0x3f800000) add r0.x, r0.y, r0.x mul r0.y, r0.x, l(0.040000) lt r0.x, l(0.250000), r0.x mov r3.zw, l(0,0,0,1.000000) and o3.xyzw, r0.xxxx, r3.xyzw mul o0.xyz, r0.yyyy, v0.xyzx mov o0.w, v6.x mad o1.zw, r4.xxxy, 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] Thanks!
You sir are awesome. I did try to use Bo3b's school but I couldn't find any constants to use!

If you wouldn't mind, please will you add comments to what you have used and any changes?


this is the PS bit...

// bloom in 2D

Texture2D<float4> t1 : register(t1);

Texture2D<float4> t0 : register(t0);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

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


Texture2D<float4> StereoParams : register(t125);
Texture1D<float4> IniParams : register(t120);

void main(
float4 v0 : TEXCOORD0,
float4 v1 : TEXCOORD1,
float v2 : TEXCOORD2,
float4 v3 : SV_Position0,
out float4 o0 : SV_Target0)
{
float4 r0,r1;
uint4 bitmask, uiDest;
float4 fDest;

r0.xyzw = t1.Sample(s1_s, v1.zw).xyzw;
r0.xyz = cb0[0].xxx * r0.xyz;
r1.xyzw = t0.Sample(s0_s, v1.xy).xyzw;
r0.xyz = r0.xyz * r1.xyz + -r1.xyz;
r0.xyz = v2.xxx * r0.xyz + r1.xyz;
o0.w = v0.w * r1.w;
o0.xyz = v0.xyz * r0.xyz;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//
// Input 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
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_4_0
dcl_constantbuffer cb0[1], 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.xyzw
dcl_input_ps linear v1.xyzw
dcl_input_ps linear v2.x
dcl_output o0.xyzw
dcl_temps 2
sample r0.xyzw, v1.zwzz, t1.xyzw, s1
mul r0.xyz, r0.xyzx, cb0[0].xxxx
sample r1.xyzw, v1.xyxx, t0.xyzw, s0
mad r0.xyz, r0.xyzx, r1.xyzx, -r1.xyzx
mad r0.xyz, v2.xxxx, r0.xyzx, r1.xyzx
mul o0.w, r1.w, v0.w
mul o0.xyz, r0.xyzx, v0.xyzx
ret
// Approximately 0 instruction slots used

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



This is the VS

//2D Bloom

Texture2D<float4> t0 : register(t0);

SamplerState s0_s : register(s0);

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

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


Texture2D<float4> StereoParams : register(t125);
Texture1D<float4> IniParams : register(t120);

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;

r0.xy = v7.zw * v5.xy;
r0.xy = float2(6.250000e-002,1.250000e-001) * r0.xy;
o1.xy = v7.xy * float2(6.250000e-002,1.250000e-001) + r0.xy;
r0.xyz = v1.xyz;
r0.w = 1.000000000e+000;
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.yz = r1.yz / r0.xx;
r1.xy = float2(5.000000e-001,5.000000e-001) * r0.yz;
r2.xy = r0.yz * float2(5.000000e-001,5.000000e-001) + float2(5.000000e-001,5.000000e-001);
r0.w = v1.w < 5.000000000e-001;
r2.w = min(r0.x, 5.000000000e+004);
r0.w = r0.w ? r0.x : r2.w;
r2.w = 0.000000000e+000 < v6.y;
if (r2.w != 0) {
r2.w = saturate(v6.y);
r3.xy = v2.zw * r2.ww;
} else {
r2.w = 3.141590118e+000 * v4.z;
r2.w = cos(r2.w);
r2.w = r2.w * 5.000000000e-001 + 5.000000000e-001;
r2.w = 1.000000000e+000 + -r2.w;
r3.xy = v2.zw * r2.ww;
}
r3.zw = float2(1.000000e+000,1.000000e+000) + -v4.xy;
r3.xyzw = v8.xyxy * r3.xyzw;
r3.zw = r3.zw * v8.zz + r0.yz;
r3.xy = v8.zz * r3.xy;
r3.xy = v4.xy * r3.xy;
r3.xy = r3.xy * float2(2.000000e+000,2.000000e+000) + r3.zw;
r3.zw = r3.xy + -r0.yz;
r2.w = dot(r3.zw, r3.zw);
r2.w = rsqrt(r2.w);
r3.zw = r3.zw * r2.ww;
r4.xy = float2(1.000000e+000,-1.000000e+000) * r3.zw;
r2.w = dot(r4.xy, r4.xy);
r2.w = sqrt(r2.w);
r2.w = r2.w < 8.999999762e-001;
r3.z = 0.000000000e+000 >= v6.w;
r2.w = (int)r2.w | (int)r3.z;
if (r2.w != 0) {
r4.xy = float2(1.000000e+000,0.000000e+000);
}
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);
r2.w = dot(r0.yz, r0.yz);
r2.w = sqrt(r2.w);
r2.w = min(r2.w, 1.000000000e+000);
r3.zw = float2(1.000000e+000,1.000000e+000) + -v3.zw;
r3.zw = -abs(r0.yz) * r3.zw + float2(1.000000e+000,1.000000e+000);
r3.zw = max(r3.zw, float2(2.000000e-001,2.000000e-001));
r3.zw = min(r3.zw, float2(1.000000e+000,1.000000e+000));
r4.x = 1.000000000e+000 + -r2.w;
r4.xy = v3.xy * r4.xx;
r3.zw = r3.zw * r2.ww + r4.xy;
r4.yz = v2.xy * r3.zw;
r4.x = r4.y / cb0[1].x;
r2.w = 0.000000000e+000 < v8.w;
r3.zw = cb0[1].yy * r4.xz;
r3.zw = r2.ww ? r3.zw : r4.xz;
r0.x = 0.000000000e+000 < r0.x;
r3.zw = v5.zw * r3.zw;
r4.x = dot(r3.zw, r5.xy);
r4.y = dot(r3.zw, r6.xy);
r3.xy = r4.xy + r3.xy;
r3.xy = r0.xx ? r3.xy : 0;
r4.xy = r3.xy * float2(5.000000e-001,5.000000e-001) + float2(5.000000e-001,5.000000e-001);
r5.xy = float2(1.000000e+000,1.000000e+000) / cb0[0].xy;
r6.xyz = -r5.xyx;
r4.w = -2.000000000e+000 * r5.y;
r2.z = 1.000000000e+000 + -r2.y;
r2.yw = r5.xy * float2(-2.000000e+000,-2.000000e+000) + r2.xz;
r7.xyzw = t0.SampleLevel(s0_s, r2.yw, 0.000000000e+000).xyzw;
r0.x = r0.w < r7.x;
r0.x = r0.x ? 1.000000 : 0;
r5.w = -2.000000000e+000 * r5.y;
r2.xy = r5.xy * float2(-1.000000e+000,-2.000000e+000) + r2.xz;
r2.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw;
r2.x = r0.w < r2.x;
r2.x = r2.x ? 1.000000 : 0;
r0.x = r2.x + r0.x;
r1.z = -r0.z * 5.000000000e-001 + 5.000000000e-001;
r4.z = 5.000000000e-001;
r2.xy = r4.zw + r1.xz;
r2.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw;
r0.z = r0.w < r2.x;
r0.z = r0.z ? 1.000000 : 0;
r0.x = r0.x + r0.z;
r1.w = r0.y * 5.000000000e-001 + 5.000000000e-001;
r0.yz = r1.wz + r5.xw;
r2.xyzw = t0.SampleLevel(s0_s, r0.yz, 0.000000000e+000).xyzw;
r0.y = r0.w < r2.x;
r0.y = r0.y ? 1.000000 : 0;
r0.x = r0.x + r0.y;
r0.yz = float2(5.000000e-001,0.000000e+000) + r1.xz;
r2.xyzw = r5.xwxy * float4(2.000000e+000,1.000000e+000,-2.000000e+000,1.000000e+000) + r0.yzyz;
r7.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw;
r1.w = r0.w < r7.x;
r1.w = r1.w ? 1.000000 : 0;
r0.x = r1.w + r0.x;
r7.xy = float2(-2.000000e+000,-1.000000e+000) * r5.xy;
r2.xy = r5.xy * float2(-2.000000e+000,-1.000000e+000) + r0.yz;
r8.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw;
r1.w = r0.w < r8.x;
r1.w = r1.w ? 1.000000 : 0;
r0.x = r1.w + r0.x;
r2.xy = r0.yz + r6.xy;
r8.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw;
r1.w = r0.w < r8.x;
r1.w = r1.w ? 1.000000 : 0;
r0.x = r1.w + r0.x;
r7.zw = float2(5.000000e-001,1.000000e+000);
r2.xy = r7.zy + r1.xz;
r8.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw;
r1.w = r0.w < r8.x;
r1.w = r1.w ? 1.000000 : 0;
r0.x = r1.w + r0.x;
r8.x = 1.000000000e+000 * r5.x;
r2.xy = r5.xy * float2(1.000000e+000,-1.000000e+000) + r0.yz;
r9.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw;
r1.w = r0.w < r9.x;
r1.w = r1.w ? 1.000000 : 0;
r0.x = r1.w + r0.x;
r9.x = 2.000000000e+000 * r5.x;
r2.xy = r5.xy * float2(2.000000e+000,-1.000000e+000) + r0.yz;
r10.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw;
r1.w = r0.w < r10.x;
r1.w = r1.w ? 1.000000 : 0;
r0.x = r1.w + r0.x;
r1.yw = r1.xy * float2(1.000000e+000,-1.000000e+000) + float2(5.000000e-001,-5.000000e-001);
r2.xy = r1.yw + r7.xw;
r7.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw;
r2.x = r0.w < r7.x;
r2.x = r2.x ? 1.000000 : 0;
r0.x = r2.x + r0.x;
r6.w = 1.000000000e+000;
r2.xy = r6.zw + r1.yw;
r6.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw;
r2.x = r0.w < r6.x;
r2.x = r2.x ? 1.000000 : 0;
r0.x = r2.x + r0.x;
r6.xyzw = t0.SampleLevel(s0_s, r0.yz, 0.000000000e+000).xyzw;
r2.x = r0.w < r6.x;
r2.x = r2.x ? 1.000000 : 0;
r0.x = r2.x + r0.x;
r8.z = 1.000000000e+000;
r2.xy = r8.xz + r1.yw;
r6.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw;
r2.x = r0.w < r6.x;
r2.x = r2.x ? 1.000000 : 0;
r0.x = r2.x + r0.x;
r9.z = 1.000000000e+000;
r1.yw = r9.xz + r1.yw;
r6.xyzw = t0.SampleLevel(s0_s, r1.yw, 0.000000000e+000).xyzw;
r1.y = r0.w < r6.x;
r1.y = r1.y ? 1.000000 : 0;
r0.x = r1.y + r0.x;
r2.xyzw = t0.SampleLevel(s0_s, r2.zw, 0.000000000e+000).xyzw;
r1.y = r0.w < r2.x;
r1.y = r1.y ? 1.000000 : 0;
r0.x = r1.y + r0.x;
r2.y = 1.000000000e+000 * r5.y;
r1.yw = r5.xy * float2(-1.000000e+000,1.000000e+000) + r0.yz;
r6.xyzw = t0.SampleLevel(s0_s, r1.yw, 0.000000000e+000).xyzw;
r1.y = r0.w < r6.x;
r1.y = r1.y ? 1.000000 : 0;
r0.x = r1.y + r0.x;
r2.z = 5.000000000e-001;
r1.yw = r2.zy + r1.xz;
r2.xyzw = t0.SampleLevel(s0_s, r1.yw, 0.000000000e+000).xyzw;
r1.y = r0.w < r2.x;
r1.y = r1.y ? 1.000000 : 0;
r0.x = r1.y + r0.x;
r1.yw = r0.yz + r5.xy;
r2.xyzw = t0.SampleLevel(s0_s, r1.yw, 0.000000000e+000).xyzw;
r1.y = r0.w < r2.x;
r1.y = r1.y ? 1.000000 : 0;
r0.x = r1.y + r0.x;
r2.xyzw = r5.xyxy * float4(2.000000e+000,1.000000e+000,-2.000000e+000,2.000000e+000) + r0.yzyz;
r6.xyzw = t0.SampleLevel(s0_s, r2.xy, 0.000000000e+000).xyzw;
r1.y = r0.w < r6.x;
r1.y = r1.y ? 1.000000 : 0;
r0.x = r1.y + r0.x;
r2.xyzw = t0.SampleLevel(s0_s, r2.zw, 0.000000000e+000).xyzw;
r1.y = r0.w < r2.x;
r1.y = r1.y ? 1.000000 : 0;
r0.x = r1.y + r0.x;
r2.y = 2.000000000e+000 * r5.y;
r1.yw = r5.xy * float2(-1.000000e+000,2.000000e+000) + r0.yz;
r6.xyzw = t0.SampleLevel(s0_s, r1.yw, 0.000000000e+000).xyzw;
r1.y = r0.w < r6.x;
r1.y = r1.y ? 1.000000 : 0;
r0.x = r1.y + r0.x;
r2.z = 5.000000000e-001;
r1.xy = r2.zy + r1.xz;
r1.xyzw = t0.SampleLevel(s0_s, r1.xy, 0.000000000e+000).xyzw;
r1.x = r0.w < r1.x;
r1.x = r1.x ? 1.000000 : 0;
r0.x = r1.x + r0.x;
r1.xy = r5.xy * float2(1.000000e+000,2.000000e+000) + r0.yz;
r1.xyzw = t0.SampleLevel(s0_s, r1.xy, 0.000000000e+000).xyzw;
r1.x = r0.w < r1.x;
r1.x = r1.x ? 1.000000 : 0;
r0.x = r1.x + r0.x;
r0.yz = r5.xy * float2(2.000000e+000,2.000000e+000) + r0.yz;
r1.xyzw = t0.SampleLevel(s0_s, r0.yz, 0.000000000e+000).xyzw;
r0.y = r0.w < r1.x;
r0.y = r0.y ? 1.000000 : 0;
r0.x = r0.x + r0.y;
r0.y = 3.999999911e-002 * r0.x;
r0.x = 2.500000000e-001 < r0.x;
r3.zw = float2(0.000000e+000,1.000000e+000);
o3.xyzw = r0.xxxx ? r3.xyzw : 0;
o0.xyz = v0.xyz * r0.yyy;
o0.w = v6.x;
o1.zw = r4.xy * float2(1.000000e+000,-1.000000e+000) + float2(0.000000e+000,1.000000e+000);
o2.x = v6.z;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//
// 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[2], 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
div r0.yz, r1.yyzy, r0.xxxx
mul r1.xy, r0.yzyy, l(0.500000, 0.500000, 0.000000, 0.000000)
mad r2.xy, r0.yzyy, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
lt r0.w, v1.w, l(0.500000)
min r2.w, r0.x, l(50000.000000)
movc r0.w, r0.w, r0.x, r2.w
lt r2.w, l(0.000000), v6.y
if_nz r2.w
mov_sat r2.w, v6.y
mul r3.xy, r2.wwww, v2.zwzz
else
mul r2.w, v4.z, l(3.141590)
sincos null, r2.w, r2.w
mad r2.w, r2.w, l(0.500000), l(0.500000)
add r2.w, -r2.w, l(1.000000)
mul r3.xy, r2.wwww, v2.zwzz
endif
add r3.zw, -v4.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000)
mul r3.xyzw, r3.xyzw, v8.xyxy
mad r3.zw, r3.zzzw, v8.zzzz, r0.yyyz
mul r3.xy, r3.xyxx, v8.zzzz
mul r3.xy, r3.xyxx, v4.xyxx
mad r3.xy, r3.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), r3.zwzz
add r3.zw, -r0.yyyz, r3.xxxy
dp2 r2.w, r3.zwzz, r3.zwzz
rsq r2.w, r2.w
mul r3.zw, r2.wwww, r3.zzzw
mul r4.xy, r3.zwzz, l(1.000000, -1.000000, 0.000000, 0.000000)
dp2 r2.w, r4.xyxx, r4.xyxx
sqrt r2.w, r2.w
lt r2.w, r2.w, l(0.900000)
ge r3.z, l(0.000000), v6.w
or r2.w, r2.w, r3.z
if_nz r2.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 r2.w, r0.yzyy, r0.yzyy
sqrt r2.w, r2.w
min r2.w, r2.w, l(1.000000)
add r3.zw, -v3.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000)
mad r3.zw, -|r0.yyyz|, r3.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000)
max r3.zw, r3.zzzw, l(0.000000, 0.000000, 0.200000, 0.200000)
min r3.zw, r3.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000)
add r4.x, -r2.w, l(1.000000)
mul r4.xy, r4.xxxx, v3.xyxx
mad r3.zw, r3.zzzw, r2.wwww, r4.xxxy
mul r4.yz, r3.zzwz, v2.xxyx
div r4.x, r4.y, cb0[1].x
lt r2.w, l(0.000000), v8.w
mul r3.zw, r4.xxxz, cb0[1].yyyy
movc r3.zw, r2.wwww, r3.zzzw, r4.xxxz
lt r0.x, l(0.000000), r0.x
mul r3.zw, r3.zzzw, v5.zzzw
dp2 r4.x, r3.zwzz, r5.xyxx
dp2 r4.y, r3.zwzz, r6.xyxx
add r3.xy, r3.xyxx, r4.xyxx
and r3.xy, r0.xxxx, r3.xyxx
mad r4.xy, r3.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
div r5.xy, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[0].xyxx
mov r6.xyz, -r5.xyxx
mul r4.w, r5.y, l(-2.000000)
add r2.z, -r2.y, l(1.000000)
mad r2.yw, r5.xxxy, l(0.000000, -2.000000, 0.000000, -2.000000), r2.xxxz
sample_l r7.xyzw, r2.ywyy, t0.xyzw, s0, l(0.000000)
lt r0.x, r0.w, r7.x
and r0.x, r0.x, l(0x3f800000)
mul r5.w, r5.y, l(-2.000000)
mad r2.xy, r5.xyxx, l(-1.000000, -2.000000, 0.000000, 0.000000), r2.xzxx
sample_l r2.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000)
lt r2.x, r0.w, r2.x
and r2.x, r2.x, l(0x3f800000)
add r0.x, r0.x, r2.x
mad r1.z, -r0.z, l(0.500000), l(0.500000)
mov r4.z, l(0.500000)
add r2.xy, r1.xzxx, r4.zwzz
sample_l r2.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000)
lt r0.z, r0.w, r2.x
and r0.z, r0.z, l(0x3f800000)
add r0.x, r0.z, r0.x
mad r1.w, r0.y, l(0.500000), l(0.500000)
add r0.yz, r5.xxwx, r1.wwzw
sample_l r2.xyzw, r0.yzyy, t0.xyzw, s0, l(0.000000)
lt r0.y, r0.w, r2.x
and r0.y, r0.y, l(0x3f800000)
add r0.x, r0.y, r0.x
add r0.yz, r1.xxzx, l(0.000000, 0.500000, 0.000000, 0.000000)
mad r2.xyzw, r5.xwxy, l(2.000000, 1.000000, -2.000000, 1.000000), r0.yzyz
sample_l r7.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000)
lt r1.w, r0.w, r7.x
and r1.w, r1.w, l(0x3f800000)
add r0.x, r0.x, r1.w
mul r7.xy, r5.xyxx, l(-2.000000, -1.000000, 0.000000, 0.000000)
mad r2.xy, r5.xyxx, l(-2.000000, -1.000000, 0.000000, 0.000000), r0.yzyy
sample_l r8.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000)
lt r1.w, r0.w, r8.x
and r1.w, r1.w, l(0x3f800000)
add r0.x, r0.x, r1.w
add r2.xy, r6.xyxx, r0.yzyy
sample_l r8.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000)
lt r1.w, r0.w, r8.x
and r1.w, r1.w, l(0x3f800000)
add r0.x, r0.x, r1.w
mov r7.zw, l(0,0,0.500000,1.000000)
add r2.xy, r1.xzxx, r7.zyzz
sample_l r8.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000)
lt r1.w, r0.w, r8.x
and r1.w, r1.w, l(0x3f800000)
add r0.x, r0.x, r1.w
mul r8.x, r5.x, l(1.000000)
mad r2.xy, r5.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000), r0.yzyy
sample_l r9.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000)
lt r1.w, r0.w, r9.x
and r1.w, r1.w, l(0x3f800000)
add r0.x, r0.x, r1.w
mul r9.x, r5.x, l(2.000000)
mad r2.xy, r5.xyxx, l(2.000000, -1.000000, 0.000000, 0.000000), r0.yzyy
sample_l r10.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000)
lt r1.w, r0.w, r10.x
and r1.w, r1.w, l(0x3f800000)
add r0.x, r0.x, r1.w
mad r1.yw, r1.xxxy, l(0.000000, 1.000000, 0.000000, -1.000000), l(0.000000, 0.500000, 0.000000, -0.500000)
add r2.xy, r7.xwxx, r1.ywyy
sample_l r7.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000)
lt r2.x, r0.w, r7.x
and r2.x, r2.x, l(0x3f800000)
add r0.x, r0.x, r2.x
mov r6.w, l(1.000000)
add r2.xy, r1.ywyy, r6.zwzz
sample_l r6.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000)
lt r2.x, r0.w, r6.x
and r2.x, r2.x, l(0x3f800000)
add r0.x, r0.x, r2.x
sample_l r6.xyzw, r0.yzyy, t0.xyzw, s0, l(0.000000)
lt r2.x, r0.w, r6.x
and r2.x, r2.x, l(0x3f800000)
add r0.x, r0.x, r2.x
mov r8.z, l(1.000000)
add r2.xy, r1.ywyy, r8.xzxx
sample_l r6.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000)
lt r2.x, r0.w, r6.x
and r2.x, r2.x, l(0x3f800000)
add r0.x, r0.x, r2.x
mov r9.z, l(1.000000)
add r1.yw, r1.yyyw, r9.xxxz
sample_l r6.xyzw, r1.ywyy, t0.xyzw, s0, l(0.000000)
lt r1.y, r0.w, r6.x
and r1.y, r1.y, l(0x3f800000)
add r0.x, r0.x, r1.y
sample_l r2.xyzw, r2.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.y, r0.w, r2.x
and r1.y, r1.y, l(0x3f800000)
add r0.x, r0.x, r1.y
mul r2.y, r5.y, l(1.000000)
mad r1.yw, r5.xxxy, l(0.000000, -1.000000, 0.000000, 1.000000), r0.yyyz
sample_l r6.xyzw, r1.ywyy, t0.xyzw, s0, l(0.000000)
lt r1.y, r0.w, r6.x
and r1.y, r1.y, l(0x3f800000)
add r0.x, r0.x, r1.y
mov r2.z, l(0.500000)
add r1.yw, r1.xxxz, r2.zzzy
sample_l r2.xyzw, r1.ywyy, t0.xyzw, s0, l(0.000000)
lt r1.y, r0.w, r2.x
and r1.y, r1.y, l(0x3f800000)
add r0.x, r0.x, r1.y
add r1.yw, r5.xxxy, r0.yyyz
sample_l r2.xyzw, r1.ywyy, t0.xyzw, s0, l(0.000000)
lt r1.y, r0.w, r2.x
and r1.y, r1.y, l(0x3f800000)
add r0.x, r0.x, r1.y
mad r2.xyzw, r5.xyxy, l(2.000000, 1.000000, -2.000000, 2.000000), r0.yzyz
sample_l r6.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000)
lt r1.y, r0.w, r6.x
and r1.y, r1.y, l(0x3f800000)
add r0.x, r0.x, r1.y
sample_l r2.xyzw, r2.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.y, r0.w, r2.x
and r1.y, r1.y, l(0x3f800000)
add r0.x, r0.x, r1.y
mul r2.y, r5.y, l(2.000000)
mad r1.yw, r5.xxxy, l(0.000000, -1.000000, 0.000000, 2.000000), r0.yyyz
sample_l r6.xyzw, r1.ywyy, t0.xyzw, s0, l(0.000000)
lt r1.y, r0.w, r6.x
and r1.y, r1.y, l(0x3f800000)
add r0.x, r0.x, r1.y
mov r2.z, l(0.500000)
add r1.xy, r1.xzxx, r2.zyzz
sample_l r1.xyzw, r1.xyxx, t0.xyzw, s0, l(0.000000)
lt r1.x, r0.w, r1.x
and r1.x, r1.x, l(0x3f800000)
add r0.x, r0.x, r1.x
mad r1.xy, r5.xyxx, l(1.000000, 2.000000, 0.000000, 0.000000), r0.yzyy
sample_l r1.xyzw, r1.xyxx, t0.xyzw, s0, l(0.000000)
lt r1.x, r0.w, r1.x
and r1.x, r1.x, l(0x3f800000)
add r0.x, r0.x, r1.x
mad r0.yz, r5.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), r0.yyzy
sample_l r1.xyzw, r0.yzyy, t0.xyzw, s0, l(0.000000)
lt r0.y, r0.w, r1.x
and r0.y, r0.y, l(0x3f800000)
add r0.x, r0.y, r0.x
mul r0.y, r0.x, l(0.040000)
lt r0.x, l(0.250000), r0.x
mov r3.zw, l(0,0,0,1.000000)
and o3.xyzw, r0.xxxx, r3.xyzw
mul o0.xyz, r0.yyyy, v0.xyzx
mov o0.w, v6.x
mad o1.zw, r4.xxxy, 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

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


Thanks!

Lord, grant me the serenity to accept the things I cannot change, the courage to change the things I can, and the wisdom to know the difference.
-------------------
Vitals: Windows 7 64bit, i5 2500 @ 4.4ghz, SLI GTX670, 8GB, Viewsonic VX2268WM

Handy Driver Discussion
Helix Mod - community fixes
Bo3b's Shaderhacker School - How to fix 3D in games
3dsolutionsgaming.com - videos, reviews and 3D fixes

#87
Posted 09/29/2015 04:28 PM   
So sorry for the double post but I am convinced this game has MAJOR potential. ALL of the usual game breaking shaders work! They are fully 3D e.g. unit icons, target icons, HUD etc. EVEN galaxy maps and planetary orbit lines! :) The borked effect that causes the most eyesore is just one shader pair which seems to renders a 'layer' of the texture map for both the cockpit and the stations. I am convinced it is popping out way beyond natural instead of being in depth. Below this texture is more texture, which is totally fine! The other shaders are either cheap ones that could be removed e.g. a bloom or, push come to shove, the nebula map, or ones that cause half-shadows(?) either side of the objects. Finally the star-field is not quite deep enough but still sufficiently deep to not be a total game breaker. I have attached some screenies. Try to look beyond the borked popping out shader under the compass. The compass itself is fine as are the other elements! :) The last three screenies show the troubles! The system maps is cool but the sun has that half shadow thing. I have found the shaders. Because of the amount of working textures I would be willing to bet the game would still look cool with all the abovementioned shaders removed - even the stars fields because the game renders enough of the real stars!
So sorry for the double post but I am convinced this game has MAJOR potential.

ALL of the usual game breaking shaders work! They are fully 3D e.g. unit icons, target icons, HUD etc. EVEN galaxy maps and planetary orbit lines! :)

The borked effect that causes the most eyesore is just one shader pair which seems to renders a 'layer' of the texture map for both the cockpit and the stations. I am convinced it is popping out way beyond natural instead of being in depth. Below this texture is more texture, which is totally fine!

The other shaders are either cheap ones that could be removed e.g. a bloom or, push come to shove, the nebula map, or ones that cause half-shadows(?) either side of the objects. Finally the star-field is not quite deep enough but still sufficiently deep to not be a total game breaker.



I have attached some screenies. Try to look beyond the borked popping out shader under the compass. The compass itself is fine as are the other elements! :) The last three screenies show the troubles! The system maps is cool but the sun has that half shadow thing. I have found the shaders.

Because of the amount of working textures I would be willing to bet the game would still look cool with all the abovementioned shaders removed - even the stars fields because the game renders enough of the real stars!

Lord, grant me the serenity to accept the things I cannot change, the courage to change the things I can, and the wisdom to know the difference.
-------------------
Vitals: Windows 7 64bit, i5 2500 @ 4.4ghz, SLI GTX670, 8GB, Viewsonic VX2268WM

Handy Driver Discussion
Helix Mod - community fixes
Bo3b's Shaderhacker School - How to fix 3D in games
3dsolutionsgaming.com - videos, reviews and 3D fixes

#88
Posted 09/29/2015 08:31 PM   
Great! The HLSL approach is similar, but the syntax is different. Here is how you can disable an effect in HLSL, using your PS above: [code]// bloom in 2D Texture2D<float4> t1 : register(t1); Texture2D<float4> t0 : register(t0); SamplerState s1_s : register(s1); SamplerState s0_s : register(s0); cbuffer cb0 : register(b0) { float4 cb0[1]; } Texture2D<float4> StereoParams : register(t125); Texture1D<float4> IniParams : register(t120); void main( float4 v0 : TEXCOORD0, float4 v1 : TEXCOORD1, float v2 : TEXCOORD2, float4 v3 : SV_Position0, out float4 o0 : SV_Target0) { float4 r0,r1; uint4 bitmask, uiDest; float4 fDest; r0.xyzw = t1.Sample(s1_s, v1.zw).xyzw; r0.xyz = cb0[0].xxx * r0.xyz; r1.xyzw = t0.Sample(s0_s, v1.xy).xyzw; r0.xyz = r0.xyz * r1.xyz + -r1.xyz; r0.xyz = v2.xxx * r0.xyz + r1.xyz; o0.w = v0.w * r1.w; o0.xyz = v0.xyz * r0.xyz; // Disable instead o0=0; return; } [/code] That's typically the easiest. Since this is Shader Model 4 (ps_4_0), you can also put in the "discard;" instruction if setting the output to zero doesn't seem to work quite right. Disabling in the PS is typically better, as a VS might hit multiple pieces. For moving items to depth, that is one of the easiest effects to actually fix. Here are some notes from Mike_ar69, that I've saved off on the wiki for future use. Not really structured yet, but it's the basic idea for fixing skybox. [url]http://wiki.bo3b.net/index.php?title=Skybox_notes[/url] We don't have any good info for using HLSL for fixes just yet, but I plan to pick up my lesson plan using HLSL in a month or so. In general HLSL is easier and less prone to complications, you can pretty much always just say what you mean, and the compiler will work. Give those a try and see if it works for you.
Great! The HLSL approach is similar, but the syntax is different. Here is how you can disable an effect in HLSL, using your PS above:

// bloom in 2D

Texture2D<float4> t1 : register(t1);

Texture2D<float4> t0 : register(t0);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

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


Texture2D<float4> StereoParams : register(t125);
Texture1D<float4> IniParams : register(t120);

void main(
float4 v0 : TEXCOORD0,
float4 v1 : TEXCOORD1,
float v2 : TEXCOORD2,
float4 v3 : SV_Position0,
out float4 o0 : SV_Target0)
{
float4 r0,r1;
uint4 bitmask, uiDest;
float4 fDest;

r0.xyzw = t1.Sample(s1_s, v1.zw).xyzw;
r0.xyz = cb0[0].xxx * r0.xyz;
r1.xyzw = t0.Sample(s0_s, v1.xy).xyzw;
r0.xyz = r0.xyz * r1.xyz + -r1.xyz;
r0.xyz = v2.xxx * r0.xyz + r1.xyz;
o0.w = v0.w * r1.w;
o0.xyz = v0.xyz * r0.xyz;

// Disable instead
o0=0;
return;
}


That's typically the easiest. Since this is Shader Model 4 (ps_4_0), you can also put in the "discard;" instruction if setting the output to zero doesn't seem to work quite right.

Disabling in the PS is typically better, as a VS might hit multiple pieces.


For moving items to depth, that is one of the easiest effects to actually fix. Here are some notes from Mike_ar69, that I've saved off on the wiki for future use. Not really structured yet, but it's the basic idea for fixing skybox.

http://wiki.bo3b.net/index.php?title=Skybox_notes


We don't have any good info for using HLSL for fixes just yet, but I plan to pick up my lesson plan using HLSL in a month or so. In general HLSL is easier and less prone to complications, you can pretty much always just say what you mean, and the compiler will work.

Give those a try and see if it works for you.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#89
Posted 09/30/2015 07:59 AM   
Inlining all your snapshots for convenience: [img]https://forums.geforce.com/cmd/default/download-comment-attachment/66144/[/img] [img]https://forums.geforce.com/cmd/default/download-comment-attachment/66145/[/img] [img]https://forums.geforce.com/cmd/default/download-comment-attachment/66146/[/img] [img]https://forums.geforce.com/cmd/default/download-comment-attachment/66147/[/img] [img]https://forums.geforce.com/cmd/default/download-comment-attachment/66148/[/img] [img]https://forums.geforce.com/cmd/default/download-comment-attachment/66149/[/img] [img]https://forums.geforce.com/cmd/default/download-comment-attachment/66150/[/img] [img]https://forums.geforce.com/cmd/default/download-comment-attachment/66151/[/img] [img]https://forums.geforce.com/cmd/default/download-comment-attachment/66152/[/img] [img]https://forums.geforce.com/cmd/default/download-comment-attachment/66153/[/img] [img]https://forums.geforce.com/cmd/default/download-comment-attachment/66154/[/img] [img]https://forums.geforce.com/cmd/default/download-comment-attachment/66155/[/img]
Inlining all your snapshots for convenience:

Image

Image

Image

Image

Image

Image


Image

Image

Image

Image


Image

Image

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#90
Posted 09/30/2015 08:03 AM   
  6 / 7    
Scroll To Top