The Surge
  1 / 3    
This game will be released May 16th and so far it looks super exciting to me (look at those slow-mo finishers/ 2nd trailer 3:00 Min). I really don't get why this game doesn't get any attention. Everything I've seen so far looks very promising (of course there is always room to mess things up). The game features Dark Souls-esque mechanics with attacks that are not weak/strong based but horizontal/vertical based (those different attacks also play a role for the loot you want to cut off so you can grab it and make it your own). Judging from the available info and footage I am definitely pumped for this one. And of course this one needs to be played in 3D (in case it turns out to be good)! [url]https://www.youtube.com/watch?v=0riOMm1tIWw[/url] [url]https://www.youtube.com/watch?v=_Kp8zWibhIQ[/url]
This game will be released May 16th and so far it looks super exciting to me (look at those slow-mo finishers/ 2nd trailer 3:00 Min). I really don't get why this game doesn't get any attention. Everything I've seen so far looks very promising (of course there is always room to mess things up).

The game features Dark Souls-esque mechanics with attacks that are not weak/strong based but horizontal/vertical based (those different attacks also play a role for the loot you want to cut off so you can grab it and make it your own).
Judging from the available info and footage I am definitely pumped for this one.

And of course this one needs to be played in 3D (in case it turns out to be good)!

" rel="nofollow" target = "_blank">

" rel="nofollow" target = "_blank">

#1
Posted 05/05/2017 10:47 AM   
http://store.steampowered.com/app/378540/The_Surge/ "The game is powered by the FLEDGE engine, developed from scratch by Deck13 Interactive for PlayStation 4 and Xbox One,[5] and will feature integration of Nvidia GameWorks." https://en.wikipedia.org/wiki/The_Surge_(video_game) The game looks pretty interesting, they're the same guys that made Lords of the Fallen in a co-development with CI Games, which also used the Fledge Engine.
http://store.steampowered.com/app/378540/The_Surge/

"The game is powered by the FLEDGE engine, developed from scratch by Deck13 Interactive for PlayStation 4 and Xbox One,[5] and will feature integration of Nvidia GameWorks."

https://en.wikipedia.org/wiki/The_Surge_(video_game)


The game looks pretty interesting, they're the same guys that made Lords of the Fallen in a co-development with CI Games, which also used the Fledge Engine.

#2
Posted 05/05/2017 02:10 PM   
I hope we get good 3d out of this game. Lords of the fallen looks good but it was a paint to get on 3d. :/
I hope we get good 3d out of this game. Lords of the fallen looks good but it was a paint to get on 3d. :/

#3
Posted 05/05/2017 04:04 PM   
Dark Souls, Lords of the Fallen and "Follow-up" in the same thread? Consider me intrigued ^_^
Dark Souls, Lords of the Fallen and "Follow-up" in the same thread?
Consider me intrigued ^_^

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)

#4
Posted 05/05/2017 05:32 PM   
Seems like the trailers were more than just nice graphics! [url]https://www.pcgamesn.com/the-surge/the-surge-vs-dark-souls[/url]
Seems like the trailers were more than just nice graphics!


https://www.pcgamesn.com/the-surge/the-surge-vs-dark-souls

#5
Posted 05/13/2017 10:21 AM   
[quote="lohan"]Seems like the trailers were more than just nice graphics![/quote] There are 4K 60FPS trailers on youtube, even Nvidia has one. But the thing is that PCs will probably be subjected to the same upscaling techniques that they are using on the PS4 Pro and XBox One Project Scorpio with the push for 4K gaming. Just like in the past, as we all know, the console makers are lying about their ability to pull of 4K gaming and will be cheating to obtain it. Like described in this article https://venturebeat.com/2016/09/08/ps4-pro-isnt-4k-that-doesnt-matter/ So if algorithms are applied to a checkerboard image, what will that do to trying to get things to render in each eye for 3D? Not only will the resolution be cheated, but so will other techniques used in the rendering process. Just like they cheated in their 3D rendering to achieve both the Right and Left frames at a reduced cost. https://www.engadget.com/2016/09/08/4k-consoles-will-make-1080p-gaming-a-reality/
lohan said:Seems like the trailers were more than just nice graphics!


There are 4K 60FPS trailers on youtube, even Nvidia has one.

But the thing is that PCs will probably be subjected to the same upscaling techniques that they are using on the PS4 Pro and XBox One Project Scorpio with the push for 4K gaming.

Just like in the past, as we all know, the console makers are lying about their ability to pull of 4K gaming and will be cheating to obtain it.

Like described in this article
https://venturebeat.com/2016/09/08/ps4-pro-isnt-4k-that-doesnt-matter/


So if algorithms are applied to a checkerboard image, what will that do to trying to get things to render in each eye for 3D? Not only will the resolution be cheated, but so will other techniques used in the rendering process. Just like they cheated in their 3D rendering to achieve both the Right and Left frames at a reduced cost.


https://www.engadget.com/2016/09/08/4k-consoles-will-make-1080p-gaming-a-reality/

#6
Posted 05/17/2017 09:47 AM   
I watched a few reviews - considering purchase. Apparently it's the same engine as Lords of the Fallen, which looked good in 3d when the fix was applied. Anyone tried this game with that fix? As for 4k - I still don't get it? I can't resolve the pixels on a 27" 1080p screen from less than a meter away - I guess younger eyes could - but is it really worth it? Surely there are more important aspects to visual fidelity than resolution, like motion, colour range, contrast/black depth and so on. Seems a cheap and lazy way to sell everyone a new panel to me.
I watched a few reviews - considering purchase. Apparently it's the same engine as Lords of the Fallen, which looked good in 3d when the fix was applied. Anyone tried this game with that fix?

As for 4k - I still don't get it? I can't resolve the pixels on a 27" 1080p screen from less than a meter away - I guess younger eyes could - but is it really worth it? Surely there are more important aspects to visual fidelity than resolution, like motion, colour range, contrast/black depth and so on. Seems a cheap and lazy way to sell everyone a new panel to me.

#7
Posted 05/17/2017 10:02 AM   
It's broken. Give the shaderhackers some time. ;)
It's broken. Give the shaderhackers some time. ;)

Intel Core i7-3820, 4 X 3,60 GHz overclocked to 4,50 GHz ; EVGA Titan X 12VRAM ; 16 GB Corsair Vengeance DDR-1600 (4x 4 GB) ; Asus VG278H 27-inch incl. 3D vision 2 glasses, integrated transmitter ; Xbox One Elite wireless controller ; Windows 10HTC VIVE 2,5 m2 roomscale3D VISION GAMERS - VISIT ME ON STEAM and feel free to add me: http://steamcommunity.com/profiles/76561198064106555 YOUTUBE: https://www.youtube.com/channel/UC1UE5TPoF0HX0HVpF_E4uPQ STEAM CURATOR: https://store.steampowered.com/curator/33611530-Streaming-Deluxe/ Image

#8
Posted 05/17/2017 10:03 AM   
I wasn't trying to rush anyone, just wondering if we'd be lucky enough to have it work out of the box?
I wasn't trying to rush anyone, just wondering if we'd be lucky enough to have it work out of the box?

#9
Posted 05/17/2017 10:09 AM   
I will be looking into this one in the future. I bought it but didn't even have time to install it and give it a quick test. I'll probably look into it this weekend and see how much I can fix :)
I will be looking into this one in the future.
I bought it but didn't even have time to install it and give it a quick test.
I'll probably look into it this weekend and see how much I can fix :)

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)

#10
Posted 05/17/2017 10:26 AM   
[quote="ummester"]As for 4k - I still don't get it? I can't resolve the pixels on a 27" 1080p screen from less than a meter away - I guess younger eyes could - but is it really worth it? Surely there are more important aspects to visual fidelity than resolution, like motion, colour range, contrast/black depth and so on. Seems a cheap and lazy way to sell everyone a new panel to me.[/quote] 4K is amazing/stunning for images that are truly 4K. High resolution macro photographs of bugs are out of this world. Games that render in true 4K are crisp and sharp and a thing to behold. I can't wait for 4K to become mainstream with cheap affordable 3D monitors and GPUs that can easily drive them in a few years. I can imagine the enjoyment that these guys get out of their 4K 3D HDTVs. Mine is only 2D But 3D>2D, each and every day, provided that I don't run into Ralphie and his Red Ryder :)
ummester said:As for 4k - I still don't get it? I can't resolve the pixels on a 27" 1080p screen from less than a meter away - I guess younger eyes could - but is it really worth it? Surely there are more important aspects to visual fidelity than resolution, like motion, colour range, contrast/black depth and so on. Seems a cheap and lazy way to sell everyone a new panel to me.


4K is amazing/stunning for images that are truly 4K.

High resolution macro photographs of bugs are out of this world.

Games that render in true 4K are crisp and sharp and a thing to behold. I can't wait for 4K to become mainstream with cheap affordable 3D monitors and GPUs that can easily drive them in a few years. I can imagine the enjoyment that these guys get out of their 4K 3D HDTVs. Mine is only 2D

But 3D>2D, each and every day, provided that I don't run into Ralphie and his Red Ryder :)

#11
Posted 05/17/2017 10:28 AM   
Thanks, helifax :). It's the same engine as Lords of the Fallen (according to unmester. I don't have the game and didn't research), so let's hope that the LotF fix covers most of the formulas you need for a fast fix without headaches.
Thanks, helifax :). It's the same engine as Lords of the Fallen (according to unmester. I don't have the game and didn't research), so let's hope that the LotF fix covers most of the formulas you need for a fast fix without headaches.

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: Gainward Phoenix 1080 GLH
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

#12
Posted 05/17/2017 11:09 AM   
Yesterady i saw a 15 min gameplay video of this game....I thought it was a more RPG style game (i don't like to much RPG games)...but for the video, looks to me is more an action game, and the sci-fi component is always welcome :) Thanks helifax for looking!! i will probably grab this game in the future.
Yesterady i saw a 15 min gameplay video of this game....I thought it was a more RPG style game (i don't like to much RPG games)...but for the video, looks to me is more an action game, and the sci-fi component is always welcome :) Thanks helifax for looking!! i will probably grab this game in the future.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

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

#13
Posted 05/17/2017 01:49 PM   
I have seen some game play on twitch. Seems fun enough, though the level design is kind of meh IMO. One thing I did notice was that the FOV seemed a little out of wack in spots. Camera got way to close to the character for my liking, couldn't tell what was going on half the time. Hopefully that will be adjustable, just mentioning it mostly for surround users, could be an issue.
I have seen some game play on twitch. Seems fun enough, though the level design is kind of meh IMO. One thing I did notice was that the FOV seemed a little out of wack in spots. Camera got way to close to the character for my liking, couldn't tell what was going on half the time. Hopefully that will be adjustable, just mentioning it mostly for surround users, could be an issue.

Intel 7700k @ 4.2Ghz / 32GB @ 3200
Asus Z270 / 2 x Evga 1070
4 x Samsung 840 Raid 0
4 x Samsung 850 Pro Raid 0
Samsung 950 Pro
Epson 5040UB 3DTVPlay

#14
Posted 05/17/2017 10:57 PM   
Right... I managed to fix: - Shadows - Lights - Main Menu + UI However there are certain FOG like lights that I currently have no idea on how to fix: [code] // ---- Created with 3Dmigoto v1.2.50 on Sat May 20 21:30:11 2017 cbuffer PER_STAGE : register(b0) { float4x4 inverse_view_matrix : packoffset(c0); float4 camera_position_worldspace : packoffset(c4); float4 camera_clip_distances : packoffset(c5); } cbuffer PER_FRAME : register(b1) { float4 light_volumetric_random_ray_samples[16] : packoffset(c0); } cbuffer PER_LIGHT : register(b2) { float4x4 light_view_matrix : packoffset(c0); float4x4 light_projection_matrix : packoffset(c4); float4 light_position_worldspace : packoffset(c8); float4 light_direction_worldspace : packoffset(c9); float4 light_color : packoffset(c10); float4 light_parameters0 : packoffset(c11); float4 light_parameters1 : packoffset(c12); float4 light_box_parameters : packoffset(c13); float4 light_attenuation_parameters : packoffset(c14); float4 light_volumetric_parameters0 : packoffset(c15); float4 light_volumetric_parameters1 : packoffset(c16); float4 light_volumetric_parameters2 : packoffset(c17); float4 light_volumetric_parameters3 : packoffset(c18); float4 shadow_parameters : packoffset(c19); float4 light_projector_parameters : packoffset(c20); } cbuffer PER_INSTANCE : register(b3) { float4x4 inverse_world_matrix : packoffset(c0); float4 rendertarget_size : packoffset(c4); float4 viewport_pos : packoffset(c5); float4 viewport_size : packoffset(c6); float4 shadow_buffer_params : packoffset(c7); } SamplerState sampler_point_clamp_s : register(s1); SamplerState sampler_bilinear_wrap_mipBiasNeg2_s : register(s10); Texture2D<float4> depthSampler : register(t0); Texture2DArray<float4> lightImageArraySampler : register(t1); // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : SV_Position0, float4 v1 : Texcoord0, float4 v2 : Texcoord1, float4 v3 : Texcoord2, out float4 o0 : SV_Target0) { const float4 icb[] = { { 1.000000, 0, 0, 0}, { 0, 1.000000, 0, 0}, { 0, 0, 1.000000, 0}, { 0, 0, 0, 1.000000} }; float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13; uint4 bitmask, uiDest; float4 fDest; r0.xy = rendertarget_size.zw * v0.xy; r0.x = depthSampler.SampleLevel(sampler_point_clamp_s, r0.xy, 0).x; r0.x = -camera_clip_distances.z + r0.x; r0.x = camera_clip_distances.w / r0.x; r0.y = r0.x / camera_clip_distances.y; r0.z = v2.z / camera_clip_distances.y; r0.y = cmp(r0.y < r0.z); if (r0.y != 0) { r0.y = camera_clip_distances.y / v3.z; r0.yzw = v3.xyz * r0.yyy; r0.yzw = r0.yzw / camera_clip_distances.yyy; r0.xyz = r0.xxx * r0.yzw; r0.w = 1; r1.x = dot(r0.xyzw, inverse_view_matrix._m00_m10_m20_m30); r1.y = dot(r0.xyzw, inverse_view_matrix._m01_m11_m21_m31); r1.z = dot(r0.xyzw, inverse_view_matrix._m02_m12_m22_m32); } else { r1.xyz = v1.xyz; } r1.w = 1; r0.x = dot(r1.xyzw, light_view_matrix._m00_m10_m20_m30); r0.y = dot(r1.xyzw, light_view_matrix._m01_m11_m21_m31); r0.z = dot(r1.xyzw, light_view_matrix._m02_m12_m22_m32); r2.xyz = camera_position_worldspace.xyz; r2.w = 1; r3.x = dot(r2.xyzw, light_view_matrix._m00_m10_m20_m30); r3.y = dot(r2.xyzw, light_view_matrix._m01_m11_m21_m31); r3.z = dot(r2.xyzw, light_view_matrix._m02_m12_m22_m32); r2.xyz = r3.xyz + -r0.xyz; r0.w = dot(r2.xyz, r2.xyz); r1.w = rsqrt(r0.w); r2.xyz = r2.xyz * r1.www; r3.xyz = camera_position_worldspace.xyz + -r1.xyz; r1.w = dot(r3.xyz, r3.xyz); r1.w = rsqrt(r1.w); r3.xyz = r3.xyz * r1.www; r1.w = light_volumetric_parameters0.y + light_volumetric_parameters0.y; r2.w = 0.800000012 * light_parameters0.y; r4.xyz = -light_position_worldspace.xyz + r1.xyz; r3.w = dot(r4.xyz, r4.xyz); r4.w = rsqrt(r3.w); r5.xyz = r4.xyz * r4.www; r4.w = dot(r5.xyz, light_direction_worldspace.xyz); r2.w = cmp(r2.w >= r4.w); if (r2.w != 0) discard; r5.xyz = -light_position_worldspace.xyz + camera_position_worldspace.xyz; r2.w = dot(r5.xyz, r5.xyz); r2.w = rsqrt(r2.w); r5.xyz = r5.xyz * r2.www; r2.w = dot(r5.xyz, light_direction_worldspace.xyz); r2.w = cmp(light_parameters0.y >= r2.w); if (r2.w != 0) { r2.w = dot(light_direction_worldspace.xyz, r3.xyz); r4.w = light_parameters0.y * light_parameters0.y; r5.x = dot(light_direction_worldspace.xyz, r4.xyz); r4.x = dot(r3.xyz, r4.xyz); r4.y = r2.w * r2.w + -r4.w; r4.x = r4.w * r4.x; r2.w = r2.w * r5.x + -r4.x; r3.w = r4.w * r3.w; r3.w = r5.x * r5.x + -r3.w; r4.x = cmp(1.00000001e-007 < abs(r4.y)); r4.z = ~(int)r4.x; r3.w = r3.w * r4.y; r3.w = r2.w * r2.w + -r3.w; r4.w = cmp(1.00000001e-007 < r3.w); r5.x = ~(int)r4.w; r3.w = sqrt(r3.w); r4.y = rcp(r4.y); r2.w = -r3.w + -r2.w; r2.w = r2.w * r4.y; r3.w = r4.x ? r5.x : 0; if (r3.w != 0) discard; r2.w = r4.w ? r2.w : r1.w; if (r4.z != 0) discard; r1.w = r4.x ? r2.w : r1.w; } r0.w = sqrt(r0.w); r0.w = min(r0.w, r1.w); r0.w = trunc(r0.w); r4.xy = float2(0.0625,0.9375) * r0.ww; r4.zw = float2(0.125,0.125) * v0.yx; r5.xy = cmp(r4.zw >= -r4.zw); r4.zw = frac(abs(r4.zw)); r4.zw = r5.xy ? r4.zw : -r4.zw; r1.w = dot(r4.zw, float2(64,8)); r4.zw = float2(0.25,0.015625) * r1.ww; r5.xy = cmp(r4.zw >= -r4.zw); r4.zw = frac(abs(r4.zw)); r4.zw = r5.xy ? r4.zw : -r4.zw; r4.zw = float2(4,16) * r4.zw; r4.zw = (uint2)r4.zw; r1.w = dot(light_volumetric_random_ray_samples[r4.w].xyzw, icb[r4.z+0].xyzw); r1.w = r1.w * r0.w; r1.w = 0.0009765625 * r1.w; r0.xyz = r1.www * r2.xyz + r0.xyz; r1.xyz = r1.www * r3.xyz + r1.xyz; r1.w = saturate(light_parameters0.x + -light_parameters0.y); r2.w = 9.99999994e-009 + light_parameters0.z; r3.w = light_volumetric_parameters0.w * light_volumetric_parameters0.w; r4.z = light_attenuation_parameters.x + -light_attenuation_parameters.y; r4.z = 9.99999994e-009 + r4.z; r4.w = 9.99999994e-009 + light_attenuation_parameters.z; r5.xy = cmp(light_attenuation_parameters.ww == float2(0,1)); r5.zw = float2(795774.688,1.54999995) * light_volumetric_parameters0.zw; r3.w = light_volumetric_parameters0.w * r3.w; r3.w = -r3.w * 0.550000012 + r5.w; r5.w = -light_volumetric_parameters0.w * light_volumetric_parameters0.w + 1; r6.w = 1; r7.z = light_parameters1.z; r8.w = 1; r9.z = light_parameters1.z; r6.xyz = r0.xyz; r10.xyz = r1.xyz; r11.xyz = float3(0,0,0); r7.w = r4.y; while (true) { r9.w = cmp(0 >= r7.w); if (r9.w != 0) break; r6.xyz = r4.xxx * r2.xyz + r6.xyz; r10.xyz = r4.xxx * r3.xyz + r10.xyz; r12.xyz = light_position_worldspace.xyz + -r10.xyz; r9.w = dot(r12.xyz, r12.xyz); r10.w = sqrt(r9.w); r12.xyz = r12.xyz / r10.www; r11.w = saturate(dot(-light_direction_worldspace.xyz, r12.xyz)); r11.w = saturate(-light_parameters0.y + r11.w); r11.w = r11.w / r1.w; r11.w = log2(r11.w); r11.w = r11.w * r2.w; r11.w = exp2(r11.w); if (r5.x != 0) { r12.w = -light_attenuation_parameters.y + r10.w; r12.w = max(0, r12.w); r12.w = r12.w / r4.z; r12.w = 1 + -r12.w; r12.w = max(0, r12.w); r12.w = log2(r12.w); r12.w = r12.w * r4.w; r12.w = exp2(r12.w); r12.w = min(1, r12.w); } else { r10.w = r10.w / light_attenuation_parameters.x; r10.w = r10.w * r10.w; r10.w = saturate(-r10.w * r10.w + 1); r10.w = r10.w * r10.w; r9.w = 1 + r9.w; r9.w = r10.w / r9.w; r12.w = r5.y ? r9.w : 0; } r9.w = r12.w * r11.w; r9.w = saturate(light_volumetric_parameters3.x * r9.w); r13.x = dot(r6.xyzw, light_projection_matrix._m00_m10_m20_m30); r13.y = dot(r6.xyzw, light_projection_matrix._m01_m11_m21_m31); r10.w = dot(r6.xyzw, light_projection_matrix._m03_m13_m23_m33); r13.xy = r13.xy / r10.ww; r13.xy = r13.xy * float2(0.5,0.5) + float2(0.5,0.5); r10.w = 1 + -r13.y; r11.w = dot(r3.xyz, r12.xyz); r11.w = -r3.w * r11.w + 1; r11.w = r11.w * r11.w; r11.w = r5.w / r11.w; r12.x = cmp(r13.x >= 0); r12.y = cmp(r10.w >= 0); r12.x = r12.y ? r12.x : 0; r12.y = cmp(1 >= r13.x); r12.x = r12.y ? r12.x : 0; r10.w = cmp(1 >= r10.w); r10.w = r10.w ? r12.x : 0; if (r10.w != 0) { r13.z = 1 + -r13.y; r7.xy = r13.xz * light_projector_parameters.zw + light_projector_parameters.xy; r12.xyz = lightImageArraySampler.SampleLevel(sampler_bilinear_wrap_mipBiasNeg2_s, r7.xyz, 0).xyz; r12.xyz = float3(-1,-1,-1) + r12.xyz; r12.xyz = saturate(light_parameters1.www * r12.xyz + float3(1,1,1)); } else { r12.xyz = float3(1,1,1); } r7.x = dot(r6.xyz, r6.xyz); r7.x = sqrt(r7.x); r7.x = 0.00100000005 + r7.x; r7.y = 1024 + -r7.x; r7.x = light_volumetric_parameters3.y * r7.y + r7.x; r7.y = rcp(r7.x); r10.w = 9.99999975e-005 * r11.w; r12.xyz = r12.xyz * r5.zzz; r7.y = r7.y * r7.y; r12.xyz = r7.yyy * r12.xyz; r12.xyz = r12.xyz * r10.www; r7.x = -0.000144269507 * r7.x; r7.x = exp2(r7.x); r12.xyz = r12.xyz * r7.xxx; r7.x = -0.000144269507 * r7.w; r7.x = exp2(r7.x); r12.xyz = r12.xyz * r7.xxx; r12.xyz = r12.xyz * r4.xxx; r11.xyz = r12.xyz * r9.www + r11.xyz; r7.x = -r0.w * 0.0625 + r7.w; r7.y = cmp(0 < r7.x); if (r7.y != 0) { r8.xyz = r4.xxx * r2.xyz + r6.xyz; r10.xyz = r4.xxx * r3.xyz + r10.xyz; r12.xyz = light_position_worldspace.xyz + -r10.xyz; r7.y = dot(r12.xyz, r12.xyz); r9.w = sqrt(r7.y); r12.xyz = r12.xyz / r9.www; r10.w = saturate(dot(-light_direction_worldspace.xyz, r12.xyz)); r10.w = saturate(-light_parameters0.y + r10.w); r10.w = r10.w / r1.w; r10.w = log2(r10.w); r10.w = r10.w * r2.w; r10.w = exp2(r10.w); if (r5.x != 0) { r11.w = -light_attenuation_parameters.y + r9.w; r11.w = max(0, r11.w); r11.w = r11.w / r4.z; r11.w = 1 + -r11.w; r11.w = max(0, r11.w); r11.w = log2(r11.w); r11.w = r11.w * r4.w; r11.w = exp2(r11.w); r11.w = min(1, r11.w); } else { r9.w = r9.w / light_attenuation_parameters.x; r9.w = r9.w * r9.w; r9.w = saturate(-r9.w * r9.w + 1); r9.w = r9.w * r9.w; r7.y = 1 + r7.y; r7.y = r9.w / r7.y; r11.w = r5.y ? r7.y : 0; } r7.y = r11.w * r10.w; r7.y = saturate(light_volumetric_parameters3.x * r7.y); r13.x = dot(r8.xyzw, light_projection_matrix._m00_m10_m20_m30); r13.y = dot(r8.xyzw, light_projection_matrix._m01_m11_m21_m31); r9.w = dot(r8.xyzw, light_projection_matrix._m03_m13_m23_m33); r13.xy = r13.xy / r9.ww; r13.xy = r13.xy * float2(0.5,0.5) + float2(0.5,0.5); r9.w = 1 + -r13.y; r10.w = dot(r3.xyz, r12.xyz); r10.w = -r3.w * r10.w + 1; r10.w = r10.w * r10.w; r10.w = r5.w / r10.w; r11.w = cmp(r13.x >= 0); r12.x = cmp(r9.w >= 0); r11.w = r11.w ? r12.x : 0; r12.x = cmp(1 >= r13.x); r11.w = r11.w ? r12.x : 0; r9.w = cmp(1 >= r9.w); r9.w = r9.w ? r11.w : 0; if (r9.w != 0) { r13.z = 1 + -r13.y; r9.xy = r13.xz * light_projector_parameters.zw + light_projector_parameters.xy; r9.xyw = lightImageArraySampler.SampleLevel(sampler_bilinear_wrap_mipBiasNeg2_s, r9.xyz, 0).xyz; r9.xyw = float3(-1,-1,-1) + r9.xyw; r9.xyw = saturate(light_parameters1.www * r9.xyw + float3(1,1,1)); } else { r9.xyw = float3(1,1,1); } r11.w = dot(r8.xyz, r8.xyz); r11.w = sqrt(r11.w); r11.w = 0.00100000005 + r11.w; r12.x = 1024 + -r11.w; r11.w = light_volumetric_parameters3.y * r12.x + r11.w; r12.x = rcp(r11.w); r10.w = 9.99999975e-005 * r10.w; r9.xyw = r9.xyw * r5.zzz; r12.x = r12.x * r12.x; r9.xyw = r12.xxx * r9.xyw; r9.xyw = r10.www * r9.xyw; r10.w = -0.000144269507 * r11.w; r10.w = exp2(r10.w); r9.xyw = r10.www * r9.xyw; r10.w = -0.000144269507 * r7.x; r10.w = exp2(r10.w); r9.xyw = r10.www * r9.xyw; r9.xyw = r9.xyw * r4.xxx; r11.xyz = r9.xyw * r7.yyy + r11.xyz; r6.xyz = r8.xyz; } r7.w = -r0.w * 0.0625 + r7.x; } r0.xyz = max(float3(0,0,0), r11.xyz); r0.xyz = min(float3(16,16,16), r0.xyz); o0.xyz = light_color.xyz * r0.xyz; o0.w = 0; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.20499 // // using 3Dmigoto v1.2.50 on Sat May 20 21:30:11 2017 // // // Buffer Definitions: // // cbuffer PER_STAGE // { // // float4x4 inverse_view_matrix; // Offset: 0 Size: 64 // float4 camera_position_worldspace; // Offset: 64 Size: 16 // float4 camera_clip_distances; // Offset: 80 Size: 16 // // } // // cbuffer PER_FRAME // { // // float4 light_volumetric_random_ray_samples[16];// Offset: 0 Size: 256 // // } // // cbuffer PER_LIGHT // { // // float4x4 light_view_matrix; // Offset: 0 Size: 64 // float4x4 light_projection_matrix; // Offset: 64 Size: 64 // float4 light_position_worldspace; // Offset: 128 Size: 16 // float4 light_direction_worldspace; // Offset: 144 Size: 16 // float4 light_color; // Offset: 160 Size: 16 // float4 light_parameters0; // Offset: 176 Size: 16 // float4 light_parameters1; // Offset: 192 Size: 16 // float4 light_box_parameters; // Offset: 208 Size: 16 [unused] // float4 light_attenuation_parameters;// Offset: 224 Size: 16 // float4 light_volumetric_parameters0;// Offset: 240 Size: 16 // float4 light_volumetric_parameters1;// Offset: 256 Size: 16 [unused] // float4 light_volumetric_parameters2;// Offset: 272 Size: 16 [unused] // float4 light_volumetric_parameters3;// Offset: 288 Size: 16 // float4 shadow_parameters; // Offset: 304 Size: 16 [unused] // float4 light_projector_parameters; // Offset: 320 Size: 16 // // } // // cbuffer PER_INSTANCE // { // // float4x4 inverse_world_matrix; // Offset: 0 Size: 64 [unused] // float4 rendertarget_size; // Offset: 64 Size: 16 // float4 viewport_pos; // Offset: 80 Size: 16 [unused] // float4 viewport_size; // Offset: 96 Size: 16 [unused] // float4 shadow_buffer_params; // Offset: 112 Size: 16 [unused] // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // sampler_point_clamp sampler NA NA 1 1 // sampler_bilinear_wrap_mipBiasNeg2 sampler NA NA 10 1 // depthSampler texture float4 2d 0 1 // lightImageArraySampler texture float4 2darray 1 1 // PER_STAGE cbuffer NA NA 0 1 // PER_FRAME cbuffer NA NA 1 1 // PER_LIGHT cbuffer NA NA 2 1 // PER_INSTANCE cbuffer NA NA 3 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float xy // Texcoord 0 xyzw 1 NONE float xyz // Texcoord 1 xyzw 2 NONE float z // Texcoord 2 xyzw 3 NONE float xyz // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, { 0, 1.000000, 0, 0}, { 0, 0, 1.000000, 0}, { 0, 0, 0, 1.000000} } dcl_constantbuffer cb0[6], immediateIndexed dcl_constantbuffer cb1[16], dynamicIndexed dcl_constantbuffer cb2[21], immediateIndexed dcl_constantbuffer cb3[5], immediateIndexed dcl_sampler s1, mode_default dcl_sampler s10, mode_default dcl_resource_texture2d (float,float,float,float) t0 dcl_resource_texture2darray (float,float,float,float) t1 dcl_input_ps_siv linear noperspective v0.xy, position dcl_input_ps linear v1.xyz dcl_input_ps linear v2.z dcl_input_ps linear v3.xyz dcl_output o0.xyzw dcl_temps 14 mul r0.xy, v0.xyxx, cb3[4].zwzz sample_l_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t0.xyzw, s1, l(0.000000) add r0.x, r0.x, -cb0[5].z div r0.x, cb0[5].w, r0.x div r0.y, r0.x, cb0[5].y div r0.z, v2.z, cb0[5].y lt r0.y, r0.y, r0.z if_nz r0.y div r0.y, cb0[5].y, v3.z mul r0.yzw, r0.yyyy, v3.xxyz div r0.yzw, r0.yyzw, cb0[5].yyyy mul r0.xyz, r0.yzwy, r0.xxxx mov r0.w, l(1.000000) dp4 r1.x, r0.xyzw, cb0[0].xyzw dp4 r1.y, r0.xyzw, cb0[1].xyzw dp4 r1.z, r0.xyzw, cb0[2].xyzw else mov r1.xyz, v1.xyzx endif mov r1.w, l(1.000000) dp4 r0.x, r1.xyzw, cb2[0].xyzw dp4 r0.y, r1.xyzw, cb2[1].xyzw dp4 r0.z, r1.xyzw, cb2[2].xyzw mov r2.xyz, cb0[4].xyzx mov r2.w, l(1.000000) dp4 r3.x, r2.xyzw, cb2[0].xyzw dp4 r3.y, r2.xyzw, cb2[1].xyzw dp4 r3.z, r2.xyzw, cb2[2].xyzw add r2.xyz, -r0.xyzx, r3.xyzx dp3 r0.w, r2.xyzx, r2.xyzx rsq r1.w, r0.w mul r2.xyz, r1.wwww, r2.xyzx add r3.xyz, -r1.xyzx, cb0[4].xyzx dp3 r1.w, r3.xyzx, r3.xyzx rsq r1.w, r1.w mul r3.xyz, r1.wwww, r3.xyzx add r1.w, cb2[15].y, cb2[15].y mul r2.w, cb2[11].y, l(0.800000) add r4.xyz, r1.xyzx, -cb2[8].xyzx dp3 r3.w, r4.xyzx, r4.xyzx rsq r4.w, r3.w mul r5.xyz, r4.wwww, r4.xyzx dp3 r4.w, r5.xyzx, cb2[9].xyzx ge r2.w, r2.w, r4.w discard_nz r2.w add r5.xyz, cb0[4].xyzx, -cb2[8].xyzx dp3 r2.w, r5.xyzx, r5.xyzx rsq r2.w, r2.w mul r5.xyz, r2.wwww, r5.xyzx dp3 r2.w, r5.xyzx, cb2[9].xyzx ge r2.w, cb2[11].y, r2.w if_nz r2.w dp3 r2.w, cb2[9].xyzx, r3.xyzx mul r4.w, cb2[11].y, cb2[11].y dp3 r5.x, cb2[9].xyzx, r4.xyzx dp3 r4.x, r3.xyzx, r4.xyzx mad r4.y, r2.w, r2.w, -r4.w mul r4.x, r4.x, r4.w mad r2.w, r2.w, r5.x, -r4.x mul r3.w, r3.w, r4.w mad r3.w, r5.x, r5.x, -r3.w lt r4.x, l(1.000000012E-007), |r4.y| not r4.z, r4.x mul r3.w, r4.y, r3.w mad r3.w, r2.w, r2.w, -r3.w lt r4.w, l(1.000000012E-007), r3.w not r5.x, r4.w sqrt r3.w, r3.w rcp r4.y, r4.y add r2.w, -r2.w, -r3.w mul r2.w, r4.y, r2.w and r3.w, r4.x, r5.x discard_nz r3.w movc r2.w, r4.w, r2.w, r1.w discard_nz r4.z movc r1.w, r4.x, r2.w, r1.w endif sqrt r0.w, r0.w min r0.w, r1.w, r0.w round_z r0.w, r0.w mul r4.xy, r0.wwww, l(0.062500, 0.937500, 0.000000, 0.000000) mul r4.zw, v0.yyyx, l(0.000000, 0.000000, 0.125000, 0.125000) ge r5.xy, r4.zwzz, -r4.zwzz frc r4.zw, |r4.zzzw| movc r4.zw, r5.xxxy, r4.zzzw, -r4.zzzw dp2 r1.w, r4.zwzz, l(64.000000, 8.000000, 0.000000, 0.000000) mul r4.zw, r1.wwww, l(0.000000, 0.000000, 0.250000, 0.015625) ge r5.xy, r4.zwzz, -r4.zwzz frc r4.zw, |r4.zzzw| movc r4.zw, r5.xxxy, r4.zzzw, -r4.zzzw mul r4.zw, r4.zzzw, l(0.000000, 0.000000, 4.000000, 16.000000) ftou r4.zw, r4.zzzw dp4 r1.w, cb1[r4.w + 0].xyzw, icb[r4.z + 0].xyzw mul r1.w, r0.w, r1.w mul r1.w, r1.w, l(0.000976562500) mad r0.xyz, r1.wwww, r2.xyzx, r0.xyzx mad r1.xyz, r1.wwww, r3.xyzx, r1.xyzx add_sat r1.w, -cb2[11].y, cb2[11].x add r2.w, cb2[11].z, l(9.999999939E-009) mul r3.w, cb2[15].w, cb2[15].w add r4.z, -cb2[14].y, cb2[14].x add r4.z, r4.z, l(9.999999939E-009) add r4.w, cb2[14].z, l(9.999999939E-009) eq r5.xy, cb2[14].wwww, l(0.000000, 1.000000, 0.000000, 0.000000) mul r5.zw, cb2[15].zzzw, l(0.000000, 0.000000, 795774.687500, 1.550000) mul r3.w, r3.w, cb2[15].w mad r3.w, -r3.w, l(0.550000), r5.w mad r5.w, -cb2[15].w, cb2[15].w, l(1.000000) mov r6.w, l(1.000000) mov r7.z, cb2[12].z mov r8.w, l(1.000000) mov r9.z, cb2[12].z mov r6.xyz, r0.xyzx mov r10.xyz, r1.xyzx mov r11.xyz, l(0,0,0,0) mov r7.w, r4.y loop ge r9.w, l(0.000000), r7.w breakc_nz r9.w mad r6.xyz, r4.xxxx, r2.xyzx, r6.xyzx mad r10.xyz, r4.xxxx, r3.xyzx, r10.xyzx add r12.xyz, -r10.xyzx, cb2[8].xyzx dp3 r9.w, r12.xyzx, r12.xyzx sqrt r10.w, r9.w div r12.xyz, r12.xyzx, r10.wwww dp3_sat r11.w, -cb2[9].xyzx, r12.xyzx add_sat r11.w, r11.w, -cb2[11].y div r11.w, r11.w, r1.w log r11.w, r11.w mul r11.w, r2.w, r11.w exp r11.w, r11.w if_nz r5.x add r12.w, r10.w, -cb2[14].y max r12.w, r12.w, l(0.000000) div r12.w, r12.w, r4.z add r12.w, -r12.w, l(1.000000) max r12.w, r12.w, l(0.000000) log r12.w, r12.w mul r12.w, r4.w, r12.w exp r12.w, r12.w min r12.w, r12.w, l(1.000000) else div r10.w, r10.w, cb2[14].x mul r10.w, r10.w, r10.w mad_sat r10.w, -r10.w, r10.w, l(1.000000) mul r10.w, r10.w, r10.w add r9.w, r9.w, l(1.000000) div r9.w, r10.w, r9.w and r12.w, r5.y, r9.w endif mul r9.w, r11.w, r12.w mul_sat r9.w, r9.w, cb2[18].x dp4 r13.x, r6.xyzw, cb2[4].xyzw dp4 r13.y, r6.xyzw, cb2[5].xyzw dp4 r10.w, r6.xyzw, cb2[7].xyzw div r13.xy, r13.xyxx, r10.wwww mad r13.xy, r13.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) add r10.w, -r13.y, l(1.000000) dp3 r11.w, r3.xyzx, r12.xyzx mad r11.w, -r3.w, r11.w, l(1.000000) mul r11.w, r11.w, r11.w div r11.w, r5.w, r11.w ge r12.x, r13.x, l(0.000000) ge r12.y, r10.w, l(0.000000) and r12.x, r12.y, r12.x ge r12.y, l(1.000000), r13.x and r12.x, r12.y, r12.x ge r10.w, l(1.000000), r10.w and r10.w, r10.w, r12.x if_nz r10.w add r13.z, -r13.y, l(1.000000) mad r7.xy, r13.xzxx, cb2[20].zwzz, cb2[20].xyxx sample_l_indexable(texture2darray)(float,float,float,float) r12.xyz, r7.xyzx, t1.xyzw, s10, l(0.000000) add r12.xyz, r12.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) mad_sat r12.xyz, cb2[12].wwww, r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) else mov r12.xyz, l(1.000000,1.000000,1.000000,0) endif dp3 r7.x, r6.xyzx, r6.xyzx sqrt r7.x, r7.x add r7.x, r7.x, l(0.001000) add r7.y, -r7.x, l(1024.000000) mad r7.x, cb2[18].y, r7.y, r7.x rcp r7.y, r7.x mul r10.w, r11.w, l(0.000100) mul r12.xyz, r5.zzzz, r12.xyzx mul r7.y, r7.y, r7.y mul r12.xyz, r12.xyzx, r7.yyyy mul r12.xyz, r10.wwww, r12.xyzx mul r7.x, r7.x, l(-0.000144269507) exp r7.x, r7.x mul r12.xyz, r7.xxxx, r12.xyzx mul r7.x, r7.w, l(-0.000144269507) exp r7.x, r7.x mul r12.xyz, r7.xxxx, r12.xyzx mul r12.xyz, r4.xxxx, r12.xyzx mad r11.xyz, r12.xyzx, r9.wwww, r11.xyzx mad r7.x, -r0.w, l(0.062500), r7.w lt r7.y, l(0.000000), r7.x if_nz r7.y mad r8.xyz, r4.xxxx, r2.xyzx, r6.xyzx mad r10.xyz, r4.xxxx, r3.xyzx, r10.xyzx add r12.xyz, -r10.xyzx, cb2[8].xyzx dp3 r7.y, r12.xyzx, r12.xyzx sqrt r9.w, r7.y div r12.xyz, r12.xyzx, r9.wwww dp3_sat r10.w, -cb2[9].xyzx, r12.xyzx add_sat r10.w, r10.w, -cb2[11].y div r10.w, r10.w, r1.w log r10.w, r10.w mul r10.w, r2.w, r10.w exp r10.w, r10.w if_nz r5.x add r11.w, r9.w, -cb2[14].y max r11.w, r11.w, l(0.000000) div r11.w, r11.w, r4.z add r11.w, -r11.w, l(1.000000) max r11.w, r11.w, l(0.000000) log r11.w, r11.w mul r11.w, r4.w, r11.w exp r11.w, r11.w min r11.w, r11.w, l(1.000000) else div r9.w, r9.w, cb2[14].x mul r9.w, r9.w, r9.w mad_sat r9.w, -r9.w, r9.w, l(1.000000) mul r9.w, r9.w, r9.w add r7.y, r7.y, l(1.000000) div r7.y, r9.w, r7.y and r11.w, r5.y, r7.y endif mul r7.y, r10.w, r11.w mul_sat r7.y, r7.y, cb2[18].x dp4 r13.x, r8.xyzw, cb2[4].xyzw dp4 r13.y, r8.xyzw, cb2[5].xyzw dp4 r9.w, r8.xyzw, cb2[7].xyzw div r13.xy, r13.xyxx, r9.wwww mad r13.xy, r13.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) add r9.w, -r13.y, l(1.000000) dp3 r10.w, r3.xyzx, r12.xyzx mad r10.w, -r3.w, r10.w, l(1.000000) mul r10.w, r10.w, r10.w div r10.w, r5.w, r10.w ge r11.w, r13.x, l(0.000000) ge r12.x, r9.w, l(0.000000) and r11.w, r11.w, r12.x ge r12.x, l(1.000000), r13.x and r11.w, r11.w, r12.x ge r9.w, l(1.000000), r9.w and r9.w, r9.w, r11.w if_nz r9.w add r13.z, -r13.y, l(1.000000) mad r9.xy, r13.xzxx, cb2[20].zwzz, cb2[20].xyxx sample_l_indexable(texture2darray)(float,float,float,float) r9.xyw, r9.xyzx, t1.xywz, s10, l(0.000000) add r9.xyw, r9.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000) mad_sat r9.xyw, cb2[12].wwww, r9.xyxw, l(1.000000, 1.000000, 0.000000, 1.000000) else mov r9.xyw, l(1.000000,1.000000,0,1.000000) endif dp3 r11.w, r8.xyzx, r8.xyzx sqrt r11.w, r11.w add r11.w, r11.w, l(0.001000) add r12.x, -r11.w, l(1024.000000) mad r11.w, cb2[18].y, r12.x, r11.w rcp r12.x, r11.w mul r10.w, r10.w, l(0.000100) mul r9.xyw, r5.zzzz, r9.xyxw mul r12.x, r12.x, r12.x mul r9.xyw, r9.xyxw, r12.xxxx mul r9.xyw, r9.xyxw, r10.wwww mul r10.w, r11.w, l(-0.000144269507) exp r10.w, r10.w mul r9.xyw, r9.xyxw, r10.wwww mul r10.w, r7.x, l(-0.000144269507) exp r10.w, r10.w mul r9.xyw, r9.xyxw, r10.wwww mul r9.xyw, r4.xxxx, r9.xyxw mad r11.xyz, r9.xywx, r7.yyyy, r11.xyzx mov r6.xyz, r8.xyzx endif mad r7.w, -r0.w, l(0.062500), r7.x endloop max r0.xyz, r11.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) min r0.xyz, r0.xyzx, l(16.000000, 16.000000, 16.000000, 0.000000) mul o0.xyz, r0.xyzx, cb2[10].xyzx mov o0.w, l(0) ret // Approximately 287 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] Anyone can give me any advice? Also, I see these FOG/Lights will ONLY appear in BOTH eyes if you are running SLI :( On a single GPU they only appear in the RIGHT eye:( I can easily disable them, but I would like to fix them if possible:) Game also suffers from some weird clipping like the Metro Redux Games:( but NOT that bad! Cheers! Helifax
Right... I managed to fix:
- Shadows
- Lights
- Main Menu + UI

However there are certain FOG like lights that I currently have no idea on how to fix:

// ---- Created with 3Dmigoto v1.2.50 on Sat May 20 21:30:11 2017

cbuffer PER_STAGE : register(b0)
{
float4x4 inverse_view_matrix : packoffset(c0);
float4 camera_position_worldspace : packoffset(c4);
float4 camera_clip_distances : packoffset(c5);
}

cbuffer PER_FRAME : register(b1)
{
float4 light_volumetric_random_ray_samples[16] : packoffset(c0);
}

cbuffer PER_LIGHT : register(b2)
{
float4x4 light_view_matrix : packoffset(c0);
float4x4 light_projection_matrix : packoffset(c4);
float4 light_position_worldspace : packoffset(c8);
float4 light_direction_worldspace : packoffset(c9);
float4 light_color : packoffset(c10);
float4 light_parameters0 : packoffset(c11);
float4 light_parameters1 : packoffset(c12);
float4 light_box_parameters : packoffset(c13);
float4 light_attenuation_parameters : packoffset(c14);
float4 light_volumetric_parameters0 : packoffset(c15);
float4 light_volumetric_parameters1 : packoffset(c16);
float4 light_volumetric_parameters2 : packoffset(c17);
float4 light_volumetric_parameters3 : packoffset(c18);
float4 shadow_parameters : packoffset(c19);
float4 light_projector_parameters : packoffset(c20);
}

cbuffer PER_INSTANCE : register(b3)
{
float4x4 inverse_world_matrix : packoffset(c0);
float4 rendertarget_size : packoffset(c4);
float4 viewport_pos : packoffset(c5);
float4 viewport_size : packoffset(c6);
float4 shadow_buffer_params : packoffset(c7);
}

SamplerState sampler_point_clamp_s : register(s1);
SamplerState sampler_bilinear_wrap_mipBiasNeg2_s : register(s10);
Texture2D<float4> depthSampler : register(t0);
Texture2DArray<float4> lightImageArraySampler : register(t1);


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


void main(
float4 v0 : SV_Position0,
float4 v1 : Texcoord0,
float4 v2 : Texcoord1,
float4 v3 : Texcoord2,
out float4 o0 : SV_Target0)
{
const float4 icb[] = { { 1.000000, 0, 0, 0},
{ 0, 1.000000, 0, 0},
{ 0, 0, 1.000000, 0},
{ 0, 0, 0, 1.000000} };
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13;
uint4 bitmask, uiDest;
float4 fDest;

r0.xy = rendertarget_size.zw * v0.xy;
r0.x = depthSampler.SampleLevel(sampler_point_clamp_s, r0.xy, 0).x;
r0.x = -camera_clip_distances.z + r0.x;
r0.x = camera_clip_distances.w / r0.x;
r0.y = r0.x / camera_clip_distances.y;
r0.z = v2.z / camera_clip_distances.y;
r0.y = cmp(r0.y < r0.z);
if (r0.y != 0) {
r0.y = camera_clip_distances.y / v3.z;
r0.yzw = v3.xyz * r0.yyy;
r0.yzw = r0.yzw / camera_clip_distances.yyy;
r0.xyz = r0.xxx * r0.yzw;
r0.w = 1;
r1.x = dot(r0.xyzw, inverse_view_matrix._m00_m10_m20_m30);
r1.y = dot(r0.xyzw, inverse_view_matrix._m01_m11_m21_m31);
r1.z = dot(r0.xyzw, inverse_view_matrix._m02_m12_m22_m32);
} else {
r1.xyz = v1.xyz;
}
r1.w = 1;
r0.x = dot(r1.xyzw, light_view_matrix._m00_m10_m20_m30);
r0.y = dot(r1.xyzw, light_view_matrix._m01_m11_m21_m31);
r0.z = dot(r1.xyzw, light_view_matrix._m02_m12_m22_m32);
r2.xyz = camera_position_worldspace.xyz;
r2.w = 1;
r3.x = dot(r2.xyzw, light_view_matrix._m00_m10_m20_m30);
r3.y = dot(r2.xyzw, light_view_matrix._m01_m11_m21_m31);
r3.z = dot(r2.xyzw, light_view_matrix._m02_m12_m22_m32);
r2.xyz = r3.xyz + -r0.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r1.w = rsqrt(r0.w);
r2.xyz = r2.xyz * r1.www;
r3.xyz = camera_position_worldspace.xyz + -r1.xyz;
r1.w = dot(r3.xyz, r3.xyz);
r1.w = rsqrt(r1.w);
r3.xyz = r3.xyz * r1.www;
r1.w = light_volumetric_parameters0.y + light_volumetric_parameters0.y;
r2.w = 0.800000012 * light_parameters0.y;
r4.xyz = -light_position_worldspace.xyz + r1.xyz;
r3.w = dot(r4.xyz, r4.xyz);
r4.w = rsqrt(r3.w);
r5.xyz = r4.xyz * r4.www;
r4.w = dot(r5.xyz, light_direction_worldspace.xyz);
r2.w = cmp(r2.w >= r4.w);
if (r2.w != 0) discard;
r5.xyz = -light_position_worldspace.xyz + camera_position_worldspace.xyz;
r2.w = dot(r5.xyz, r5.xyz);
r2.w = rsqrt(r2.w);
r5.xyz = r5.xyz * r2.www;
r2.w = dot(r5.xyz, light_direction_worldspace.xyz);
r2.w = cmp(light_parameters0.y >= r2.w);
if (r2.w != 0) {
r2.w = dot(light_direction_worldspace.xyz, r3.xyz);
r4.w = light_parameters0.y * light_parameters0.y;
r5.x = dot(light_direction_worldspace.xyz, r4.xyz);
r4.x = dot(r3.xyz, r4.xyz);
r4.y = r2.w * r2.w + -r4.w;
r4.x = r4.w * r4.x;
r2.w = r2.w * r5.x + -r4.x;
r3.w = r4.w * r3.w;
r3.w = r5.x * r5.x + -r3.w;
r4.x = cmp(1.00000001e-007 < abs(r4.y));
r4.z = ~(int)r4.x;
r3.w = r3.w * r4.y;
r3.w = r2.w * r2.w + -r3.w;
r4.w = cmp(1.00000001e-007 < r3.w);
r5.x = ~(int)r4.w;
r3.w = sqrt(r3.w);
r4.y = rcp(r4.y);
r2.w = -r3.w + -r2.w;
r2.w = r2.w * r4.y;
r3.w = r4.x ? r5.x : 0;
if (r3.w != 0) discard;
r2.w = r4.w ? r2.w : r1.w;
if (r4.z != 0) discard;
r1.w = r4.x ? r2.w : r1.w;
}
r0.w = sqrt(r0.w);
r0.w = min(r0.w, r1.w);
r0.w = trunc(r0.w);
r4.xy = float2(0.0625,0.9375) * r0.ww;
r4.zw = float2(0.125,0.125) * v0.yx;
r5.xy = cmp(r4.zw >= -r4.zw);
r4.zw = frac(abs(r4.zw));
r4.zw = r5.xy ? r4.zw : -r4.zw;
r1.w = dot(r4.zw, float2(64,8));
r4.zw = float2(0.25,0.015625) * r1.ww;
r5.xy = cmp(r4.zw >= -r4.zw);
r4.zw = frac(abs(r4.zw));
r4.zw = r5.xy ? r4.zw : -r4.zw;
r4.zw = float2(4,16) * r4.zw;
r4.zw = (uint2)r4.zw;
r1.w = dot(light_volumetric_random_ray_samples[r4.w].xyzw, icb[r4.z+0].xyzw);
r1.w = r1.w * r0.w;
r1.w = 0.0009765625 * r1.w;
r0.xyz = r1.www * r2.xyz + r0.xyz;
r1.xyz = r1.www * r3.xyz + r1.xyz;
r1.w = saturate(light_parameters0.x + -light_parameters0.y);
r2.w = 9.99999994e-009 + light_parameters0.z;
r3.w = light_volumetric_parameters0.w * light_volumetric_parameters0.w;
r4.z = light_attenuation_parameters.x + -light_attenuation_parameters.y;
r4.z = 9.99999994e-009 + r4.z;
r4.w = 9.99999994e-009 + light_attenuation_parameters.z;
r5.xy = cmp(light_attenuation_parameters.ww == float2(0,1));
r5.zw = float2(795774.688,1.54999995) * light_volumetric_parameters0.zw;
r3.w = light_volumetric_parameters0.w * r3.w;
r3.w = -r3.w * 0.550000012 + r5.w;
r5.w = -light_volumetric_parameters0.w * light_volumetric_parameters0.w + 1;
r6.w = 1;
r7.z = light_parameters1.z;
r8.w = 1;
r9.z = light_parameters1.z;
r6.xyz = r0.xyz;
r10.xyz = r1.xyz;
r11.xyz = float3(0,0,0);
r7.w = r4.y;
while (true) {
r9.w = cmp(0 >= r7.w);
if (r9.w != 0) break;
r6.xyz = r4.xxx * r2.xyz + r6.xyz;
r10.xyz = r4.xxx * r3.xyz + r10.xyz;
r12.xyz = light_position_worldspace.xyz + -r10.xyz;
r9.w = dot(r12.xyz, r12.xyz);
r10.w = sqrt(r9.w);
r12.xyz = r12.xyz / r10.www;
r11.w = saturate(dot(-light_direction_worldspace.xyz, r12.xyz));
r11.w = saturate(-light_parameters0.y + r11.w);
r11.w = r11.w / r1.w;
r11.w = log2(r11.w);
r11.w = r11.w * r2.w;
r11.w = exp2(r11.w);
if (r5.x != 0) {
r12.w = -light_attenuation_parameters.y + r10.w;
r12.w = max(0, r12.w);
r12.w = r12.w / r4.z;
r12.w = 1 + -r12.w;
r12.w = max(0, r12.w);
r12.w = log2(r12.w);
r12.w = r12.w * r4.w;
r12.w = exp2(r12.w);
r12.w = min(1, r12.w);
} else {
r10.w = r10.w / light_attenuation_parameters.x;
r10.w = r10.w * r10.w;
r10.w = saturate(-r10.w * r10.w + 1);
r10.w = r10.w * r10.w;
r9.w = 1 + r9.w;
r9.w = r10.w / r9.w;
r12.w = r5.y ? r9.w : 0;
}
r9.w = r12.w * r11.w;
r9.w = saturate(light_volumetric_parameters3.x * r9.w);
r13.x = dot(r6.xyzw, light_projection_matrix._m00_m10_m20_m30);
r13.y = dot(r6.xyzw, light_projection_matrix._m01_m11_m21_m31);
r10.w = dot(r6.xyzw, light_projection_matrix._m03_m13_m23_m33);
r13.xy = r13.xy / r10.ww;
r13.xy = r13.xy * float2(0.5,0.5) + float2(0.5,0.5);
r10.w = 1 + -r13.y;
r11.w = dot(r3.xyz, r12.xyz);
r11.w = -r3.w * r11.w + 1;
r11.w = r11.w * r11.w;
r11.w = r5.w / r11.w;
r12.x = cmp(r13.x >= 0);
r12.y = cmp(r10.w >= 0);
r12.x = r12.y ? r12.x : 0;
r12.y = cmp(1 >= r13.x);
r12.x = r12.y ? r12.x : 0;
r10.w = cmp(1 >= r10.w);
r10.w = r10.w ? r12.x : 0;
if (r10.w != 0) {
r13.z = 1 + -r13.y;
r7.xy = r13.xz * light_projector_parameters.zw + light_projector_parameters.xy;
r12.xyz = lightImageArraySampler.SampleLevel(sampler_bilinear_wrap_mipBiasNeg2_s, r7.xyz, 0).xyz;
r12.xyz = float3(-1,-1,-1) + r12.xyz;
r12.xyz = saturate(light_parameters1.www * r12.xyz + float3(1,1,1));
} else {
r12.xyz = float3(1,1,1);
}
r7.x = dot(r6.xyz, r6.xyz);
r7.x = sqrt(r7.x);
r7.x = 0.00100000005 + r7.x;
r7.y = 1024 + -r7.x;
r7.x = light_volumetric_parameters3.y * r7.y + r7.x;
r7.y = rcp(r7.x);
r10.w = 9.99999975e-005 * r11.w;
r12.xyz = r12.xyz * r5.zzz;
r7.y = r7.y * r7.y;
r12.xyz = r7.yyy * r12.xyz;
r12.xyz = r12.xyz * r10.www;
r7.x = -0.000144269507 * r7.x;
r7.x = exp2(r7.x);
r12.xyz = r12.xyz * r7.xxx;
r7.x = -0.000144269507 * r7.w;
r7.x = exp2(r7.x);
r12.xyz = r12.xyz * r7.xxx;
r12.xyz = r12.xyz * r4.xxx;
r11.xyz = r12.xyz * r9.www + r11.xyz;
r7.x = -r0.w * 0.0625 + r7.w;
r7.y = cmp(0 < r7.x);
if (r7.y != 0) {
r8.xyz = r4.xxx * r2.xyz + r6.xyz;
r10.xyz = r4.xxx * r3.xyz + r10.xyz;
r12.xyz = light_position_worldspace.xyz + -r10.xyz;
r7.y = dot(r12.xyz, r12.xyz);
r9.w = sqrt(r7.y);
r12.xyz = r12.xyz / r9.www;
r10.w = saturate(dot(-light_direction_worldspace.xyz, r12.xyz));
r10.w = saturate(-light_parameters0.y + r10.w);
r10.w = r10.w / r1.w;
r10.w = log2(r10.w);
r10.w = r10.w * r2.w;
r10.w = exp2(r10.w);
if (r5.x != 0) {
r11.w = -light_attenuation_parameters.y + r9.w;
r11.w = max(0, r11.w);
r11.w = r11.w / r4.z;
r11.w = 1 + -r11.w;
r11.w = max(0, r11.w);
r11.w = log2(r11.w);
r11.w = r11.w * r4.w;
r11.w = exp2(r11.w);
r11.w = min(1, r11.w);
} else {
r9.w = r9.w / light_attenuation_parameters.x;
r9.w = r9.w * r9.w;
r9.w = saturate(-r9.w * r9.w + 1);
r9.w = r9.w * r9.w;
r7.y = 1 + r7.y;
r7.y = r9.w / r7.y;
r11.w = r5.y ? r7.y : 0;
}
r7.y = r11.w * r10.w;
r7.y = saturate(light_volumetric_parameters3.x * r7.y);
r13.x = dot(r8.xyzw, light_projection_matrix._m00_m10_m20_m30);
r13.y = dot(r8.xyzw, light_projection_matrix._m01_m11_m21_m31);
r9.w = dot(r8.xyzw, light_projection_matrix._m03_m13_m23_m33);
r13.xy = r13.xy / r9.ww;
r13.xy = r13.xy * float2(0.5,0.5) + float2(0.5,0.5);
r9.w = 1 + -r13.y;
r10.w = dot(r3.xyz, r12.xyz);
r10.w = -r3.w * r10.w + 1;
r10.w = r10.w * r10.w;
r10.w = r5.w / r10.w;
r11.w = cmp(r13.x >= 0);
r12.x = cmp(r9.w >= 0);
r11.w = r11.w ? r12.x : 0;
r12.x = cmp(1 >= r13.x);
r11.w = r11.w ? r12.x : 0;
r9.w = cmp(1 >= r9.w);
r9.w = r9.w ? r11.w : 0;
if (r9.w != 0) {
r13.z = 1 + -r13.y;
r9.xy = r13.xz * light_projector_parameters.zw + light_projector_parameters.xy;
r9.xyw = lightImageArraySampler.SampleLevel(sampler_bilinear_wrap_mipBiasNeg2_s, r9.xyz, 0).xyz;
r9.xyw = float3(-1,-1,-1) + r9.xyw;
r9.xyw = saturate(light_parameters1.www * r9.xyw + float3(1,1,1));
} else {
r9.xyw = float3(1,1,1);
}
r11.w = dot(r8.xyz, r8.xyz);
r11.w = sqrt(r11.w);
r11.w = 0.00100000005 + r11.w;
r12.x = 1024 + -r11.w;
r11.w = light_volumetric_parameters3.y * r12.x + r11.w;
r12.x = rcp(r11.w);
r10.w = 9.99999975e-005 * r10.w;
r9.xyw = r9.xyw * r5.zzz;
r12.x = r12.x * r12.x;
r9.xyw = r12.xxx * r9.xyw;
r9.xyw = r10.www * r9.xyw;
r10.w = -0.000144269507 * r11.w;
r10.w = exp2(r10.w);
r9.xyw = r10.www * r9.xyw;
r10.w = -0.000144269507 * r7.x;
r10.w = exp2(r10.w);
r9.xyw = r10.www * r9.xyw;
r9.xyw = r9.xyw * r4.xxx;
r11.xyz = r9.xyw * r7.yyy + r11.xyz;
r6.xyz = r8.xyz;
}
r7.w = -r0.w * 0.0625 + r7.x;
}
r0.xyz = max(float3(0,0,0), r11.xyz);
r0.xyz = min(float3(16,16,16), r0.xyz);
o0.xyz = light_color.xyz * r0.xyz;
o0.w = 0;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.20499
//
// using 3Dmigoto v1.2.50 on Sat May 20 21:30:11 2017
//
//
// Buffer Definitions:
//
// cbuffer PER_STAGE
// {
//
// float4x4 inverse_view_matrix; // Offset: 0 Size: 64
// float4 camera_position_worldspace; // Offset: 64 Size: 16
// float4 camera_clip_distances; // Offset: 80 Size: 16
//
// }
//
// cbuffer PER_FRAME
// {
//
// float4 light_volumetric_random_ray_samples[16];// Offset: 0 Size: 256
//
// }
//
// cbuffer PER_LIGHT
// {
//
// float4x4 light_view_matrix; // Offset: 0 Size: 64
// float4x4 light_projection_matrix; // Offset: 64 Size: 64
// float4 light_position_worldspace; // Offset: 128 Size: 16
// float4 light_direction_worldspace; // Offset: 144 Size: 16
// float4 light_color; // Offset: 160 Size: 16
// float4 light_parameters0; // Offset: 176 Size: 16
// float4 light_parameters1; // Offset: 192 Size: 16
// float4 light_box_parameters; // Offset: 208 Size: 16 [unused]
// float4 light_attenuation_parameters;// Offset: 224 Size: 16
// float4 light_volumetric_parameters0;// Offset: 240 Size: 16
// float4 light_volumetric_parameters1;// Offset: 256 Size: 16 [unused]
// float4 light_volumetric_parameters2;// Offset: 272 Size: 16 [unused]
// float4 light_volumetric_parameters3;// Offset: 288 Size: 16
// float4 shadow_parameters; // Offset: 304 Size: 16 [unused]
// float4 light_projector_parameters; // Offset: 320 Size: 16
//
// }
//
// cbuffer PER_INSTANCE
// {
//
// float4x4 inverse_world_matrix; // Offset: 0 Size: 64 [unused]
// float4 rendertarget_size; // Offset: 64 Size: 16
// float4 viewport_pos; // Offset: 80 Size: 16 [unused]
// float4 viewport_size; // Offset: 96 Size: 16 [unused]
// float4 shadow_buffer_params; // Offset: 112 Size: 16 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// sampler_point_clamp sampler NA NA 1 1
// sampler_bilinear_wrap_mipBiasNeg2 sampler NA NA 10 1
// depthSampler texture float4 2d 0 1
// lightImageArraySampler texture float4 2darray 1 1
// PER_STAGE cbuffer NA NA 0 1
// PER_FRAME cbuffer NA NA 1 1
// PER_LIGHT cbuffer NA NA 2 1
// PER_INSTANCE cbuffer NA NA 3 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float xy
// Texcoord 0 xyzw 1 NONE float xyz
// Texcoord 1 xyzw 2 NONE float z
// Texcoord 2 xyzw 3 NONE float xyz
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0},
{ 0, 1.000000, 0, 0},
{ 0, 0, 1.000000, 0},
{ 0, 0, 0, 1.000000} }
dcl_constantbuffer cb0[6], immediateIndexed
dcl_constantbuffer cb1[16], dynamicIndexed
dcl_constantbuffer cb2[21], immediateIndexed
dcl_constantbuffer cb3[5], immediateIndexed
dcl_sampler s1, mode_default
dcl_sampler s10, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2darray (float,float,float,float) t1
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_input_ps linear v1.xyz
dcl_input_ps linear v2.z
dcl_input_ps linear v3.xyz
dcl_output o0.xyzw
dcl_temps 14
mul r0.xy, v0.xyxx, cb3[4].zwzz
sample_l_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t0.xyzw, s1, l(0.000000)
add r0.x, r0.x, -cb0[5].z
div r0.x, cb0[5].w, r0.x
div r0.y, r0.x, cb0[5].y
div r0.z, v2.z, cb0[5].y
lt r0.y, r0.y, r0.z
if_nz r0.y
div r0.y, cb0[5].y, v3.z
mul r0.yzw, r0.yyyy, v3.xxyz
div r0.yzw, r0.yyzw, cb0[5].yyyy
mul r0.xyz, r0.yzwy, r0.xxxx
mov r0.w, l(1.000000)
dp4 r1.x, r0.xyzw, cb0[0].xyzw
dp4 r1.y, r0.xyzw, cb0[1].xyzw
dp4 r1.z, r0.xyzw, cb0[2].xyzw
else
mov r1.xyz, v1.xyzx
endif
mov r1.w, l(1.000000)
dp4 r0.x, r1.xyzw, cb2[0].xyzw
dp4 r0.y, r1.xyzw, cb2[1].xyzw
dp4 r0.z, r1.xyzw, cb2[2].xyzw
mov r2.xyz, cb0[4].xyzx
mov r2.w, l(1.000000)
dp4 r3.x, r2.xyzw, cb2[0].xyzw
dp4 r3.y, r2.xyzw, cb2[1].xyzw
dp4 r3.z, r2.xyzw, cb2[2].xyzw
add r2.xyz, -r0.xyzx, r3.xyzx
dp3 r0.w, r2.xyzx, r2.xyzx
rsq r1.w, r0.w
mul r2.xyz, r1.wwww, r2.xyzx
add r3.xyz, -r1.xyzx, cb0[4].xyzx
dp3 r1.w, r3.xyzx, r3.xyzx
rsq r1.w, r1.w
mul r3.xyz, r1.wwww, r3.xyzx
add r1.w, cb2[15].y, cb2[15].y
mul r2.w, cb2[11].y, l(0.800000)
add r4.xyz, r1.xyzx, -cb2[8].xyzx
dp3 r3.w, r4.xyzx, r4.xyzx
rsq r4.w, r3.w
mul r5.xyz, r4.wwww, r4.xyzx
dp3 r4.w, r5.xyzx, cb2[9].xyzx
ge r2.w, r2.w, r4.w
discard_nz r2.w
add r5.xyz, cb0[4].xyzx, -cb2[8].xyzx
dp3 r2.w, r5.xyzx, r5.xyzx
rsq r2.w, r2.w
mul r5.xyz, r2.wwww, r5.xyzx
dp3 r2.w, r5.xyzx, cb2[9].xyzx
ge r2.w, cb2[11].y, r2.w
if_nz r2.w
dp3 r2.w, cb2[9].xyzx, r3.xyzx
mul r4.w, cb2[11].y, cb2[11].y
dp3 r5.x, cb2[9].xyzx, r4.xyzx
dp3 r4.x, r3.xyzx, r4.xyzx
mad r4.y, r2.w, r2.w, -r4.w
mul r4.x, r4.x, r4.w
mad r2.w, r2.w, r5.x, -r4.x
mul r3.w, r3.w, r4.w
mad r3.w, r5.x, r5.x, -r3.w
lt r4.x, l(1.000000012E-007), |r4.y|
not r4.z, r4.x
mul r3.w, r4.y, r3.w
mad r3.w, r2.w, r2.w, -r3.w
lt r4.w, l(1.000000012E-007), r3.w
not r5.x, r4.w
sqrt r3.w, r3.w
rcp r4.y, r4.y
add r2.w, -r2.w, -r3.w
mul r2.w, r4.y, r2.w
and r3.w, r4.x, r5.x
discard_nz r3.w
movc r2.w, r4.w, r2.w, r1.w
discard_nz r4.z
movc r1.w, r4.x, r2.w, r1.w
endif
sqrt r0.w, r0.w
min r0.w, r1.w, r0.w
round_z r0.w, r0.w
mul r4.xy, r0.wwww, l(0.062500, 0.937500, 0.000000, 0.000000)
mul r4.zw, v0.yyyx, l(0.000000, 0.000000, 0.125000, 0.125000)
ge r5.xy, r4.zwzz, -r4.zwzz
frc r4.zw, |r4.zzzw|
movc r4.zw, r5.xxxy, r4.zzzw, -r4.zzzw
dp2 r1.w, r4.zwzz, l(64.000000, 8.000000, 0.000000, 0.000000)
mul r4.zw, r1.wwww, l(0.000000, 0.000000, 0.250000, 0.015625)
ge r5.xy, r4.zwzz, -r4.zwzz
frc r4.zw, |r4.zzzw|
movc r4.zw, r5.xxxy, r4.zzzw, -r4.zzzw
mul r4.zw, r4.zzzw, l(0.000000, 0.000000, 4.000000, 16.000000)
ftou r4.zw, r4.zzzw
dp4 r1.w, cb1[r4.w + 0].xyzw, icb[r4.z + 0].xyzw
mul r1.w, r0.w, r1.w
mul r1.w, r1.w, l(0.000976562500)
mad r0.xyz, r1.wwww, r2.xyzx, r0.xyzx
mad r1.xyz, r1.wwww, r3.xyzx, r1.xyzx
add_sat r1.w, -cb2[11].y, cb2[11].x
add r2.w, cb2[11].z, l(9.999999939E-009)
mul r3.w, cb2[15].w, cb2[15].w
add r4.z, -cb2[14].y, cb2[14].x
add r4.z, r4.z, l(9.999999939E-009)
add r4.w, cb2[14].z, l(9.999999939E-009)
eq r5.xy, cb2[14].wwww, l(0.000000, 1.000000, 0.000000, 0.000000)
mul r5.zw, cb2[15].zzzw, l(0.000000, 0.000000, 795774.687500, 1.550000)
mul r3.w, r3.w, cb2[15].w
mad r3.w, -r3.w, l(0.550000), r5.w
mad r5.w, -cb2[15].w, cb2[15].w, l(1.000000)
mov r6.w, l(1.000000)
mov r7.z, cb2[12].z
mov r8.w, l(1.000000)
mov r9.z, cb2[12].z
mov r6.xyz, r0.xyzx
mov r10.xyz, r1.xyzx
mov r11.xyz, l(0,0,0,0)
mov r7.w, r4.y
loop
ge r9.w, l(0.000000), r7.w
breakc_nz r9.w
mad r6.xyz, r4.xxxx, r2.xyzx, r6.xyzx
mad r10.xyz, r4.xxxx, r3.xyzx, r10.xyzx
add r12.xyz, -r10.xyzx, cb2[8].xyzx
dp3 r9.w, r12.xyzx, r12.xyzx
sqrt r10.w, r9.w
div r12.xyz, r12.xyzx, r10.wwww
dp3_sat r11.w, -cb2[9].xyzx, r12.xyzx
add_sat r11.w, r11.w, -cb2[11].y
div r11.w, r11.w, r1.w
log r11.w, r11.w
mul r11.w, r2.w, r11.w
exp r11.w, r11.w
if_nz r5.x
add r12.w, r10.w, -cb2[14].y
max r12.w, r12.w, l(0.000000)
div r12.w, r12.w, r4.z
add r12.w, -r12.w, l(1.000000)
max r12.w, r12.w, l(0.000000)
log r12.w, r12.w
mul r12.w, r4.w, r12.w
exp r12.w, r12.w
min r12.w, r12.w, l(1.000000)
else
div r10.w, r10.w, cb2[14].x
mul r10.w, r10.w, r10.w
mad_sat r10.w, -r10.w, r10.w, l(1.000000)
mul r10.w, r10.w, r10.w
add r9.w, r9.w, l(1.000000)
div r9.w, r10.w, r9.w
and r12.w, r5.y, r9.w
endif
mul r9.w, r11.w, r12.w
mul_sat r9.w, r9.w, cb2[18].x
dp4 r13.x, r6.xyzw, cb2[4].xyzw
dp4 r13.y, r6.xyzw, cb2[5].xyzw
dp4 r10.w, r6.xyzw, cb2[7].xyzw
div r13.xy, r13.xyxx, r10.wwww
mad r13.xy, r13.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
add r10.w, -r13.y, l(1.000000)
dp3 r11.w, r3.xyzx, r12.xyzx
mad r11.w, -r3.w, r11.w, l(1.000000)
mul r11.w, r11.w, r11.w
div r11.w, r5.w, r11.w
ge r12.x, r13.x, l(0.000000)
ge r12.y, r10.w, l(0.000000)
and r12.x, r12.y, r12.x
ge r12.y, l(1.000000), r13.x
and r12.x, r12.y, r12.x
ge r10.w, l(1.000000), r10.w
and r10.w, r10.w, r12.x
if_nz r10.w
add r13.z, -r13.y, l(1.000000)
mad r7.xy, r13.xzxx, cb2[20].zwzz, cb2[20].xyxx
sample_l_indexable(texture2darray)(float,float,float,float) r12.xyz, r7.xyzx, t1.xyzw, s10, l(0.000000)
add r12.xyz, r12.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
mad_sat r12.xyz, cb2[12].wwww, r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
else
mov r12.xyz, l(1.000000,1.000000,1.000000,0)
endif
dp3 r7.x, r6.xyzx, r6.xyzx
sqrt r7.x, r7.x
add r7.x, r7.x, l(0.001000)
add r7.y, -r7.x, l(1024.000000)
mad r7.x, cb2[18].y, r7.y, r7.x
rcp r7.y, r7.x
mul r10.w, r11.w, l(0.000100)
mul r12.xyz, r5.zzzz, r12.xyzx
mul r7.y, r7.y, r7.y
mul r12.xyz, r12.xyzx, r7.yyyy
mul r12.xyz, r10.wwww, r12.xyzx
mul r7.x, r7.x, l(-0.000144269507)
exp r7.x, r7.x
mul r12.xyz, r7.xxxx, r12.xyzx
mul r7.x, r7.w, l(-0.000144269507)
exp r7.x, r7.x
mul r12.xyz, r7.xxxx, r12.xyzx
mul r12.xyz, r4.xxxx, r12.xyzx
mad r11.xyz, r12.xyzx, r9.wwww, r11.xyzx
mad r7.x, -r0.w, l(0.062500), r7.w
lt r7.y, l(0.000000), r7.x
if_nz r7.y
mad r8.xyz, r4.xxxx, r2.xyzx, r6.xyzx
mad r10.xyz, r4.xxxx, r3.xyzx, r10.xyzx
add r12.xyz, -r10.xyzx, cb2[8].xyzx
dp3 r7.y, r12.xyzx, r12.xyzx
sqrt r9.w, r7.y
div r12.xyz, r12.xyzx, r9.wwww
dp3_sat r10.w, -cb2[9].xyzx, r12.xyzx
add_sat r10.w, r10.w, -cb2[11].y
div r10.w, r10.w, r1.w
log r10.w, r10.w
mul r10.w, r2.w, r10.w
exp r10.w, r10.w
if_nz r5.x
add r11.w, r9.w, -cb2[14].y
max r11.w, r11.w, l(0.000000)
div r11.w, r11.w, r4.z
add r11.w, -r11.w, l(1.000000)
max r11.w, r11.w, l(0.000000)
log r11.w, r11.w
mul r11.w, r4.w, r11.w
exp r11.w, r11.w
min r11.w, r11.w, l(1.000000)
else
div r9.w, r9.w, cb2[14].x
mul r9.w, r9.w, r9.w
mad_sat r9.w, -r9.w, r9.w, l(1.000000)
mul r9.w, r9.w, r9.w
add r7.y, r7.y, l(1.000000)
div r7.y, r9.w, r7.y
and r11.w, r5.y, r7.y
endif
mul r7.y, r10.w, r11.w
mul_sat r7.y, r7.y, cb2[18].x
dp4 r13.x, r8.xyzw, cb2[4].xyzw
dp4 r13.y, r8.xyzw, cb2[5].xyzw
dp4 r9.w, r8.xyzw, cb2[7].xyzw
div r13.xy, r13.xyxx, r9.wwww
mad r13.xy, r13.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
add r9.w, -r13.y, l(1.000000)
dp3 r10.w, r3.xyzx, r12.xyzx
mad r10.w, -r3.w, r10.w, l(1.000000)
mul r10.w, r10.w, r10.w
div r10.w, r5.w, r10.w
ge r11.w, r13.x, l(0.000000)
ge r12.x, r9.w, l(0.000000)
and r11.w, r11.w, r12.x
ge r12.x, l(1.000000), r13.x
and r11.w, r11.w, r12.x
ge r9.w, l(1.000000), r9.w
and r9.w, r9.w, r11.w
if_nz r9.w
add r13.z, -r13.y, l(1.000000)
mad r9.xy, r13.xzxx, cb2[20].zwzz, cb2[20].xyxx
sample_l_indexable(texture2darray)(float,float,float,float) r9.xyw, r9.xyzx, t1.xywz, s10, l(0.000000)
add r9.xyw, r9.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
mad_sat r9.xyw, cb2[12].wwww, r9.xyxw, l(1.000000, 1.000000, 0.000000, 1.000000)
else
mov r9.xyw, l(1.000000,1.000000,0,1.000000)
endif
dp3 r11.w, r8.xyzx, r8.xyzx
sqrt r11.w, r11.w
add r11.w, r11.w, l(0.001000)
add r12.x, -r11.w, l(1024.000000)
mad r11.w, cb2[18].y, r12.x, r11.w
rcp r12.x, r11.w
mul r10.w, r10.w, l(0.000100)
mul r9.xyw, r5.zzzz, r9.xyxw
mul r12.x, r12.x, r12.x
mul r9.xyw, r9.xyxw, r12.xxxx
mul r9.xyw, r9.xyxw, r10.wwww
mul r10.w, r11.w, l(-0.000144269507)
exp r10.w, r10.w
mul r9.xyw, r9.xyxw, r10.wwww
mul r10.w, r7.x, l(-0.000144269507)
exp r10.w, r10.w
mul r9.xyw, r9.xyxw, r10.wwww
mul r9.xyw, r4.xxxx, r9.xyxw
mad r11.xyz, r9.xywx, r7.yyyy, r11.xyzx
mov r6.xyz, r8.xyzx
endif
mad r7.w, -r0.w, l(0.062500), r7.x
endloop
max r0.xyz, r11.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
min r0.xyz, r0.xyzx, l(16.000000, 16.000000, 16.000000, 0.000000)
mul o0.xyz, r0.xyzx, cb2[10].xyzx
mov o0.w, l(0)
ret
// Approximately 287 instruction slots used

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


Anyone can give me any advice?

Also, I see these FOG/Lights will ONLY appear in BOTH eyes if you are running SLI :( On a single GPU they only appear in the RIGHT eye:( I can easily disable them, but I would like to fix them if possible:)

Game also suffers from some weird clipping like the Metro Redux Games:( but NOT that bad!

Cheers!
Helifax

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)

#15
Posted 05/20/2017 08:33 PM   
  1 / 3    
Scroll To Top