Dragon Quest Heroes Slime Edition PC
  1 / 2    
Hello [url]https://youtu.be/eMEcrHXBQ7M?t=576[/url] The game is already great. 3DVision works fine (the application is not rated by Nvidia). There is only a little problem of shadows on the characters only. That's all. If someone could take a look, much appreciated !!! Thank you a lot.
Hello

https://youtu.be/eMEcrHXBQ7M?t=576

The game is already great. 3DVision works fine (the application is not rated by Nvidia). There is only a little problem of shadows on the characters only.

That's all. If someone could take a look, much appreciated !!!

Thank you a lot.

Corei7 4790K 32GB / 2xSLI: Titan X Pascal 3DSurr 7680x1440 +FSIM cockpit :D

My Hardcore gamer rig : http://forum.hardware.fr/configuration.php?config=hardwarefr.inc&pseudo=greatxerox
YOUTUBE Video updated : https://www.youtube.com/channel/UC7CDItQG3ycOxD7alNomG3A?view_as=subscriber
Pictures : http://www.casimages.com/u/greatxerox/369138
Best site Emulation on the net : http://www.emu-france.com/

#1
Posted 02/24/2016 12:20 AM   
Here it is [url]https://www.dropbox.com/s/rb7ua6a9lj6hfdk/DQH01_50.jps?dl=0[/url] [url]https://www.dropbox.com/s/otk8nrfw1pyezk5/DQH02_50.jps?dl=0[/url] [url]https://www.dropbox.com/s/und2hgep1z48z0t/DQH03_50.jps?dl=0[/url]
Just voted 30 in the Wishlist^^
Just voted 30 in the Wishlist^^

Corei7 4790K 32GB / 2xSLI: Titan X Pascal 3DSurr 7680x1440 +FSIM cockpit :D

My Hardcore gamer rig : http://forum.hardware.fr/configuration.php?config=hardwarefr.inc&pseudo=greatxerox
YOUTUBE Video updated : https://www.youtube.com/channel/UC7CDItQG3ycOxD7alNomG3A?view_as=subscriber
Pictures : http://www.casimages.com/u/greatxerox/369138
Best site Emulation on the net : http://www.emu-france.com/

#3
Posted 02/26/2016 10:22 PM   
[quote="greatxerox"]Hello [url]https://youtu.be/eMEcrHXBQ7M?t=576[/url] The game is already great. 3DVision works fine (the application is not rated by Nvidia). There is only a little problem of shadows on the characters only. That's all. If someone could take a look, much appreciated !!! Thank you a lot. That's far from the worst issue, self shadows can be disabled in game. If you haven't changed the profile you also have 1 eye issues. With right profile and shadows disabled there's one problem left, and that's some rather nasty 2D effects. Take a look at the very first screen, there's some cracks and deformations on the walls, and these are rendered in 2D also, that makes the game completely unplayable if you ask me ! Your pictures is allmost without convergence, and that might be the explanation why you consider the game in 3D great ! Have you enabled advanced options in Nvidia Control Panel ? [/quote]
greatxerox said:Hello

https://youtu.be/eMEcrHXBQ7M?t=576

The game is already great. 3DVision works fine (the application is not rated by Nvidia). There is only a little problem of shadows on the characters only.

That's all. If someone could take a look, much appreciated !!!

Thank you a lot.





That's far from the worst issue, self shadows can be disabled in game.

If you haven't changed the profile you also have 1 eye issues.
With right profile and shadows disabled there's one problem left, and that's some rather nasty 2D effects.
Take a look at the very first screen, there's some cracks and deformations on the walls, and these are rendered in 2D also, that makes the game completely unplayable if you ask me !

Your pictures is allmost without convergence, and that might be the explanation why you consider the game in 3D great !

Have you enabled advanced options in Nvidia Control Panel ?



Win7 64bit Pro
CPU: 4790K 4.8 GHZ
GPU: Aurus 1080 TI 2.08 GHZ - 100% Watercooled !
Monitor: Asus PG278QR
And lots of ram and HD's ;)

#4
Posted 02/27/2016 10:16 AM   
hi blacksmith56 you have really more the habit of 3D than me, a large better knowing of 3DVision. now, thanks to you, i'll know how to evaluate better a game. i enabled advanced options in nvidia control panel but in fact, i reduce the convergence in 3D games because i thought it was better to have the impress the characters are in a "realistic" size. In high convergence, i have a impress to control "puppets" :). but maybe i have wrong.
hi blacksmith56

you have really more the habit of 3D than me, a large better knowing of 3DVision. now, thanks to you, i'll know how to evaluate better a game.

i enabled advanced options in nvidia control panel but in fact, i reduce the convergence in 3D games because i thought it was better to have the impress the characters are in a "realistic" size. In high convergence, i have a impress to control "puppets" :). but maybe i have wrong.

Corei7 4790K 32GB / 2xSLI: Titan X Pascal 3DSurr 7680x1440 +FSIM cockpit :D

My Hardcore gamer rig : http://forum.hardware.fr/configuration.php?config=hardwarefr.inc&pseudo=greatxerox
YOUTUBE Video updated : https://www.youtube.com/channel/UC7CDItQG3ycOxD7alNomG3A?view_as=subscriber
Pictures : http://www.casimages.com/u/greatxerox/369138
Best site Emulation on the net : http://www.emu-france.com/

#5
Posted 02/27/2016 11:34 AM   
I guess most of us like it just about the setting in this picture ! In a 3PS like this even a little bit more (Toyfication) Ps: It seems that nobody else is looking at this title at the moment, if I'm wrong please say so !!! Otherwise I might give it a try, though I'm not exactly an expert :)
I guess most of us like it just about the setting in this picture !

In a 3PS like this even a little bit more (Toyfication)

Ps: It seems that nobody else is looking at this title at the moment, if I'm wrong please say so !!!

Otherwise I might give it a try, though I'm not exactly an expert :)

Win7 64bit Pro
CPU: 4790K 4.8 GHZ
GPU: Aurus 1080 TI 2.08 GHZ - 100% Watercooled !
Monitor: Asus PG278QR
And lots of ram and HD's ;)

#6
Posted 02/27/2016 03:04 PM   
if you aren't an expert, it should be a good experience to work on this one, because it seems there are no a lot of problems. the game is repetitive but friendly. [url]https://youtu.be/ctyAbC2WZPA?t=1015[/url] Dear Blacksmith56, you are hired to take care :)
if you aren't an expert, it should be a good experience to work on this one, because it seems there are no a lot of problems.

the game is repetitive but friendly.

https://youtu.be/ctyAbC2WZPA?t=1015

Dear Blacksmith56, you are hired to take care :)

Corei7 4790K 32GB / 2xSLI: Titan X Pascal 3DSurr 7680x1440 +FSIM cockpit :D

My Hardcore gamer rig : http://forum.hardware.fr/configuration.php?config=hardwarefr.inc&pseudo=greatxerox
YOUTUBE Video updated : https://www.youtube.com/channel/UC7CDItQG3ycOxD7alNomG3A?view_as=subscriber
Pictures : http://www.casimages.com/u/greatxerox/369138
Best site Emulation on the net : http://www.emu-france.com/

#7
Posted 02/27/2016 07:38 PM   
Urg... multi layered shaders.. I have been trying to make a CM profile for a starter, but no luck so far, the UI breaks it :/
Urg... multi layered shaders..

I have been trying to make a CM profile for a starter, but no luck so far, the UI breaks it :/

Win7 64bit Pro
CPU: 4790K 4.8 GHZ
GPU: Aurus 1080 TI 2.08 GHZ - 100% Watercooled !
Monitor: Asus PG278QR
And lots of ram and HD's ;)

#8
Posted 02/27/2016 09:53 PM   
Huge fan of the DQ-franchise here. I've already picked up the game on PS4, so I'll wait for a Steam sale. The day Dragon Quest XI gets a PC-port though, I will definitely wrap my head around shaderhacking ^^
Huge fan of the DQ-franchise here.
I've already picked up the game on PS4, so I'll wait for a Steam sale.

The day Dragon Quest XI gets a PC-port though, I will definitely wrap my head around shaderhacking ^^

#9
Posted 02/28/2016 02:00 AM   
[quote="Gryzor"]Huge fan of the DQ-franchise here. I've already picked up the game on PS4, so I'll wait for a Steam sale. The day Dragon Quest XI gets a PC-port though, I will definitely wrap my head around shaderhacking ^^ [/quote] Gryzor, vote 30 for DQ^^ [url]http://helixmod.blogspot.fr/2016/01/wishlist.html[/url]
Gryzor said:Huge fan of the DQ-franchise here.
I've already picked up the game on PS4, so I'll wait for a Steam sale.

The day Dragon Quest XI gets a PC-port though, I will definitely wrap my head around shaderhacking ^^


Gryzor, vote 30 for DQ^^ http://helixmod.blogspot.fr/2016/01/wishlist.html

Corei7 4790K 32GB / 2xSLI: Titan X Pascal 3DSurr 7680x1440 +FSIM cockpit :D

My Hardcore gamer rig : http://forum.hardware.fr/configuration.php?config=hardwarefr.inc&pseudo=greatxerox
YOUTUBE Video updated : https://www.youtube.com/channel/UC7CDItQG3ycOxD7alNomG3A?view_as=subscriber
Pictures : http://www.casimages.com/u/greatxerox/369138
Best site Emulation on the net : http://www.emu-france.com/

#10
Posted 02/28/2016 04:40 PM   
27 Dragon Quest Heroes 96 nice :)
27 Dragon Quest Heroes 96

nice :)

Corei7 4790K 32GB / 2xSLI: Titan X Pascal 3DSurr 7680x1440 +FSIM cockpit :D

My Hardcore gamer rig : http://forum.hardware.fr/configuration.php?config=hardwarefr.inc&pseudo=greatxerox
YOUTUBE Video updated : https://www.youtube.com/channel/UC7CDItQG3ycOxD7alNomG3A?view_as=subscriber
Pictures : http://www.casimages.com/u/greatxerox/369138
Best site Emulation on the net : http://www.emu-france.com/

#11
Posted 03/01/2016 10:20 AM   
up
up

Corei7 4790K 32GB / 2xSLI: Titan X Pascal 3DSurr 7680x1440 +FSIM cockpit :D

My Hardcore gamer rig : http://forum.hardware.fr/configuration.php?config=hardwarefr.inc&pseudo=greatxerox
YOUTUBE Video updated : https://www.youtube.com/channel/UC7CDItQG3ycOxD7alNomG3A?view_as=subscriber
Pictures : http://www.casimages.com/u/greatxerox/369138
Best site Emulation on the net : http://www.emu-france.com/

#12
Posted 04/20/2016 09:29 PM   
up
up

Corei7 4790K 32GB / 2xSLI: Titan X Pascal 3DSurr 7680x1440 +FSIM cockpit :D

My Hardcore gamer rig : http://forum.hardware.fr/configuration.php?config=hardwarefr.inc&pseudo=greatxerox
YOUTUBE Video updated : https://www.youtube.com/channel/UC7CDItQG3ycOxD7alNomG3A?view_as=subscriber
Pictures : http://www.casimages.com/u/greatxerox/369138
Best site Emulation on the net : http://www.emu-france.com/

#13
Posted 08/11/2016 11:24 PM   
I don't have the game and I don't plan on buying it (expensive base price and 1920x1080 limit). I'm not a shadows expert, but maybe I can help, in case it's similar to Dark Souls 2 SOTFS or Shadow Complex Remastered. Can you post here the pixel shader that controls shadows?
I don't have the game and I don't plan on buying it (expensive base price and 1920x1080 limit). I'm not a shadows expert, but maybe I can help, in case it's similar to Dark Souls 2 SOTFS or Shadow Complex Remastered. Can you post here the pixel shader that controls shadows?

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

#14
Posted 08/12/2016 08:39 PM   
e pixel shader that controls shadows in 9fd50d0624879ad1-ps_replace.txt // ---- Created with 3Dmigoto v1.2.32 on Sun Aug 14 06:56:32 2016 cbuffer _Globals : register(b0) { row_major float4x4 mW2S[2] : packoffset(c0); float4 vSMOf[2] : packoffset(c8); float4 vS2VZ : packoffset(c10); float4 scSMD[2] : packoffset(c11); float4 scSM2D[2] : packoffset(c13); float4 sdplane : packoffset(c15); row_major float4x4 mTrsW2LPV[4] : packoffset(c16); row_major float4x4 mTrsW2LPVSR[4] : packoffset(c32); int nLPV3DDepth : packoffset(c48); float fDiffuseScale : packoffset(c48.y); float fNormalDir : packoffset(c48.z); int bUseDiffuseInterreflection : packoffset(c48.w); int nNumCascadeLevels : packoffset(c49); float4 fSHBlendRegion : packoffset(c50); row_major float4x4 mV2W : packoffset(c51); row_major float4x4 mP2W : packoffset(c55); float4 vAmbParam : packoffset(c59); float4 vAmbOccRat : packoffset(c60); } SamplerState __smpsLPVBuffer_s : register(s2); SamplerState __smpsAmbDif_s : register(s7); SamplerComparisonState __smpsShadow_s : register(s0); SamplerComparisonState __smpsShadow2_s : register(s1); Texture2D<float4> sShadow : register(t0); Texture2D<float4> sShadow2 : register(t1); Texture2DArray<float4> sLPVBuffer : register(t2); Texture2D<float4> sDepth : register(t3); Texture2D<float4> sGBuf1 : register(t4); Texture2D<float4> LightMap : register(t5); TextureCube<float4> sAmbDif : register(t7); // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : SV_Position0, float4 v1 : TEXCOORD0, out float4 o0 : SV_Target0) { float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31,r32,r33,r34,r35; uint4 bitmask, uiDest; float4 fDest; r0.xy = (int2)v0.xy; r0.zw = float2(0,0); r1.x = sDepth.Load(r0.xyw).x; r1.y = cmp(r1.x == 1.000000); if (r1.y != 0) discard; r2.xyzw = sGBuf1.Load(r0.xyw).xyzw; r3.xyzw = mP2W._m10_m11_m12_m13 * v1.yyyy; r3.xyzw = v1.xxxx * mP2W._m00_m01_m02_m03 + r3.xyzw; r1.xyzw = r1.xxxx * mP2W._m20_m21_m22_m23 + r3.xyzw; r1.xyzw = mP2W._m30_m31_m32_m33 + r1.xyzw; r1.xyzw = r1.xyzw / r1.wwww; r2.xyz = r2.xyz * float3(2,2,2) + float3(-1,-1,-1); r3.x = dot(r2.xyz, r2.xyz); r3.x = rsqrt(r3.x); r2.xyz = r3.xxx * r2.xyz; r3.xyz = mV2W._m10_m11_m12 * r2.yyy; r3.xyz = r2.xxx * mV2W._m00_m01_m02 + r3.xyz; r2.xyz = r2.zzz * mV2W._m20_m21_m22 + r3.xyz; r3.xyzw = mW2S[0]._m10_m11_m12_m13 * r1.yyyy; r3.xyzw = r1.xxxx * mW2S[0]._m00_m01_m02_m03 + r3.xyzw; r3.xyzw = r1.zzzz * mW2S[0]._m20_m21_m22_m23 + r3.xyzw; r3.xyzw = r1.wwww * mW2S[0]._m30_m31_m32_m33 + r3.xyzw; r4.xyzw = mW2S[1]._m10_m11_m12_m13 * r1.yyyy; r4.xyzw = r1.xxxx * mW2S[1]._m00_m01_m02_m03 + r4.xyzw; r4.xyzw = r1.zzzz * mW2S[1]._m20_m21_m22_m23 + r4.xyzw; r4.xyzw = r1.wwww * mW2S[1]._m30_m31_m32_m33 + r4.xyzw; r5.x = dot(r3.xyzw, vS2VZ.xyzw); r5.x = cmp(0 < r5.x); r4.xyzw = r5.xxxx ? r4.xyzw : r3.xyzw; r6.xyzw = r5.xxxx ? vSMOf[1].xyzw : vSMOf[0].xyzw; r5.yz = r5.xx ? scSMD[1].xy : scSMD[0].xy; r7.xy = r5.xx ? scSM2D[1].xy : scSM2D[0].xy; r4.xyz = r4.zxy / r4.www; if (r5.x == 0) { r8.xz = r4.zy + r7.yx; r5.xw = saturate(r8.zx); r5.xw = r5.xw * r6.xy + r6.zw; r4.x = saturate(r4.x); r4.w = sShadow.SampleCmpLevelZero(__smpsShadow_s, r5.xw, r4.x).x; r8.yw = r8.xz + r5.zy; r9.xyzw = saturate(r8.wxzy); r9.xyzw = r9.xyzw * r6.xyxy + r6.zwzw; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r9.xy, r4.x).x; r4.w = r5.x + r4.w; r10.xz = r8.wy + r5.yz; r10.yw = r8.xy; r11.xyzw = saturate(r10.xyxw); r11.xyzw = r11.xyzw * r6.xyxy + r6.zwzw; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r11.xy, r4.x).x; r4.w = r5.x + r4.w; r12.xy = r10.xz + r5.yz; r12.zw = r10.yw; r13.xyzw = saturate(r12.xzxw); r13.xyzw = r13.xyzw * r6.xyxy + r6.zwzw; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r13.xy, r4.x).x; r4.w = r5.x + r4.w; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r9.zw, r4.x).x; r4.w = r5.x + r4.w; r5.xw = saturate(r8.wy); r5.xw = r5.xw * r6.xy + r6.zw; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r5.xw, r4.x).x; r4.w = r5.x + r4.w; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r11.zw, r4.x).x; r4.w = r5.x + r4.w; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r13.zw, r4.x).x; r4.w = r5.x + r4.w; r8.y = r10.z; r9.xyzw = saturate(r8.zywy); r9.xyzw = r9.xyzw * r6.xyxy + r6.zwzw; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r9.xy, r4.x).x; r4.w = r5.x + r4.w; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r9.zw, r4.x).x; r4.w = r5.x + r4.w; r5.xw = saturate(r10.xz); r5.xw = r5.xw * r6.xy + r6.zw; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r5.xw, r4.x).x; r4.w = r5.x + r4.w; r8.x = r12.x; r8.xy = saturate(r8.xy); r5.xw = r8.xy * r6.xy + r6.zw; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r5.xw, r4.x).x; r4.w = r5.x + r4.w; r10.zw = r8.zw; r10.y = r12.y; r8.xyzw = saturate(r10.zywy); r8.xyzw = r8.xyzw * r6.xyxy + r6.zwzw; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r8.xy, r4.x).x; r4.w = r5.x + r4.w; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r8.zw, r4.x).x; r4.w = r5.x + r4.w; r10.xy = saturate(r10.xy); r5.xw = r10.xy * r6.xy + r6.zw; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r5.xw, r4.x).x; r4.w = r5.x + r4.w; r12.xy = saturate(r12.xy); r5.xw = r12.xy * r6.xy + r6.zw; r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r5.xw, r4.x).x; r4.w = r5.x + r4.w; r4.w = -r4.w * 0.0625 + 1; } else { r7.xz = r4.zy + r7.yx; r4.yz = saturate(r7.zx); r4.yz = r4.yz * r6.xy + r6.zw; r4.x = saturate(r4.x); r4.y = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r4.yz, r4.x).x; r7.yw = r7.xz + r5.zy; r8.xyzw = saturate(r7.wxzy); r8.xyzw = r8.xyzw * r6.xyxy + r6.zwzw; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r8.xy, r4.x).x; r4.y = r4.y + r4.z; r9.xz = r7.wy + r5.yz; r9.yw = r7.xy; r10.xyzw = saturate(r9.xyxw); r10.xyzw = r10.xyzw * r6.xyxy + r6.zwzw; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r10.xy, r4.x).x; r4.y = r4.y + r4.z; r5.xy = r9.xz + r5.yz; r5.zw = r9.yw; r11.xyzw = saturate(r5.xzxw); r11.xyzw = r11.xyzw * r6.xyxy + r6.zwzw; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r11.xy, r4.x).x; r4.y = r4.y + r4.z; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r8.zw, r4.x).x; r4.y = r4.y + r4.z; r5.zw = saturate(r7.wy); r5.zw = r5.zw * r6.xy + r6.zw; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r5.zw, r4.x).x; r4.y = r4.y + r4.z; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r10.zw, r4.x).x; r4.y = r4.y + r4.z; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r11.zw, r4.x).x; r4.y = r4.y + r4.z; r7.y = r9.z; r8.xyzw = saturate(r7.zywy); r8.xyzw = r8.xyzw * r6.xyxy + r6.zwzw; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r8.xy, r4.x).x; r4.y = r4.y + r4.z; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r8.zw, r4.x).x; r4.y = r4.y + r4.z; r5.zw = saturate(r9.xz); r5.zw = r5.zw * r6.xy + r6.zw; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r5.zw, r4.x).x; r4.y = r4.y + r4.z; r7.x = r5.x; r7.xy = saturate(r7.xy); r5.zw = r7.xy * r6.xy + r6.zw; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r5.zw, r4.x).x; r4.y = r4.y + r4.z; r9.zw = r7.zw; r9.y = r5.y; r7.xyzw = saturate(r9.zywy); r7.xyzw = r7.xyzw * r6.xyxy + r6.zwzw; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r7.xy, r4.x).x; r4.y = r4.y + r4.z; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r7.zw, r4.x).x; r4.y = r4.y + r4.z; r9.xy = saturate(r9.xy); r5.zw = r9.xy * r6.xy + r6.zw; r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r5.zw, r4.x).x; r4.y = r4.y + r4.z; r5.xy = saturate(r5.xy); r5.xy = r5.xy * r6.xy + r6.zw; r4.x = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r5.xy, r4.x).x; r4.x = r4.y + r4.x; r4.w = -r4.x * 0.0625 + 1; } r3.x = saturate(dot(sdplane.xyzw, r3.xyzw)); r3.x = -r4.w * r3.x + 1; if (bUseDiffuseInterreflection != 0) { r3.yzw = mTrsW2LPV[0]._m10_m11_m12 * r1.yyy; r3.yzw = r1.xxx * mTrsW2LPV[0]._m00_m01_m02 + r3.yzw; r3.yzw = r1.zzz * mTrsW2LPV[0]._m20_m21_m22 + r3.yzw; r4.xyz = r1.www * mTrsW2LPV[0]._m30_m31_m32 + r3.yzw; r3.yzw = mTrsW2LPV[1]._m10_m11_m12 * r1.yyy; r3.yzw = r1.xxx * mTrsW2LPV[1]._m00_m01_m02 + r3.yzw; r3.yzw = r1.zzz * mTrsW2LPV[1]._m20_m21_m22 + r3.yzw; r5.xyz = r1.www * mTrsW2LPV[1]._m30_m31_m32 + r3.yzw; r3.yzw = mTrsW2LPV[2]._m10_m11_m12 * r1.yyy; r3.yzw = r1.xxx * mTrsW2LPV[2]._m00_m01_m02 + r3.yzw; r3.yzw = r1.zzz * mTrsW2LPV[2]._m20_m21_m22 + r3.yzw; r6.xyz = r1.www * mTrsW2LPV[2]._m30_m31_m32 + r3.yzw; r3.yzw = mTrsW2LPV[3]._m10_m11_m12 * r1.yyy; r3.yzw = r1.xxx * mTrsW2LPV[3]._m00_m01_m02 + r3.yzw; r3.yzw = r1.zzz * mTrsW2LPV[3]._m20_m21_m22 + r3.yzw; r7.xyz = r1.www * mTrsW2LPV[3]._m30_m31_m32 + r3.yzw; r3.yzw = mTrsW2LPVSR[0]._m10_m11_m12 * r1.yyy; r3.yzw = r1.xxx * mTrsW2LPVSR[0]._m00_m01_m02 + r3.yzw; r3.yzw = r1.zzz * mTrsW2LPVSR[0]._m20_m21_m22 + r3.yzw; r3.yzw = r1.www * mTrsW2LPVSR[0]._m30_m31_m32 + r3.yzw; r8.xyz = mTrsW2LPVSR[1]._m10_m11_m12 * r1.yyy; r8.xyz = r1.xxx * mTrsW2LPVSR[1]._m00_m01_m02 + r8.xyz; r8.xyz = r1.zzz * mTrsW2LPVSR[1]._m20_m21_m22 + r8.xyz; r8.xyz = r1.www * mTrsW2LPVSR[1]._m30_m31_m32 + r8.xyz; r9.xyz = mTrsW2LPVSR[2]._m10_m11_m12 * r1.yyy; r9.xyz = r1.xxx * mTrsW2LPVSR[2]._m00_m01_m02 + r9.xyz; r9.xyz = r1.zzz * mTrsW2LPVSR[2]._m20_m21_m22 + r9.xyz; r9.xyz = r1.www * mTrsW2LPVSR[2]._m30_m31_m32 + r9.xyz; r10.xyz = mTrsW2LPVSR[3]._m10_m11_m12 * r1.yyy; r10.xyz = r1.xxx * mTrsW2LPVSR[3]._m00_m01_m02 + r10.xyz; r1.xyz = r1.zzz * mTrsW2LPVSR[3]._m20_m21_m22 + r10.xyz; r1.xyz = r1.www * mTrsW2LPVSR[3]._m30_m31_m32 + r1.xyz; r10.xyz = fNormalDir * r2.yzx; r10.yzw = float3(-1.02332747,1.02332747,-1.02332747) * r10.xyz; r11.xyz = float3(1,1,1) + -r3.yzw; r12.xyz = min(r11.xyz, r3.yzw); r1.w = min(r12.y, r12.z); r1.w = min(r12.x, r1.w); r1.w = cmp(0 >= r1.w); if (r1.w != 0) { r1.w = cmp(1 < nNumCascadeLevels); r12.xyz = float3(1,1,1) + -r8.xyz; r12.xyz = min(r12.xyz, r8.xyz); r8.w = min(r12.y, r12.z); r8.w = min(r12.x, r8.w); r8.w = cmp(0 < r8.w); r1.w = r1.w ? r8.w : 0; r8.w = r1.w ? 1 : 0; if (r1.w == 0) { r12.xy = cmp(int2(2,3) < nNumCascadeLevels); r13.xyz = float3(1,1,1) + -r9.xyz; r13.xyz = min(r13.xyz, r9.xyz); r1.w = min(r13.y, r13.z); r1.w = min(r13.x, r1.w); r1.w = cmp(0 < r1.w); r9.w = r1.w ? 2 : r8.w; r9.w = r12.x ? r9.w : r8.w; r1.w = r1.w ? r12.x : 0; r12.xzw = float3(1,1,1) + -r1.xyz; r12.xzw = min(r12.xzw, r1.xyz); r11.w = min(r12.z, r12.w); r11.w = min(r12.x, r11.w); r11.w = cmp(0 < r11.w); r12.x = r11.w ? 3 : r9.w; r12.x = r12.y ? r12.x : r9.w; r11.w = r11.w ? r12.y : 0; r11.w = r11.w ? r12.x : -1; r8.w = r1.w ? r9.w : r11.w; } } else { r8.w = 0; } r1.w = nLPV3DDepth; r9.w = r4.z * r1.w; r4.w = floor(r9.w); r9.w = (int)r4.w; r9.w = (int)r9.w + 1; r11.w = nLPV3DDepth + -1; r9.w = min((int)r11.w, (int)r9.w); r12.x = (int)r9.w; r13.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r4.xyw).xyzw; r12.yz = r4.xy; r14.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r12.yzx).xyzw; r12.w = r4.w + r1.w; r15.zw = r12.xw + r1.ww; r16.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r12.yzw).xyzw; r15.xy = r12.yz; r12.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r15.xyz).xyzw; r15.z = r15.z + r1.w; r17.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r15.xyw).xyzw; r15.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r15.xyz).xyzw; r4.x = r5.z * r1.w; r4.x = floor(r4.x); r4.y = (int)r4.x; r4.y = (int)r4.y + 1; r4.y = min((int)r4.y, (int)r11.w); r4.y = (int)r4.y; r18.xyz = nLPV3DDepth * int3(3,6,9); r18.xyz = (int3)r18.xyz; r5.w = r18.x + r4.x; r19.x = r18.x + r4.y; r20.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r5.xyw).xyzw; r19.yz = r5.xy; r21.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r19.yzx).xyzw; r19.w = r5.w + r1.w; r22.zw = r19.xw + r1.ww; r23.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r19.yzw).xyzw; r22.xy = r19.yz; r19.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r22.xyz).xyzw; r22.z = r22.z + r1.w; r24.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r22.xyw).xyzw; r22.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r22.xyz).xyzw; r4.y = r6.z * r1.w; r4.y = floor(r4.y); r5.x = (int)r4.y; r5.x = (int)r5.x + 1; r5.x = min((int)r5.x, (int)r11.w); r5.x = (int)r5.x; r6.w = r4.y + r18.y; r25.x = r5.x + r18.y; r26.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r6.xyw).xyzw; r25.yz = r6.xy; r27.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r25.yzx).xyzw; r25.w = r6.w + r1.w; r28.zw = r25.xw + r1.ww; r29.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r25.yzw).xyzw; r28.xy = r25.yz; r25.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r28.xyz).xyzw; r28.z = r28.z + r1.w; r30.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r28.xyw).xyzw; r28.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r28.xyz).xyzw; r5.x = r7.z * r1.w; r5.x = floor(r5.x); r5.y = (int)r5.x; r5.y = (int)r5.y + 1; r5.y = min((int)r5.y, (int)r11.w); r5.y = (int)r5.y; r7.w = r5.x + r18.z; r18.x = r5.y + r18.z; r31.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r7.xyw).xyzw; r18.yz = r7.xy; r32.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r18.yzx).xyzw; r18.w = r7.w + r1.w; r33.zw = r18.xw + r1.ww; r34.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r18.yzw).xyzw; r33.xy = r18.yz; r18.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r33.xyz).xyzw; r33.z = r33.z + r1.w; r35.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r33.xyw).xyzw; r33.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r33.xyz).xyzw; if (r8.w == 0) { r3.yzw = min(fSHBlendRegion.xxx, r3.yzw); r6.xyw = min(fSHBlendRegion.xxx, r11.xyz); r3.yzw = min(r6.xyw, r3.yzw); r3.z = min(r3.z, r3.w); r3.y = min(r3.y, r3.z); r3.y = saturate(r3.y / fSHBlendRegion.x); r3.z = cmp(r3.y != 0.000000); if (r3.z != 0) { r3.z = r4.z * r1.w + -r4.w; r3.w = 1 + -r3.z; r11.xyzw = r3.zzzz * r14.xyzw; r11.xyzw = r3.wwww * r13.xyzw + r11.xyzw; r12.xyzw = r3.zzzz * r12.xyzw; r12.xyzw = r3.wwww * r16.xyzw + r12.xyzw; r13.xyzw = r3.zzzz * r15.xyzw; r13.xyzw = r3.wwww * r17.xyzw + r13.xyzw; r10.x = 0.886227369; r3.z = dot(r11.xyzw, r10.xyzw); r3.z = max(0, r3.z); r11.x = r3.z * r3.y; r3.z = dot(r12.xyzw, r10.xyzw); r3.z = max(0, r3.z); r11.y = r3.z * r3.y; r3.z = dot(r13.xyzw, r10.xyzw); r3.z = max(0, r3.z); r11.z = r3.z * r3.y; } else { r11.xyz = float3(0,0,0); r3.y = 0; } r3.z = cmp(r3.y < 1); r3.w = cmp(1 < nNumCascadeLevels); r3.z = r3.w ? r3.z : 0; if (r3.z != 0) { r6.xyw = min(fSHBlendRegion.yyy, r8.xyz); r7.xyw = float3(1,1,1) + -r8.xyz; r7.xyw = min(fSHBlendRegion.yyy, r7.xyw); r6.xyw = min(r7.xyw, r6.xyw); r3.z = min(r6.y, r6.w); r3.z = min(r6.x, r3.z); r3.z = saturate(r3.z / fSHBlendRegion.y); r3.w = cmp(r3.z != 0.000000); if (r3.w != 0) { r3.w = r5.z * r1.w + -r4.x; r4.z = 1 + -r3.w; r12.xyzw = r3.wwww * r21.xyzw; r12.xyzw = r4.zzzz * r20.xyzw + r12.xyzw; r13.xyzw = r3.wwww * r19.xyzw; r13.xyzw = r4.zzzz * r23.xyzw + r13.xyzw; r14.xyzw = r3.wwww * r22.xyzw; r14.xyzw = r4.zzzz * r24.xyzw + r14.xyzw; r3.y = 1 + -r3.y; r10.x = 0.886227369; r3.w = dot(r12.xyzw, r10.xyzw); r3.w = max(0, r3.w); r3.w = r3.y * r3.w; r12.x = r3.w * r3.z; r3.w = dot(r13.xyzw, r10.xyzw); r3.w = max(0, r3.w); r3.w = r3.y * r3.w; r12.y = r3.w * r3.z; r3.w = dot(r14.xyzw, r10.xyzw); r3.w = max(0, r3.w); r3.y = r3.y * r3.w; r12.z = r3.y * r3.z; } else { r12.xyz = float3(0,0,0); } r11.xyz = r12.xyz + r11.xyz; } } else { r3.y = cmp((int)r8.w == 1); if (r3.y != 0) { r3.yzw = min(fSHBlendRegion.yyy, r8.xyz); r6.xyw = float3(1,1,1) + -r8.xyz; r6.xyw = min(fSHBlendRegion.yyy, r6.xyw); r3.yzw = min(r6.xyw, r3.yzw); r3.z = min(r3.z, r3.w); r3.y = min(r3.y, r3.z); r3.y = saturate(r3.y / fSHBlendRegion.y); r3.z = cmp(r3.y != 0.000000); if (r3.z != 0) { r3.z = r5.z * r1.w + -r4.x; r3.w = 1 + -r3.z; r12.xyzw = r3.zzzz * r21.xyzw; r12.xyzw = r3.wwww * r20.xyzw + r12.xyzw; r13.xyzw = r3.zzzz * r19.xyzw; r13.xyzw = r3.wwww * r23.xyzw + r13.xyzw; r14.xyzw = r3.zzzz * r22.xyzw; r14.xyzw = r3.wwww * r24.xyzw + r14.xyzw; r15.x = 0.886227369; r15.yzw = r10.yzw; r3.z = dot(r12.xyzw, r15.xyzw); r3.z = max(0, r3.z); r11.x = r3.z * r3.y; r3.z = dot(r13.xyzw, r15.xyzw); r3.z = max(0, r3.z); r11.y = r3.z * r3.y; r3.z = dot(r14.xyzw, r15.xyzw); r3.z = max(0, r3.z); r11.z = r3.z * r3.y; } else { r11.xyz = float3(0,0,0); r3.y = 0; } r3.z = cmp(r3.y < 1); r3.w = cmp(2 < nNumCascadeLevels); r3.z = r3.w ? r3.z : 0; if (r3.z != 0) { r4.xzw = min(fSHBlendRegion.zzz, r9.xyz); r5.yzw = float3(1,1,1) + -r9.xyz; r5.yzw = min(fSHBlendRegion.zzz, r5.yzw); r4.xzw = min(r5.yzw, r4.xzw); r3.z = min(r4.z, r4.w); r3.z = min(r4.x, r3.z); r3.z = saturate(r3.z / fSHBlendRegion.z); r3.w = cmp(r3.z != 0.000000); if (r3.w != 0) { r3.w = r6.z * r1.w + -r4.y; r4.x = 1 + -r3.w; r12.xyzw = r3.wwww * r27.xyzw; r12.xyzw = r4.xxxx * r26.xyzw + r12.xyzw; r13.xyzw = r3.wwww * r25.xyzw; r13.xyzw = r4.xxxx * r29.xyzw + r13.xyzw; r14.xyzw = r3.wwww * r28.xyzw; r14.xyzw = r4.xxxx * r30.xyzw + r14.xyzw; r3.y = 1 + -r3.y; r10.x = 0.886227369; r3.w = dot(r12.xyzw, r10.xyzw); r3.w = max(0, r3.w); r3.w = r3.y * r3.w; r8.x = r3.w * r3.z; r3.w = dot(r13.xyzw, r10.xyzw); r3.w = max(0, r3.w); r3.w = r3.y * r3.w; r8.y = r3.w * r3.z; r3.w = dot(r14.xyzw, r10.xyzw); r3.w = max(0, r3.w); r3.y = r3.y * r3.w; r8.z = r3.y * r3.z; } else { r8.xyz = float3(0,0,0); } r11.xyz = r11.xyz + r8.xyz; } } else { r3.y = cmp((int)r8.w == 2); if (r3.y != 0) { r3.yzw = min(fSHBlendRegion.zzz, r9.xyz); r4.xzw = float3(1,1,1) + -r9.xyz; r4.xzw = min(fSHBlendRegion.zzz, r4.xzw); r3.yzw = min(r4.xzw, r3.yzw); r3.z = min(r3.z, r3.w); r3.y = min(r3.y, r3.z); r3.y = saturate(r3.y / fSHBlendRegion.z); r3.z = cmp(r3.y != 0.000000); if (r3.z != 0) { r3.z = r6.z * r1.w + -r4.y; r3.w = 1 + -r3.z; r4.xyzw = r3.zzzz * r27.xyzw; r4.xyzw = r3.wwww * r26.xyzw + r4.xyzw; r6.xyzw = r3.zzzz * r25.xyzw; r6.xyzw = r3.wwww * r29.xyzw + r6.xyzw; r9.xyzw = r3.zzzz * r28.xyzw; r9.xyzw = r3.wwww * r30.xyzw + r9.xyzw; r12.x = 0.886227369; r12.yzw = r10.yzw; r3.z = dot(r4.xyzw, r12.xyzw); r3.z = max(0, r3.z); r11.x = r3.z * r3.y; r3.z = dot(r6.xyzw, r12.xyzw); r3.z = max(0, r3.z); r11.y = r3.z * r3.y; r3.z = dot(r9.xyzw, r12.xyzw); r3.z = max(0, r3.z); r11.z = r3.z * r3.y; } else { r11.xyz = float3(0,0,0); r3.y = 0; } r3.z = cmp(r3.y < 1); r3.w = cmp(3 < nNumCascadeLevels); r3.z = r3.w ? r3.z : 0; if (r3.z != 0) { r4.xyz = min(fSHBlendRegion.www, r1.xyz); r5.yzw = float3(1,1,1) + -r1.xyz; r5.yzw = min(fSHBlendRegion.www, r5.yzw); r4.xyz = min(r5.yzw, r4.xyz); r3.z = min(r4.y, r4.z); r3.z = min(r4.x, r3.z); r3.z = saturate(r3.z / fSHBlendRegion.w); r3.w = cmp(r3.z != 0.000000); if (r3.w != 0) { r3.w = r7.z * r1.w + -r5.x; r4.x = 1 + -r3.w; r6.xyzw = r3.wwww * r32.xyzw; r6.xyzw = r4.xxxx * r31.xyzw + r6.xyzw; r9.xyzw = r3.wwww * r18.xyzw; r9.xyzw = r4.xxxx * r34.xyzw + r9.xyzw; r12.xyzw = r3.wwww * r33.xyzw; r4.xyzw = r4.xxxx * r35.xyzw + r12.xyzw; r3.y = 1 + -r3.y; r10.x = 0.886227369; r3.w = dot(r6.xyzw, r10.xyzw); r3.w = max(0, r3.w); r3.w = r3.y * r3.w; r6.x = r3.w * r3.z; r3.w = dot(r9.xyzw, r10.xyzw); r3.w = max(0, r3.w); r3.w = r3.y * r3.w; r6.y = r3.w * r3.z; r3.w = dot(r4.xyzw, r10.xyzw); r3.w = max(0, r3.w); r3.y = r3.y * r3.w; r6.z = r3.y * r3.z; } else { r6.xyz = float3(0,0,0); } r11.xyz = r11.xyz + r6.xyz; } } else { r3.y = cmp((int)r8.w == 3); if (r3.y != 0) { r3.yzw = min(fSHBlendRegion.www, r1.xyz); r1.xyz = float3(1,1,1) + -r1.xyz; r1.xyz = min(fSHBlendRegion.www, r1.xyz); r1.xyz = min(r3.yzw, r1.xyz); r1.y = min(r1.y, r1.z); r1.x = min(r1.x, r1.y); r1.x = saturate(r1.x / fSHBlendRegion.w); r1.y = cmp(r1.x != 0.000000); if (r1.y != 0) { r1.y = r7.z * r1.w + -r5.x; r1.z = 1 + -r1.y; r4.xyzw = r1.yyyy * r32.xyzw; r4.xyzw = r1.zzzz * r31.xyzw + r4.xyzw; r5.xyzw = r1.yyyy * r18.xyzw; r5.xyzw = r1.zzzz * r34.xyzw + r5.xyzw; r6.xyzw = r1.yyyy * r33.xyzw; r6.xyzw = r1.zzzz * r35.xyzw + r6.xyzw; r10.x = 0.886227369; r1.y = dot(r4.xyzw, r10.xyzw); r1.y = max(0, r1.y); r11.x = r1.y * r1.x; r1.y = dot(r5.xyzw, r10.xyzw); r1.y = max(0, r1.y); r11.y = r1.y * r1.x; r1.y = dot(r6.xyzw, r10.xyzw); r1.y = max(0, r1.y); r11.z = r1.y * r1.x; } else { r11.xyz = float3(0,0,0); } } else { r11.xyz = float3(0,0,0); } } } } r1.xyz = fDiffuseScale * r11.xyz; } else { r1.xyz = float3(0,0,0); } r2.xyz = sAmbDif.Sample(__smpsAmbDif_s, r2.xyz).xyz; r2.xyz = vAmbParam.xxx * r2.xyz; r1.w = r2.w * vAmbOccRat.x + vAmbOccRat.y; o0.xyz = r2.xyz * r1.www + r1.xyz; r0.x = LightMap.Load(r0.xyz).w; o0.w = r0.x * r3.x; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.32 on Sun Aug 14 06:56:32 2016 // // // Buffer Definitions: // // cbuffer $Globals // { // // row_major float4x4 mW2S[2]; // Offset: 0 Size: 128 // float4 vSMOf[2]; // Offset: 128 Size: 32 // float4 vS2VZ; // Offset: 160 Size: 16 // float4 scSMD[2]; // Offset: 176 Size: 32 // float4 scSM2D[2]; // Offset: 208 Size: 32 // float4 sdplane; // Offset: 240 Size: 16 // row_major float4x4 mTrsW2LPV[4]; // Offset: 256 Size: 256 // row_major float4x4 mTrsW2LPVSR[4]; // Offset: 512 Size: 256 // int nLPV3DDepth; // Offset: 768 Size: 4 // float fDiffuseScale; // Offset: 772 Size: 4 // float fNormalDir; // Offset: 776 Size: 4 // int bUseDiffuseInterreflection; // Offset: 780 Size: 4 // int nNumCascadeLevels; // Offset: 784 Size: 4 // float4 fSHBlendRegion; // Offset: 800 Size: 16 // row_major float4x4 mV2W; // Offset: 816 Size: 64 // row_major float4x4 mP2W; // Offset: 880 Size: 64 // float4 vAmbParam; // Offset: 944 Size: 16 // float4 vAmbOccRat; // Offset: 960 Size: 16 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // __smpsShadow sampler_c NA NA 0 1 // __smpsShadow2 sampler_c NA NA 1 1 // __smpsLPVBuffer sampler NA NA 2 1 // __smpsAmbDif sampler NA NA 7 1 // sShadow texture float4 2d 0 1 // sShadow2 texture float4 2d 1 1 // sLPVBuffer texture float4 2darray 2 1 // sDepth texture float4 2d 3 1 // sGBuf1 texture float4 2d 4 1 // LightMap texture float4 2d 5 1 // sAmbDif texture float4 cube 7 1 // $Globals cbuffer NA NA 0 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float xy // TEXCOORD 0 xyzw 1 NONE float xy // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[61], immediateIndexed dcl_sampler s0, mode_comparison dcl_sampler s1, mode_comparison dcl_sampler s2, mode_default dcl_sampler s7, mode_default dcl_resource_texture2d (float,float,float,float) t0 dcl_resource_texture2d (float,float,float,float) t1 dcl_resource_texture2darray (float,float,float,float) t2 dcl_resource_texture2d (float,float,float,float) t3 dcl_resource_texture2d (float,float,float,float) t4 dcl_resource_texture2d (float,float,float,float) t5 dcl_resource_texturecube (float,float,float,float) t7 dcl_input_ps_siv linear noperspective v0.xy, position dcl_input_ps linear v1.xy dcl_output o0.xyzw dcl_temps 36 ftoi r0.xy, v0.xyxx mov r0.zw, l(0,0,0,0) ld_indexable(texture2d)(float,float,float,float) r1.x, r0.xyww, t3.xyzw eq r1.y, r1.x, l(1.000000) discard_nz r1.y ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyww, t4.xyzw mul r3.xyzw, v1.yyyy, cb0[56].xyzw mad r3.xyzw, v1.xxxx, cb0[55].xyzw, r3.xyzw mad r1.xyzw, r1.xxxx, cb0[57].xyzw, r3.xyzw add r1.xyzw, r1.xyzw, cb0[58].xyzw div r1.xyzw, r1.xyzw, r1.wwww mad r2.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) dp3 r3.x, r2.xyzx, r2.xyzx rsq r3.x, r3.x mul r2.xyz, r2.xyzx, r3.xxxx mul r3.xyz, r2.yyyy, cb0[52].xyzx mad r3.xyz, r2.xxxx, cb0[51].xyzx, r3.xyzx mad r2.xyz, r2.zzzz, cb0[53].xyzx, r3.xyzx mul r3.xyzw, r1.yyyy, cb0[1].xyzw mad r3.xyzw, r1.xxxx, cb0[0].xyzw, r3.xyzw mad r3.xyzw, r1.zzzz, cb0[2].xyzw, r3.xyzw mad r3.xyzw, r1.wwww, cb0[3].xyzw, r3.xyzw mul r4.xyzw, r1.yyyy, cb0[5].xyzw mad r4.xyzw, r1.xxxx, cb0[4].xyzw, r4.xyzw mad r4.xyzw, r1.zzzz, cb0[6].xyzw, r4.xyzw mad r4.xyzw, r1.wwww, cb0[7].xyzw, r4.xyzw dp4 r5.x, r3.xyzw, cb0[10].xyzw lt r5.x, l(0.000000), r5.x movc r4.xyzw, r5.xxxx, r4.xyzw, r3.xyzw movc r6.xyzw, r5.xxxx, cb0[9].xyzw, cb0[8].xyzw movc r5.yz, r5.xxxx, cb0[12].xxyx, cb0[11].xxyx movc r7.xy, r5.xxxx, cb0[14].xyxx, cb0[13].xyxx div r4.xyz, r4.zxyz, r4.wwww if_z r5.x add r8.xz, r7.yyxy, r4.zzyz mov_sat r5.xw, r8.zzzx mad r5.xw, r5.xxxw, r6.xxxy, r6.zzzw mov_sat r4.x, r4.x sample_c_lz_indexable(texture2d)(float,float,float,float) r4.w, r5.xwxx, t0.xxxx, s0, r4.x add r8.yw, r5.zzzy, r8.xxxz mov_sat r9.xyzw, r8.wxzy mad r9.xyzw, r9.xyzw, r6.xyxy, r6.zwzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r9.xyxx, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x add r10.xz, r5.yyzy, r8.wwyw mov r10.yw, r8.xxxy mov_sat r11.xyzw, r10.xyxw mad r11.xyzw, r11.xyzw, r6.xyxy, r6.zwzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r11.xyxx, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x add r12.xy, r5.yzyy, r10.xzxx mov r12.zw, r10.yyyw mov_sat r13.xyzw, r12.xzxw mad r13.xyzw, r13.xyzw, r6.xyxy, r6.zwzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r13.xyxx, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r9.zwzz, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x mov_sat r5.xw, r8.wwwy mad r5.xw, r5.xxxw, r6.xxxy, r6.zzzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r5.xwxx, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r11.zwzz, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r13.zwzz, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x mov r8.y, r10.z mov_sat r9.xyzw, r8.zywy mad r9.xyzw, r9.xyzw, r6.xyxy, r6.zwzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r9.xyxx, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r9.zwzz, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x mov_sat r5.xw, r10.xxxz mad r5.xw, r5.xxxw, r6.xxxy, r6.zzzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r5.xwxx, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x mov r8.x, r12.x mov_sat r8.xy, r8.xyxx mad r5.xw, r8.xxxy, r6.xxxy, r6.zzzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r5.xwxx, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x mov r10.zw, r8.zzzw mov r10.y, r12.y mov_sat r8.xyzw, r10.zywy mad r8.xyzw, r8.xyzw, r6.xyxy, r6.zwzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r8.xyxx, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r8.zwzz, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x mov_sat r10.xy, r10.xyxx mad r5.xw, r10.xxxy, r6.xxxy, r6.zzzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r5.xwxx, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x mov_sat r12.xy, r12.xyxx mad r5.xw, r12.xxxy, r6.xxxy, r6.zzzw sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r5.xwxx, t0.xxxx, s0, r4.x add r4.w, r4.w, r5.x mad r4.w, -r4.w, l(0.062500), l(1.000000) else add r7.xz, r7.yyxy, r4.zzyz mov_sat r4.yz, r7.zzxz mad r4.yz, r4.yyzy, r6.xxyx, r6.zzwz mov_sat r4.x, r4.x sample_c_lz_indexable(texture2d)(float,float,float,float) r4.y, r4.yzyy, t1.xxxx, s1, r4.x add r7.yw, r5.zzzy, r7.xxxz mov_sat r8.xyzw, r7.wxzy mad r8.xyzw, r8.xyzw, r6.xyxy, r6.zwzw sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r8.xyxx, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y add r9.xz, r5.yyzy, r7.wwyw mov r9.yw, r7.xxxy mov_sat r10.xyzw, r9.xyxw mad r10.xyzw, r10.xyzw, r6.xyxy, r6.zwzw sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r10.xyxx, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y add r5.xy, r5.yzyy, r9.xzxx mov r5.zw, r9.yyyw mov_sat r11.xyzw, r5.xzxw mad r11.xyzw, r11.xyzw, r6.xyxy, r6.zwzw sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r11.xyxx, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r8.zwzz, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y mov_sat r5.zw, r7.wwwy mad r5.zw, r5.zzzw, r6.xxxy, r6.zzzw sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r5.zwzz, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r10.zwzz, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r11.zwzz, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y mov r7.y, r9.z mov_sat r8.xyzw, r7.zywy mad r8.xyzw, r8.xyzw, r6.xyxy, r6.zwzw sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r8.xyxx, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r8.zwzz, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y mov_sat r5.zw, r9.xxxz mad r5.zw, r5.zzzw, r6.xxxy, r6.zzzw sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r5.zwzz, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y mov r7.x, r5.x mov_sat r7.xy, r7.xyxx mad r5.zw, r7.xxxy, r6.xxxy, r6.zzzw sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r5.zwzz, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y mov r9.zw, r7.zzzw mov r9.y, r5.y mov_sat r7.xyzw, r9.zywy mad r7.xyzw, r7.xyzw, r6.xyxy, r6.zwzw sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r7.xyxx, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r7.zwzz, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y mov_sat r9.xy, r9.xyxx mad r5.zw, r9.xxxy, r6.xxxy, r6.zzzw sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r5.zwzz, t1.xxxx, s1, r4.x add r4.y, r4.z, r4.y mov_sat r5.xy, r5.xyxx mad r5.xy, r5.xyxx, r6.xyxx, r6.zwzz sample_c_lz_indexable(texture2d)(float,float,float,float) r4.x, r5.xyxx, t1.xxxx, s1, r4.x add r4.x, r4.x, r4.y mad r4.w, -r4.x, l(0.062500), l(1.000000) endif dp4_sat r3.x, cb0[15].xyzw, r3.xyzw mad r3.x, -r4.w, r3.x, l(1.000000) if_nz cb0[48].w mul r3.yzw, r1.yyyy, cb0[17].xxyz mad r3.yzw, r1.xxxx, cb0[16].xxyz, r3.yyzw mad r3.yzw, r1.zzzz, cb0[18].xxyz, r3.yyzw mad r4.xyz, r1.wwww, cb0[19].xyzx, r3.yzwy mul r3.yzw, r1.yyyy, cb0[21].xxyz mad r3.yzw, r1.xxxx, cb0[20].xxyz, r3.yyzw mad r3.yzw, r1.zzzz, cb0[22].xxyz, r3.yyzw mad r5.xyz, r1.wwww, cb0[23].xyzx, r3.yzwy mul r3.yzw, r1.yyyy, cb0[25].xxyz mad r3.yzw, r1.xxxx, cb0[24].xxyz, r3.yyzw mad r3.yzw, r1.zzzz, cb0[26].xxyz, r3.yyzw mad r6.xyz, r1.wwww, cb0[27].xyzx, r3.yzwy mul r3.yzw, r1.yyyy, cb0[29].xxyz mad r3.yzw, r1.xxxx, cb0[28].xxyz, r3.yyzw mad r3.yzw, r1.zzzz, cb0[30].xxyz, r3.yyzw mad r7.xyz, r1.wwww, cb0[31].xyzx, r3.yzwy mul r3.yzw, r1.yyyy, cb0[33].xxyz mad r3.yzw, r1.xxxx, cb0[32].xxyz, r3.yyzw mad r3.yzw, r1.zzzz, cb0[34].xxyz, r3.yyzw mad r3.yzw, r1.wwww, cb0[35].xxyz, r3.yyzw mul r8.xyz, r1.yyyy, cb0[37].xyzx mad r8.xyz, r1.xxxx, cb0[36].xyzx, r8.xyzx mad r8.xyz, r1.zzzz, cb0[38].xyzx, r8.xyzx mad r8.xyz, r1.wwww, cb0[39].xyzx, r8.xyzx mul r9.xyz, r1.yyyy, cb0[41].xyzx mad r9.xyz, r1.xxxx, cb0[40].xyzx, r9.xyzx mad r9.xyz, r1.zzzz, cb0[42].xyzx, r9.xyzx mad r9.xyz, r1.wwww, cb0[43].xyzx, r9.xyzx mul r10.xyz, r1.yyyy, cb0[45].xyzx mad r10.xyz, r1.xxxx, cb0[44].xyzx, r10.xyzx mad r1.xyz, r1.zzzz, cb0[46].xyzx, r10.xyzx mad r1.xyz, r1.wwww, cb0[47].xyzx, r1.xyzx mul r10.xyz, r2.yzxy, cb0[48].zzzz mul r10.yzw, r10.xxyz, l(0.000000, -1.02332747, 1.02332747, -1.02332747) add r11.xyz, -r3.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000) min r12.xyz, r3.yzwy, r11.xyzx min r1.w, r12.z, r12.y min r1.w, r1.w, r12.x ge r1.w, l(0.000000), r1.w if_nz r1.w ilt r1.w, l(1), cb0[49].x add r12.xyz, -r8.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) min r12.xyz, r8.xyzx, r12.xyzx min r8.w, r12.z, r12.y min r8.w, r8.w, r12.x lt r8.w, l(0.000000), r8.w and r1.w, r1.w, r8.w and r8.w, r1.w, l(1) if_z r1.w ilt r12.xy, l(2, 3, 0, 0), cb0[49].xxxx add r13.xyz, -r9.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) min r13.xyz, r9.xyzx, r13.xyzx min r1.w, r13.z, r13.y min r1.w, r1.w, r13.x lt r1.w, l(0.000000), r1.w movc r9.w, r1.w, l(2), r8.w movc r9.w, r12.x, r9.w, r8.w and r1.w, r1.w, r12.x add r12.xzw, -r1.xxyz, l(1.000000, 0.000000, 1.000000, 1.000000) min r12.xzw, r1.xxyz, r12.xxzw min r11.w, r12.w, r12.z min r11.w, r11.w, r12.x lt r11.w, l(0.000000), r11.w movc r12.x, r11.w, l(3), r9.w movc r12.x, r12.y, r12.x, r9.w and r11.w, r11.w, r12.y movc r11.w, r11.w, r12.x, l(-1) movc r8.w, r1.w, r9.w, r11.w endif else mov r8.w, l(0) endif itof r1.w, cb0[48].x mul r9.w, r1.w, r4.z round_ni r4.w, r9.w ftoi r9.w, r4.w iadd r9.w, r9.w, l(1) iadd r11.w, cb0[48].x, l(-1) imin r9.w, r9.w, r11.w itof r12.x, r9.w sample_indexable(texture2darray)(float,float,float,float) r13.xyzw, r4.xywx, t2.xyzw, s2 mov r12.yz, r4.xxyx sample_indexable(texture2darray)(float,float,float,float) r14.xyzw, r12.yzxy, t2.xyzw, s2 add r12.w, r1.w, r4.w add r15.zw, r1.wwww, r12.xxxw sample_indexable(texture2darray)(float,float,float,float) r16.xyzw, r12.yzwy, t2.xyzw, s2 mov r15.xy, r12.yzyy sample_indexable(texture2darray)(float,float,float,float) r12.xyzw, r15.xyzx, t2.xyzw, s2 add r15.z, r1.w, r15.z sample_indexable(texture2darray)(float,float,float,float) r17.xyzw, r15.xywx, t2.xyzw, s2 sample_indexable(texture2darray)(float,float,float,float) r15.xyzw, r15.xyzx, t2.xyzw, s2 mul r4.x, r1.w, r5.z round_ni r4.x, r4.x ftoi r4.y, r4.x iadd r4.y, r4.y, l(1) imin r4.y, r11.w, r4.y itof r4.y, r4.y imul null, r18.xyz, cb0[48].xxxx, l(3, 6, 9, 0) itof r18.xyz, r18.xyzx add r5.w, r4.x, r18.x add r19.x, r4.y, r18.x sample_indexable(texture2darray)(float,float,float,float) r20.xyzw, r5.xywx, t2.xyzw, s2 mov r19.yz, r5.xxyx sample_indexable(texture2darray)(float,float,float,float) r21.xyzw, r19.yzxy, t2.xyzw, s2 add r19.w, r1.w, r5.w add r22.zw, r1.wwww, r19.xxxw sample_indexable(texture2darray)(float,float,float,float) r23.xyzw, r19.yzwy, t2.xyzw, s2 mov r22.xy, r19.yzyy sample_indexable(texture2darray)(float,float,float,float) r19.xyzw, r22.xyzx, t2.xyzw, s2 add r22.z, r1.w, r22.z sample_indexable(texture2darray)(float,float,float,float) r24.xyzw, r22.xywx, t2.xyzw, s2 sample_indexable(texture2darray)(float,float,float,float) r22.xyzw, r22.xyzx, t2.xyzw, s2 mul r4.y, r1.w, r6.z round_ni r4.y, r4.y ftoi r5.x, r4.y iadd r5.x, r5.x, l(1) imin r5.x, r11.w, r5.x itof r5.x, r5.x add r6.w, r18.y, r4.y add r25.x, r18.y, r5.x sample_indexable(texture2darray)(float,float,float,float) r26.xyzw, r6.xywx, t2.xyzw, s2 mov r25.yz, r6.xxyx sample_indexable(texture2darray)(float,float,float,float) r27.xyzw, r25.yzxy, t2.xyzw, s2 add r25.w, r1.w, r6.w add r28.zw, r1.wwww, r25.xxxw sample_indexable(texture2darray)(float,float,float,float) r29.xyzw, r25.yzwy, t2.xyzw, s2 mov r28.xy, r25.yzyy sample_indexable(texture2darray)(float,float,float,float) r25.xyzw, r28.xyzx, t2.xyzw, s2 add r28.z, r1.w, r28.z sample_indexable(texture2darray)(float,float,float,float) r30.xyzw, r28.xywx, t2.xyzw, s2 sample_indexable(texture2darray)(float,float,float,float) r28.xyzw, r28.xyzx, t2.xyzw, s2 mul r5.x, r1.w, r7.z round_ni r5.x, r5.x ftoi r5.y, r5.x iadd r5.y, r5.y, l(1) imin r5.y, r11.w, r5.y itof r5.y, r5.y add r7.w, r18.z, r5.x add r18.x, r18.z, r5.y sample_indexable(texture2darray)(float,float,float,float) r31.xyzw, r7.xywx, t2.xyzw, s2 mov r18.yz, r7.xxyx sample_indexable(texture2darray)(float,float,float,float) r32.xyzw, r18.yzxy, t2.xyzw, s2 add r18.w, r1.w, r7.w add r33.zw, r1.wwww, r18.xxxw sample_indexable(texture2darray)(float,float,float,float) r34.xyzw, r18.yzwy, t2.xyzw, s2 mov r33.xy, r18.yzyy sample_indexable(texture2darray)(float,float,float,float) r18.xyzw, r33.xyzx, t2.xyzw, s2 add r33.z, r1.w, r33.z sample_indexable(texture2darray)(float,float,float,float) r35.xyzw, r33.xywx, t2.xyzw, s2 sample_indexable(texture2darray)(float,float,float,float) r33.xyzw, r33.xyzx, t2.xyzw, s2 if_z r8.w min r3.yzw, r3.yyzw, cb0[50].xxxx min r6.xyw, r11.xyxz, cb0[50].xxxx min r3.yzw, r3.yyzw, r6.xxyw min r3.z, r3.w, r3.z min r3.y, r3.z, r3.y div_sat r3.y, r3.y, cb0[50].x ne r3.z, r3.y, l(0.000000) if_nz r3.z mad r3.z, r4.z, r1.w, -r4.w add r3.w, -r3.z, l(1.000000) mul r11.xyzw, r14.xyzw, r3.zzzz mad r11.xyzw, r3.wwww, r13.xyzw, r11.xyzw mul r12.xyzw, r12.xyzw, r3.zzzz mad r12.xyzw, r3.wwww, r16.xyzw, r12.xyzw mul r13.xyzw, r15.xyzw, r3.zzzz mad r13.xyzw, r3.wwww, r17.xyzw, r13.xyzw mov r10.x, l(0.886227369) dp4 r3.z, r11.xyzw, r10.xyzw max r3.z, r3.z, l(0.000000) mul r11.x, r3.y, r3.z dp4 r3.z, r12.xyzw, r10.xyzw max r3.z, r3.z, l(0.000000) mul r11.y, r3.y, r3.z dp4 r3.z, r13.xyzw, r10.xyzw max r3.z, r3.z, l(0.000000) mul r11.z, r3.y, r3.z else mov r11.xyz, l(0,0,0,0) mov r3.y, l(0) endif lt r3.z, r3.y, l(1.000000) ilt r3.w, l(1), cb0[49].x and r3.z, r3.w, r3.z if_nz r3.z min r6.xyw, r8.xyxz, cb0[50].yyyy add r7.xyw, -r8.xyxz, l(1.000000, 1.000000, 0.000000, 1.000000) min r7.xyw, r7.xyxw, cb0[50].yyyy min r6.xyw, r6.xyxw, r7.xyxw min r3.z, r6.w, r6.y min r3.z, r3.z, r6.x div_sat r3.z, r3.z, cb0[50].y ne r3.w, r3.z, l(0.000000) if_nz r3.w mad r3.w, r5.z, r1.w, -r4.x add r4.z, -r3.w, l(1.000000) mul r12.xyzw, r21.xyzw, r3.wwww mad r12.xyzw, r4.zzzz, r20.xyzw, r12.xyzw mul r13.xyzw, r19.xyzw, r3.wwww mad r13.xyzw, r4.zzzz, r23.xyzw, r13.xyzw mul r14.xyzw, r22.xyzw, r3.wwww mad r14.xyzw, r4.zzzz, r24.xyzw, r14.xyzw add r3.y, -r3.y, l(1.000000) mov r10.x, l(0.886227369) dp4 r3.w, r12.xyzw, r10.xyzw max r3.w, r3.w, l(0.000000) mul r3.w, r3.w, r3.y mul r12.x, r3.z, r3.w dp4 r3.w, r13.xyzw, r10.xyzw max r3.w, r3.w, l(0.000000) mul r3.w, r3.w, r3.y mul r12.y, r3.z, r3.w dp4 r3.w, r14.xyzw, r10.xyzw max r3.w, r3.w, l(0.000000) mul r3.y, r3.w, r3.y mul r12.z, r3.z, r3.y else mov r12.xyz, l(0,0,0,0) endif add r11.xyz, r11.xyzx, r12.xyzx endif else ieq r3.y, r8.w, l(1) if_nz r3.y min r3.yzw, r8.xxyz, cb0[50].yyyy add r6.xyw, -r8.xyxz, l(1.000000, 1.000000, 0.000000, 1.000000) min r6.xyw, r6.xyxw, cb0[50].yyyy min r3.yzw, r3.yyzw, r6.xxyw min r3.z, r3.w, r3.z min r3.y, r3.z, r3.y div_sat r3.y, r3.y, cb0[50].y ne r3.z, r3.y, l(0.000000) if_nz r3.z mad r3.z, r5.z, r1.w, -r4.x add r3.w, -r3.z, l(1.000000) mul r12.xyzw, r21.xyzw, r3.zzzz mad r12.xyzw, r3.wwww, r20.xyzw, r12.xyzw mul r13.xyzw, r19.xyzw, r3.zzzz mad r13.xyzw, r3.wwww, r23.xyzw, r13.xyzw mul r14.xyzw, r22.xyzw, r3.zzzz mad r14.xyzw, r3.wwww, r24.xyzw, r14.xyzw mov r15.x, l(0.886227369) mov r15.yzw, r10.yyzw dp4 r3.z, r12.xyzw, r15.xyzw max r3.z, r3.z, l(0.000000) mul r11.x, r3.y, r3.z dp4 r3.z, r13.xyzw, r15.xyzw max r3.z, r3.z, l(0.000000) mul r11.y, r3.y, r3.z dp4 r3.z, r14.xyzw, r15.xyzw max r3.z, r3.z, l(0.000000) mul r11.z, r3.y, r3.z else mov r11.xyz, l(0,0,0,0) mov r3.y, l(0) endif lt r3.z, r3.y, l(1.000000) ilt r3.w, l(2), cb0[49].x and r3.z, r3.w, r3.z if_nz r3.z min r4.xzw, r9.xxyz, cb0[50].zzzz add r5.yzw, -r9.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000) min r5.yzw, r5.yyzw, cb0[50].zzzz min r4.xzw, r4.xxzw, r5.yyzw min r3.z, r4.w, r4.z min r3.z, r3.z, r4.x div_sat r3.z, r3.z, cb0[50].z ne r3.w, r3.z, l(0.000000) if_nz r3.w mad r3.w, r6.z, r1.w, -r4.y add r4.x, -r3.w, l(1.000000) mul r12.xyzw, r27.xyzw, r3.wwww mad r12.xyzw, r4.xxxx, r26.xyzw, r12.xyzw mul r13.xyzw, r25.xyzw, r3.wwww mad r13.xyzw, r4.xxxx, r29.xyzw, r13.xyzw mul r14.xyzw, r28.xyzw, r3.wwww mad r14.xyzw, r4.xxxx, r30.xyzw, r14.xyzw add r3.y, -r3.y, l(1.000000) mov r10.x, l(0.886227369) dp4 r3.w, r12.xyzw, r10.xyzw max r3.w, r3.w, l(0.000000) mul r3.w, r3.w, r3.y mul r8.x, r3.z, r3.w dp4 r3.w, r13.xyzw, r10.xyzw max r3.w, r3.w, l(0.000000) mul r3.w, r3.w, r3.y mul r8.y, r3.z, r3.w dp4 r3.w, r14.xyzw, r10.xyzw max r3.w, r3.w, l(0.000000) mul r3.y, r3.w, r3.y mul r8.z, r3.z, r3.y else mov r8.xyz, l(0,0,0,0) endif add r11.xyz, r8.xyzx, r11.xyzx endif else ieq r3.y, r8.w, l(2) if_nz r3.y min r3.yzw, r9.xxyz, cb0[50].zzzz add r4.xzw, -r9.xxyz, l(1.000000, 0.000000, 1.000000, 1.000000) min r4.xzw, r4.xxzw, cb0[50].zzzz min r3.yzw, r3.yyzw, r4.xxzw min r3.z, r3.w, r3.z min r3.y, r3.z, r3.y div_sat r3.y, r3.y, cb0[50].z ne r3.z, r3.y, l(0.000000) if_nz r3.z mad r3.z, r6.z, r1.w, -r4.y add r3.w, -r3.z, l(1.000000) mul r4.xyzw, r27.xyzw, r3.zzzz mad r4.xyzw, r3.wwww, r26.xyzw, r4.xyzw mul r6.xyzw, r25.xyzw, r3.zzzz mad r6.xyzw, r3.wwww, r29.xyzw, r6.xyzw mul r9.xyzw, r28.xyzw, r3.zzzz mad r9.xyzw, r3.wwww, r30.xyzw, r9.xyzw mov r12.x, l(0.886227369) mov r12.yzw, r10.yyzw dp4 r3.z, r4.xyzw, r12.xyzw max r3.z, r3.z, l(0.000000) mul r11.x, r3.y, r3.z dp4 r3.z, r6.xyzw, r12.xyzw max r3.z, r3.z, l(0.000000) mul r11.y, r3.y, r3.z dp4 r3.z, r9.xyzw, r12.xyzw max r3.z, r3.z, l(0.000000) mul r11.z, r3.y, r3.z else mov r11.xyz, l(0,0,0,0) mov r3.y, l(0) endif lt r3.z, r3.y, l(1.000000) ilt r3.w, l(3), cb0[49].x and r3.z, r3.w, r3.z if_nz r3.z min r4.xyz, r1.xyzx, cb0[50].wwww add r5.yzw, -r1.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000) min r5.yzw, r5.yyzw, cb0[50].wwww min r4.xyz, r4.xyzx, r5.yzwy min r3.z, r4.z, r4.y min r3.z, r3.z, r4.x div_sat r3.z, r3.z, cb0[50].w ne r3.w, r3.z, l(0.000000) if_nz r3.w mad r3.w, r7.z, r1.w, -r5.x add r4.x, -r3.w, l(1.000000) mul r6.xyzw, r32.xyzw, r3.wwww mad r6.xyzw, r4.xxxx, r31.xyzw, r6.xyzw mul r9.xyzw, r18.xyzw, r3.wwww mad r9.xyzw, r4.xxxx, r34.xyzw, r9.xyzw mul r12.xyzw, r33.xyzw, r3.wwww mad r4.xyzw, r4.xxxx, r35.xyzw, r12.xyzw add r3.y, -r3.y, l(1.000000) mov r10.x, l(0.886227369) dp4 r3.w, r6.xyzw, r10.xyzw max r3.w, r3.w, l(0.000000) mul r3.w, r3.w, r3.y mul r6.x, r3.z, r3.w dp4 r3.w, r9.xyzw, r10.xyzw max r3.w, r3.w, l(0.000000) mul r3.w, r3.w, r3.y mul r6.y, r3.z, r3.w dp4 r3.w, r4.xyzw, r10.xyzw max r3.w, r3.w, l(0.000000) mul r3.y, r3.w, r3.y mul r6.z, r3.z, r3.y else mov r6.xyz, l(0,0,0,0) endif add r11.xyz, r6.xyzx, r11.xyzx endif else ieq r3.y, r8.w, l(3) if_nz r3.y min r3.yzw, r1.xxyz, cb0[50].wwww add r1.xyz, -r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) min r1.xyz, r1.xyzx, cb0[50].wwww min r1.xyz, r1.xyzx, r3.yzwy min r1.y, r1.z, r1.y min r1.x, r1.y, r1.x div_sat r1.x, r1.x, cb0[50].w ne r1.y, r1.x, l(0.000000) if_nz r1.y mad r1.y, r7.z, r1.w, -r5.x add r1.z, -r1.y, l(1.000000) mul r4.xyzw, r32.xyzw, r1.yyyy mad r4.xyzw, r1.zzzz, r31.xyzw, r4.xyzw mul r5.xyzw, r18.xyzw, r1.yyyy mad r5.xyzw, r1.zzzz, r34.xyzw, r5.xyzw mul r6.xyzw, r33.xyzw, r1.yyyy mad r6.xyzw, r1.zzzz, r35.xyzw, r6.xyzw mov r10.x, l(0.886227369) dp4 r1.y, r4.xyzw, r10.xyzw max r1.y, r1.y, l(0.000000) mul r11.x, r1.x, r1.y dp4 r1.y, r5.xyzw, r10.xyzw max r1.y, r1.y, l(0.000000) mul r11.y, r1.x, r1.y dp4 r1.y, r6.xyzw, r10.xyzw max r1.y, r1.y, l(0.000000) mul r11.z, r1.x, r1.y else mov r11.xyz, l(0,0,0,0) endif else mov r11.xyz, l(0,0,0,0) endif endif endif endif mul r1.xyz, r11.xyzx, cb0[48].yyyy else mov r1.xyz, l(0,0,0,0) endif sample_indexable(texturecube)(float,float,float,float) r2.xyz, r2.xyzx, t7.xyzw, s7 mul r2.xyz, r2.xyzx, cb0[59].xxxx mad r1.w, r2.w, cb0[60].x, cb0[60].y mad o0.xyz, r2.xyzx, r1.wwww, r1.xyzx ld_indexable(texture2d)(float,float,float,float) r0.x, r0.xyzw, t5.wxyz mul o0.w, r3.x, r0.x ret // Approximately 590 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
e pixel shader that controls shadows in 9fd50d0624879ad1-ps_replace.txt


// ---- Created with 3Dmigoto v1.2.32 on Sun Aug 14 06:56:32 2016

cbuffer _Globals : register(b0)
{
row_major float4x4 mW2S[2] : packoffset(c0);
float4 vSMOf[2] : packoffset(c8);
float4 vS2VZ : packoffset(c10);
float4 scSMD[2] : packoffset(c11);
float4 scSM2D[2] : packoffset(c13);
float4 sdplane : packoffset(c15);
row_major float4x4 mTrsW2LPV[4] : packoffset(c16);
row_major float4x4 mTrsW2LPVSR[4] : packoffset(c32);
int nLPV3DDepth : packoffset(c48);
float fDiffuseScale : packoffset(c48.y);
float fNormalDir : packoffset(c48.z);
int bUseDiffuseInterreflection : packoffset(c48.w);
int nNumCascadeLevels : packoffset(c49);
float4 fSHBlendRegion : packoffset(c50);
row_major float4x4 mV2W : packoffset(c51);
row_major float4x4 mP2W : packoffset(c55);
float4 vAmbParam : packoffset(c59);
float4 vAmbOccRat : packoffset(c60);
}

SamplerState __smpsLPVBuffer_s : register(s2);
SamplerState __smpsAmbDif_s : register(s7);
SamplerComparisonState __smpsShadow_s : register(s0);
SamplerComparisonState __smpsShadow2_s : register(s1);
Texture2D<float4> sShadow : register(t0);
Texture2D<float4> sShadow2 : register(t1);
Texture2DArray<float4> sLPVBuffer : register(t2);
Texture2D<float4> sDepth : register(t3);
Texture2D<float4> sGBuf1 : register(t4);
Texture2D<float4> LightMap : register(t5);
TextureCube<float4> sAmbDif : register(t7);


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


void main(
float4 v0 : SV_Position0,
float4 v1 : TEXCOORD0,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31,r32,r33,r34,r35;
uint4 bitmask, uiDest;
float4 fDest;

r0.xy = (int2)v0.xy;
r0.zw = float2(0,0);
r1.x = sDepth.Load(r0.xyw).x;
r1.y = cmp(r1.x == 1.000000);
if (r1.y != 0) discard;
r2.xyzw = sGBuf1.Load(r0.xyw).xyzw;
r3.xyzw = mP2W._m10_m11_m12_m13 * v1.yyyy;
r3.xyzw = v1.xxxx * mP2W._m00_m01_m02_m03 + r3.xyzw;
r1.xyzw = r1.xxxx * mP2W._m20_m21_m22_m23 + r3.xyzw;
r1.xyzw = mP2W._m30_m31_m32_m33 + r1.xyzw;
r1.xyzw = r1.xyzw / r1.wwww;
r2.xyz = r2.xyz * float3(2,2,2) + float3(-1,-1,-1);
r3.x = dot(r2.xyz, r2.xyz);
r3.x = rsqrt(r3.x);
r2.xyz = r3.xxx * r2.xyz;
r3.xyz = mV2W._m10_m11_m12 * r2.yyy;
r3.xyz = r2.xxx * mV2W._m00_m01_m02 + r3.xyz;
r2.xyz = r2.zzz * mV2W._m20_m21_m22 + r3.xyz;
r3.xyzw = mW2S[0]._m10_m11_m12_m13 * r1.yyyy;
r3.xyzw = r1.xxxx * mW2S[0]._m00_m01_m02_m03 + r3.xyzw;
r3.xyzw = r1.zzzz * mW2S[0]._m20_m21_m22_m23 + r3.xyzw;
r3.xyzw = r1.wwww * mW2S[0]._m30_m31_m32_m33 + r3.xyzw;
r4.xyzw = mW2S[1]._m10_m11_m12_m13 * r1.yyyy;
r4.xyzw = r1.xxxx * mW2S[1]._m00_m01_m02_m03 + r4.xyzw;
r4.xyzw = r1.zzzz * mW2S[1]._m20_m21_m22_m23 + r4.xyzw;
r4.xyzw = r1.wwww * mW2S[1]._m30_m31_m32_m33 + r4.xyzw;
r5.x = dot(r3.xyzw, vS2VZ.xyzw);
r5.x = cmp(0 < r5.x);
r4.xyzw = r5.xxxx ? r4.xyzw : r3.xyzw;
r6.xyzw = r5.xxxx ? vSMOf[1].xyzw : vSMOf[0].xyzw;
r5.yz = r5.xx ? scSMD[1].xy : scSMD[0].xy;
r7.xy = r5.xx ? scSM2D[1].xy : scSM2D[0].xy;
r4.xyz = r4.zxy / r4.www;
if (r5.x == 0) {
r8.xz = r4.zy + r7.yx;
r5.xw = saturate(r8.zx);
r5.xw = r5.xw * r6.xy + r6.zw;
r4.x = saturate(r4.x);
r4.w = sShadow.SampleCmpLevelZero(__smpsShadow_s, r5.xw, r4.x).x;
r8.yw = r8.xz + r5.zy;
r9.xyzw = saturate(r8.wxzy);
r9.xyzw = r9.xyzw * r6.xyxy + r6.zwzw;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r9.xy, r4.x).x;
r4.w = r5.x + r4.w;
r10.xz = r8.wy + r5.yz;
r10.yw = r8.xy;
r11.xyzw = saturate(r10.xyxw);
r11.xyzw = r11.xyzw * r6.xyxy + r6.zwzw;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r11.xy, r4.x).x;
r4.w = r5.x + r4.w;
r12.xy = r10.xz + r5.yz;
r12.zw = r10.yw;
r13.xyzw = saturate(r12.xzxw);
r13.xyzw = r13.xyzw * r6.xyxy + r6.zwzw;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r13.xy, r4.x).x;
r4.w = r5.x + r4.w;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r9.zw, r4.x).x;
r4.w = r5.x + r4.w;
r5.xw = saturate(r8.wy);
r5.xw = r5.xw * r6.xy + r6.zw;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r5.xw, r4.x).x;
r4.w = r5.x + r4.w;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r11.zw, r4.x).x;
r4.w = r5.x + r4.w;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r13.zw, r4.x).x;
r4.w = r5.x + r4.w;
r8.y = r10.z;
r9.xyzw = saturate(r8.zywy);
r9.xyzw = r9.xyzw * r6.xyxy + r6.zwzw;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r9.xy, r4.x).x;
r4.w = r5.x + r4.w;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r9.zw, r4.x).x;
r4.w = r5.x + r4.w;
r5.xw = saturate(r10.xz);
r5.xw = r5.xw * r6.xy + r6.zw;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r5.xw, r4.x).x;
r4.w = r5.x + r4.w;
r8.x = r12.x;
r8.xy = saturate(r8.xy);
r5.xw = r8.xy * r6.xy + r6.zw;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r5.xw, r4.x).x;
r4.w = r5.x + r4.w;
r10.zw = r8.zw;
r10.y = r12.y;
r8.xyzw = saturate(r10.zywy);
r8.xyzw = r8.xyzw * r6.xyxy + r6.zwzw;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r8.xy, r4.x).x;
r4.w = r5.x + r4.w;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r8.zw, r4.x).x;
r4.w = r5.x + r4.w;
r10.xy = saturate(r10.xy);
r5.xw = r10.xy * r6.xy + r6.zw;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r5.xw, r4.x).x;
r4.w = r5.x + r4.w;
r12.xy = saturate(r12.xy);
r5.xw = r12.xy * r6.xy + r6.zw;
r5.x = sShadow.SampleCmpLevelZero(__smpsShadow_s, r5.xw, r4.x).x;
r4.w = r5.x + r4.w;
r4.w = -r4.w * 0.0625 + 1;
} else {
r7.xz = r4.zy + r7.yx;
r4.yz = saturate(r7.zx);
r4.yz = r4.yz * r6.xy + r6.zw;
r4.x = saturate(r4.x);
r4.y = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r4.yz, r4.x).x;
r7.yw = r7.xz + r5.zy;
r8.xyzw = saturate(r7.wxzy);
r8.xyzw = r8.xyzw * r6.xyxy + r6.zwzw;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r8.xy, r4.x).x;
r4.y = r4.y + r4.z;
r9.xz = r7.wy + r5.yz;
r9.yw = r7.xy;
r10.xyzw = saturate(r9.xyxw);
r10.xyzw = r10.xyzw * r6.xyxy + r6.zwzw;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r10.xy, r4.x).x;
r4.y = r4.y + r4.z;
r5.xy = r9.xz + r5.yz;
r5.zw = r9.yw;
r11.xyzw = saturate(r5.xzxw);
r11.xyzw = r11.xyzw * r6.xyxy + r6.zwzw;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r11.xy, r4.x).x;
r4.y = r4.y + r4.z;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r8.zw, r4.x).x;
r4.y = r4.y + r4.z;
r5.zw = saturate(r7.wy);
r5.zw = r5.zw * r6.xy + r6.zw;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r5.zw, r4.x).x;
r4.y = r4.y + r4.z;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r10.zw, r4.x).x;
r4.y = r4.y + r4.z;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r11.zw, r4.x).x;
r4.y = r4.y + r4.z;
r7.y = r9.z;
r8.xyzw = saturate(r7.zywy);
r8.xyzw = r8.xyzw * r6.xyxy + r6.zwzw;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r8.xy, r4.x).x;
r4.y = r4.y + r4.z;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r8.zw, r4.x).x;
r4.y = r4.y + r4.z;
r5.zw = saturate(r9.xz);
r5.zw = r5.zw * r6.xy + r6.zw;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r5.zw, r4.x).x;
r4.y = r4.y + r4.z;
r7.x = r5.x;
r7.xy = saturate(r7.xy);
r5.zw = r7.xy * r6.xy + r6.zw;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r5.zw, r4.x).x;
r4.y = r4.y + r4.z;
r9.zw = r7.zw;
r9.y = r5.y;
r7.xyzw = saturate(r9.zywy);
r7.xyzw = r7.xyzw * r6.xyxy + r6.zwzw;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r7.xy, r4.x).x;
r4.y = r4.y + r4.z;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r7.zw, r4.x).x;
r4.y = r4.y + r4.z;
r9.xy = saturate(r9.xy);
r5.zw = r9.xy * r6.xy + r6.zw;
r4.z = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r5.zw, r4.x).x;
r4.y = r4.y + r4.z;
r5.xy = saturate(r5.xy);
r5.xy = r5.xy * r6.xy + r6.zw;
r4.x = sShadow2.SampleCmpLevelZero(__smpsShadow2_s, r5.xy, r4.x).x;
r4.x = r4.y + r4.x;
r4.w = -r4.x * 0.0625 + 1;
}
r3.x = saturate(dot(sdplane.xyzw, r3.xyzw));
r3.x = -r4.w * r3.x + 1;
if (bUseDiffuseInterreflection != 0) {
r3.yzw = mTrsW2LPV[0]._m10_m11_m12 * r1.yyy;
r3.yzw = r1.xxx * mTrsW2LPV[0]._m00_m01_m02 + r3.yzw;
r3.yzw = r1.zzz * mTrsW2LPV[0]._m20_m21_m22 + r3.yzw;
r4.xyz = r1.www * mTrsW2LPV[0]._m30_m31_m32 + r3.yzw;
r3.yzw = mTrsW2LPV[1]._m10_m11_m12 * r1.yyy;
r3.yzw = r1.xxx * mTrsW2LPV[1]._m00_m01_m02 + r3.yzw;
r3.yzw = r1.zzz * mTrsW2LPV[1]._m20_m21_m22 + r3.yzw;
r5.xyz = r1.www * mTrsW2LPV[1]._m30_m31_m32 + r3.yzw;
r3.yzw = mTrsW2LPV[2]._m10_m11_m12 * r1.yyy;
r3.yzw = r1.xxx * mTrsW2LPV[2]._m00_m01_m02 + r3.yzw;
r3.yzw = r1.zzz * mTrsW2LPV[2]._m20_m21_m22 + r3.yzw;
r6.xyz = r1.www * mTrsW2LPV[2]._m30_m31_m32 + r3.yzw;
r3.yzw = mTrsW2LPV[3]._m10_m11_m12 * r1.yyy;
r3.yzw = r1.xxx * mTrsW2LPV[3]._m00_m01_m02 + r3.yzw;
r3.yzw = r1.zzz * mTrsW2LPV[3]._m20_m21_m22 + r3.yzw;
r7.xyz = r1.www * mTrsW2LPV[3]._m30_m31_m32 + r3.yzw;
r3.yzw = mTrsW2LPVSR[0]._m10_m11_m12 * r1.yyy;
r3.yzw = r1.xxx * mTrsW2LPVSR[0]._m00_m01_m02 + r3.yzw;
r3.yzw = r1.zzz * mTrsW2LPVSR[0]._m20_m21_m22 + r3.yzw;
r3.yzw = r1.www * mTrsW2LPVSR[0]._m30_m31_m32 + r3.yzw;
r8.xyz = mTrsW2LPVSR[1]._m10_m11_m12 * r1.yyy;
r8.xyz = r1.xxx * mTrsW2LPVSR[1]._m00_m01_m02 + r8.xyz;
r8.xyz = r1.zzz * mTrsW2LPVSR[1]._m20_m21_m22 + r8.xyz;
r8.xyz = r1.www * mTrsW2LPVSR[1]._m30_m31_m32 + r8.xyz;
r9.xyz = mTrsW2LPVSR[2]._m10_m11_m12 * r1.yyy;
r9.xyz = r1.xxx * mTrsW2LPVSR[2]._m00_m01_m02 + r9.xyz;
r9.xyz = r1.zzz * mTrsW2LPVSR[2]._m20_m21_m22 + r9.xyz;
r9.xyz = r1.www * mTrsW2LPVSR[2]._m30_m31_m32 + r9.xyz;
r10.xyz = mTrsW2LPVSR[3]._m10_m11_m12 * r1.yyy;
r10.xyz = r1.xxx * mTrsW2LPVSR[3]._m00_m01_m02 + r10.xyz;
r1.xyz = r1.zzz * mTrsW2LPVSR[3]._m20_m21_m22 + r10.xyz;
r1.xyz = r1.www * mTrsW2LPVSR[3]._m30_m31_m32 + r1.xyz;
r10.xyz = fNormalDir * r2.yzx;
r10.yzw = float3(-1.02332747,1.02332747,-1.02332747) * r10.xyz;
r11.xyz = float3(1,1,1) + -r3.yzw;
r12.xyz = min(r11.xyz, r3.yzw);
r1.w = min(r12.y, r12.z);
r1.w = min(r12.x, r1.w);
r1.w = cmp(0 >= r1.w);
if (r1.w != 0) {
r1.w = cmp(1 < nNumCascadeLevels);
r12.xyz = float3(1,1,1) + -r8.xyz;
r12.xyz = min(r12.xyz, r8.xyz);
r8.w = min(r12.y, r12.z);
r8.w = min(r12.x, r8.w);
r8.w = cmp(0 < r8.w);
r1.w = r1.w ? r8.w : 0;
r8.w = r1.w ? 1 : 0;
if (r1.w == 0) {
r12.xy = cmp(int2(2,3) < nNumCascadeLevels);
r13.xyz = float3(1,1,1) + -r9.xyz;
r13.xyz = min(r13.xyz, r9.xyz);
r1.w = min(r13.y, r13.z);
r1.w = min(r13.x, r1.w);
r1.w = cmp(0 < r1.w);
r9.w = r1.w ? 2 : r8.w;
r9.w = r12.x ? r9.w : r8.w;
r1.w = r1.w ? r12.x : 0;
r12.xzw = float3(1,1,1) + -r1.xyz;
r12.xzw = min(r12.xzw, r1.xyz);
r11.w = min(r12.z, r12.w);
r11.w = min(r12.x, r11.w);
r11.w = cmp(0 < r11.w);
r12.x = r11.w ? 3 : r9.w;
r12.x = r12.y ? r12.x : r9.w;
r11.w = r11.w ? r12.y : 0;
r11.w = r11.w ? r12.x : -1;
r8.w = r1.w ? r9.w : r11.w;
}
} else {
r8.w = 0;
}
r1.w = nLPV3DDepth;
r9.w = r4.z * r1.w;
r4.w = floor(r9.w);
r9.w = (int)r4.w;
r9.w = (int)r9.w + 1;
r11.w = nLPV3DDepth + -1;
r9.w = min((int)r11.w, (int)r9.w);
r12.x = (int)r9.w;
r13.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r4.xyw).xyzw;
r12.yz = r4.xy;
r14.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r12.yzx).xyzw;
r12.w = r4.w + r1.w;
r15.zw = r12.xw + r1.ww;
r16.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r12.yzw).xyzw;
r15.xy = r12.yz;
r12.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r15.xyz).xyzw;
r15.z = r15.z + r1.w;
r17.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r15.xyw).xyzw;
r15.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r15.xyz).xyzw;
r4.x = r5.z * r1.w;
r4.x = floor(r4.x);
r4.y = (int)r4.x;
r4.y = (int)r4.y + 1;
r4.y = min((int)r4.y, (int)r11.w);
r4.y = (int)r4.y;
r18.xyz = nLPV3DDepth * int3(3,6,9);
r18.xyz = (int3)r18.xyz;
r5.w = r18.x + r4.x;
r19.x = r18.x + r4.y;
r20.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r5.xyw).xyzw;
r19.yz = r5.xy;
r21.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r19.yzx).xyzw;
r19.w = r5.w + r1.w;
r22.zw = r19.xw + r1.ww;
r23.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r19.yzw).xyzw;
r22.xy = r19.yz;
r19.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r22.xyz).xyzw;
r22.z = r22.z + r1.w;
r24.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r22.xyw).xyzw;
r22.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r22.xyz).xyzw;
r4.y = r6.z * r1.w;
r4.y = floor(r4.y);
r5.x = (int)r4.y;
r5.x = (int)r5.x + 1;
r5.x = min((int)r5.x, (int)r11.w);
r5.x = (int)r5.x;
r6.w = r4.y + r18.y;
r25.x = r5.x + r18.y;
r26.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r6.xyw).xyzw;
r25.yz = r6.xy;
r27.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r25.yzx).xyzw;
r25.w = r6.w + r1.w;
r28.zw = r25.xw + r1.ww;
r29.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r25.yzw).xyzw;
r28.xy = r25.yz;
r25.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r28.xyz).xyzw;
r28.z = r28.z + r1.w;
r30.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r28.xyw).xyzw;
r28.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r28.xyz).xyzw;
r5.x = r7.z * r1.w;
r5.x = floor(r5.x);
r5.y = (int)r5.x;
r5.y = (int)r5.y + 1;
r5.y = min((int)r5.y, (int)r11.w);
r5.y = (int)r5.y;
r7.w = r5.x + r18.z;
r18.x = r5.y + r18.z;
r31.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r7.xyw).xyzw;
r18.yz = r7.xy;
r32.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r18.yzx).xyzw;
r18.w = r7.w + r1.w;
r33.zw = r18.xw + r1.ww;
r34.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r18.yzw).xyzw;
r33.xy = r18.yz;
r18.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r33.xyz).xyzw;
r33.z = r33.z + r1.w;
r35.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r33.xyw).xyzw;
r33.xyzw = sLPVBuffer.Sample(__smpsLPVBuffer_s, r33.xyz).xyzw;
if (r8.w == 0) {
r3.yzw = min(fSHBlendRegion.xxx, r3.yzw);
r6.xyw = min(fSHBlendRegion.xxx, r11.xyz);
r3.yzw = min(r6.xyw, r3.yzw);
r3.z = min(r3.z, r3.w);
r3.y = min(r3.y, r3.z);
r3.y = saturate(r3.y / fSHBlendRegion.x);
r3.z = cmp(r3.y != 0.000000);
if (r3.z != 0) {
r3.z = r4.z * r1.w + -r4.w;
r3.w = 1 + -r3.z;
r11.xyzw = r3.zzzz * r14.xyzw;
r11.xyzw = r3.wwww * r13.xyzw + r11.xyzw;
r12.xyzw = r3.zzzz * r12.xyzw;
r12.xyzw = r3.wwww * r16.xyzw + r12.xyzw;
r13.xyzw = r3.zzzz * r15.xyzw;
r13.xyzw = r3.wwww * r17.xyzw + r13.xyzw;
r10.x = 0.886227369;
r3.z = dot(r11.xyzw, r10.xyzw);
r3.z = max(0, r3.z);
r11.x = r3.z * r3.y;
r3.z = dot(r12.xyzw, r10.xyzw);
r3.z = max(0, r3.z);
r11.y = r3.z * r3.y;
r3.z = dot(r13.xyzw, r10.xyzw);
r3.z = max(0, r3.z);
r11.z = r3.z * r3.y;
} else {
r11.xyz = float3(0,0,0);
r3.y = 0;
}
r3.z = cmp(r3.y < 1);
r3.w = cmp(1 < nNumCascadeLevels);
r3.z = r3.w ? r3.z : 0;
if (r3.z != 0) {
r6.xyw = min(fSHBlendRegion.yyy, r8.xyz);
r7.xyw = float3(1,1,1) + -r8.xyz;
r7.xyw = min(fSHBlendRegion.yyy, r7.xyw);
r6.xyw = min(r7.xyw, r6.xyw);
r3.z = min(r6.y, r6.w);
r3.z = min(r6.x, r3.z);
r3.z = saturate(r3.z / fSHBlendRegion.y);
r3.w = cmp(r3.z != 0.000000);
if (r3.w != 0) {
r3.w = r5.z * r1.w + -r4.x;
r4.z = 1 + -r3.w;
r12.xyzw = r3.wwww * r21.xyzw;
r12.xyzw = r4.zzzz * r20.xyzw + r12.xyzw;
r13.xyzw = r3.wwww * r19.xyzw;
r13.xyzw = r4.zzzz * r23.xyzw + r13.xyzw;
r14.xyzw = r3.wwww * r22.xyzw;
r14.xyzw = r4.zzzz * r24.xyzw + r14.xyzw;
r3.y = 1 + -r3.y;
r10.x = 0.886227369;
r3.w = dot(r12.xyzw, r10.xyzw);
r3.w = max(0, r3.w);
r3.w = r3.y * r3.w;
r12.x = r3.w * r3.z;
r3.w = dot(r13.xyzw, r10.xyzw);
r3.w = max(0, r3.w);
r3.w = r3.y * r3.w;
r12.y = r3.w * r3.z;
r3.w = dot(r14.xyzw, r10.xyzw);
r3.w = max(0, r3.w);
r3.y = r3.y * r3.w;
r12.z = r3.y * r3.z;
} else {
r12.xyz = float3(0,0,0);
}
r11.xyz = r12.xyz + r11.xyz;
}
} else {
r3.y = cmp((int)r8.w == 1);
if (r3.y != 0) {
r3.yzw = min(fSHBlendRegion.yyy, r8.xyz);
r6.xyw = float3(1,1,1) + -r8.xyz;
r6.xyw = min(fSHBlendRegion.yyy, r6.xyw);
r3.yzw = min(r6.xyw, r3.yzw);
r3.z = min(r3.z, r3.w);
r3.y = min(r3.y, r3.z);
r3.y = saturate(r3.y / fSHBlendRegion.y);
r3.z = cmp(r3.y != 0.000000);
if (r3.z != 0) {
r3.z = r5.z * r1.w + -r4.x;
r3.w = 1 + -r3.z;
r12.xyzw = r3.zzzz * r21.xyzw;
r12.xyzw = r3.wwww * r20.xyzw + r12.xyzw;
r13.xyzw = r3.zzzz * r19.xyzw;
r13.xyzw = r3.wwww * r23.xyzw + r13.xyzw;
r14.xyzw = r3.zzzz * r22.xyzw;
r14.xyzw = r3.wwww * r24.xyzw + r14.xyzw;
r15.x = 0.886227369;
r15.yzw = r10.yzw;
r3.z = dot(r12.xyzw, r15.xyzw);
r3.z = max(0, r3.z);
r11.x = r3.z * r3.y;
r3.z = dot(r13.xyzw, r15.xyzw);
r3.z = max(0, r3.z);
r11.y = r3.z * r3.y;
r3.z = dot(r14.xyzw, r15.xyzw);
r3.z = max(0, r3.z);
r11.z = r3.z * r3.y;
} else {
r11.xyz = float3(0,0,0);
r3.y = 0;
}
r3.z = cmp(r3.y < 1);
r3.w = cmp(2 < nNumCascadeLevels);
r3.z = r3.w ? r3.z : 0;
if (r3.z != 0) {
r4.xzw = min(fSHBlendRegion.zzz, r9.xyz);
r5.yzw = float3(1,1,1) + -r9.xyz;
r5.yzw = min(fSHBlendRegion.zzz, r5.yzw);
r4.xzw = min(r5.yzw, r4.xzw);
r3.z = min(r4.z, r4.w);
r3.z = min(r4.x, r3.z);
r3.z = saturate(r3.z / fSHBlendRegion.z);
r3.w = cmp(r3.z != 0.000000);
if (r3.w != 0) {
r3.w = r6.z * r1.w + -r4.y;
r4.x = 1 + -r3.w;
r12.xyzw = r3.wwww * r27.xyzw;
r12.xyzw = r4.xxxx * r26.xyzw + r12.xyzw;
r13.xyzw = r3.wwww * r25.xyzw;
r13.xyzw = r4.xxxx * r29.xyzw + r13.xyzw;
r14.xyzw = r3.wwww * r28.xyzw;
r14.xyzw = r4.xxxx * r30.xyzw + r14.xyzw;
r3.y = 1 + -r3.y;
r10.x = 0.886227369;
r3.w = dot(r12.xyzw, r10.xyzw);
r3.w = max(0, r3.w);
r3.w = r3.y * r3.w;
r8.x = r3.w * r3.z;
r3.w = dot(r13.xyzw, r10.xyzw);
r3.w = max(0, r3.w);
r3.w = r3.y * r3.w;
r8.y = r3.w * r3.z;
r3.w = dot(r14.xyzw, r10.xyzw);
r3.w = max(0, r3.w);
r3.y = r3.y * r3.w;
r8.z = r3.y * r3.z;
} else {
r8.xyz = float3(0,0,0);
}
r11.xyz = r11.xyz + r8.xyz;
}
} else {
r3.y = cmp((int)r8.w == 2);
if (r3.y != 0) {
r3.yzw = min(fSHBlendRegion.zzz, r9.xyz);
r4.xzw = float3(1,1,1) + -r9.xyz;
r4.xzw = min(fSHBlendRegion.zzz, r4.xzw);
r3.yzw = min(r4.xzw, r3.yzw);
r3.z = min(r3.z, r3.w);
r3.y = min(r3.y, r3.z);
r3.y = saturate(r3.y / fSHBlendRegion.z);
r3.z = cmp(r3.y != 0.000000);
if (r3.z != 0) {
r3.z = r6.z * r1.w + -r4.y;
r3.w = 1 + -r3.z;
r4.xyzw = r3.zzzz * r27.xyzw;
r4.xyzw = r3.wwww * r26.xyzw + r4.xyzw;
r6.xyzw = r3.zzzz * r25.xyzw;
r6.xyzw = r3.wwww * r29.xyzw + r6.xyzw;
r9.xyzw = r3.zzzz * r28.xyzw;
r9.xyzw = r3.wwww * r30.xyzw + r9.xyzw;
r12.x = 0.886227369;
r12.yzw = r10.yzw;
r3.z = dot(r4.xyzw, r12.xyzw);
r3.z = max(0, r3.z);
r11.x = r3.z * r3.y;
r3.z = dot(r6.xyzw, r12.xyzw);
r3.z = max(0, r3.z);
r11.y = r3.z * r3.y;
r3.z = dot(r9.xyzw, r12.xyzw);
r3.z = max(0, r3.z);
r11.z = r3.z * r3.y;
} else {
r11.xyz = float3(0,0,0);
r3.y = 0;
}
r3.z = cmp(r3.y < 1);
r3.w = cmp(3 < nNumCascadeLevels);
r3.z = r3.w ? r3.z : 0;
if (r3.z != 0) {
r4.xyz = min(fSHBlendRegion.www, r1.xyz);
r5.yzw = float3(1,1,1) + -r1.xyz;
r5.yzw = min(fSHBlendRegion.www, r5.yzw);
r4.xyz = min(r5.yzw, r4.xyz);
r3.z = min(r4.y, r4.z);
r3.z = min(r4.x, r3.z);
r3.z = saturate(r3.z / fSHBlendRegion.w);
r3.w = cmp(r3.z != 0.000000);
if (r3.w != 0) {
r3.w = r7.z * r1.w + -r5.x;
r4.x = 1 + -r3.w;
r6.xyzw = r3.wwww * r32.xyzw;
r6.xyzw = r4.xxxx * r31.xyzw + r6.xyzw;
r9.xyzw = r3.wwww * r18.xyzw;
r9.xyzw = r4.xxxx * r34.xyzw + r9.xyzw;
r12.xyzw = r3.wwww * r33.xyzw;
r4.xyzw = r4.xxxx * r35.xyzw + r12.xyzw;
r3.y = 1 + -r3.y;
r10.x = 0.886227369;
r3.w = dot(r6.xyzw, r10.xyzw);
r3.w = max(0, r3.w);
r3.w = r3.y * r3.w;
r6.x = r3.w * r3.z;
r3.w = dot(r9.xyzw, r10.xyzw);
r3.w = max(0, r3.w);
r3.w = r3.y * r3.w;
r6.y = r3.w * r3.z;
r3.w = dot(r4.xyzw, r10.xyzw);
r3.w = max(0, r3.w);
r3.y = r3.y * r3.w;
r6.z = r3.y * r3.z;
} else {
r6.xyz = float3(0,0,0);
}
r11.xyz = r11.xyz + r6.xyz;
}
} else {
r3.y = cmp((int)r8.w == 3);
if (r3.y != 0) {
r3.yzw = min(fSHBlendRegion.www, r1.xyz);
r1.xyz = float3(1,1,1) + -r1.xyz;
r1.xyz = min(fSHBlendRegion.www, r1.xyz);
r1.xyz = min(r3.yzw, r1.xyz);
r1.y = min(r1.y, r1.z);
r1.x = min(r1.x, r1.y);
r1.x = saturate(r1.x / fSHBlendRegion.w);
r1.y = cmp(r1.x != 0.000000);
if (r1.y != 0) {
r1.y = r7.z * r1.w + -r5.x;
r1.z = 1 + -r1.y;
r4.xyzw = r1.yyyy * r32.xyzw;
r4.xyzw = r1.zzzz * r31.xyzw + r4.xyzw;
r5.xyzw = r1.yyyy * r18.xyzw;
r5.xyzw = r1.zzzz * r34.xyzw + r5.xyzw;
r6.xyzw = r1.yyyy * r33.xyzw;
r6.xyzw = r1.zzzz * r35.xyzw + r6.xyzw;
r10.x = 0.886227369;
r1.y = dot(r4.xyzw, r10.xyzw);
r1.y = max(0, r1.y);
r11.x = r1.y * r1.x;
r1.y = dot(r5.xyzw, r10.xyzw);
r1.y = max(0, r1.y);
r11.y = r1.y * r1.x;
r1.y = dot(r6.xyzw, r10.xyzw);
r1.y = max(0, r1.y);
r11.z = r1.y * r1.x;
} else {
r11.xyz = float3(0,0,0);
}
} else {
r11.xyz = float3(0,0,0);
}
}
}
}
r1.xyz = fDiffuseScale * r11.xyz;
} else {
r1.xyz = float3(0,0,0);
}
r2.xyz = sAmbDif.Sample(__smpsAmbDif_s, r2.xyz).xyz;
r2.xyz = vAmbParam.xxx * r2.xyz;
r1.w = r2.w * vAmbOccRat.x + vAmbOccRat.y;
o0.xyz = r2.xyz * r1.www + r1.xyz;
r0.x = LightMap.Load(r0.xyz).w;
o0.w = r0.x * r3.x;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// using 3Dmigoto v1.2.32 on Sun Aug 14 06:56:32 2016
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
// row_major float4x4 mW2S[2]; // Offset: 0 Size: 128
// float4 vSMOf[2]; // Offset: 128 Size: 32
// float4 vS2VZ; // Offset: 160 Size: 16
// float4 scSMD[2]; // Offset: 176 Size: 32
// float4 scSM2D[2]; // Offset: 208 Size: 32
// float4 sdplane; // Offset: 240 Size: 16
// row_major float4x4 mTrsW2LPV[4]; // Offset: 256 Size: 256
// row_major float4x4 mTrsW2LPVSR[4]; // Offset: 512 Size: 256
// int nLPV3DDepth; // Offset: 768 Size: 4
// float fDiffuseScale; // Offset: 772 Size: 4
// float fNormalDir; // Offset: 776 Size: 4
// int bUseDiffuseInterreflection; // Offset: 780 Size: 4
// int nNumCascadeLevels; // Offset: 784 Size: 4
// float4 fSHBlendRegion; // Offset: 800 Size: 16
// row_major float4x4 mV2W; // Offset: 816 Size: 64
// row_major float4x4 mP2W; // Offset: 880 Size: 64
// float4 vAmbParam; // Offset: 944 Size: 16
// float4 vAmbOccRat; // Offset: 960 Size: 16
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// __smpsShadow sampler_c NA NA 0 1
// __smpsShadow2 sampler_c NA NA 1 1
// __smpsLPVBuffer sampler NA NA 2 1
// __smpsAmbDif sampler NA NA 7 1
// sShadow texture float4 2d 0 1
// sShadow2 texture float4 2d 1 1
// sLPVBuffer texture float4 2darray 2 1
// sDepth texture float4 2d 3 1
// sGBuf1 texture float4 2d 4 1
// LightMap texture float4 2d 5 1
// sAmbDif texture float4 cube 7 1
// $Globals cbuffer NA NA 0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float xy
// TEXCOORD 0 xyzw 1 NONE float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[61], immediateIndexed
dcl_sampler s0, mode_comparison
dcl_sampler s1, mode_comparison
dcl_sampler s2, mode_default
dcl_sampler s7, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2darray (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texturecube (float,float,float,float) t7
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_input_ps linear v1.xy
dcl_output o0.xyzw
dcl_temps 36
ftoi r0.xy, v0.xyxx
mov r0.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r1.x, r0.xyww, t3.xyzw
eq r1.y, r1.x, l(1.000000)
discard_nz r1.y
ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyww, t4.xyzw
mul r3.xyzw, v1.yyyy, cb0[56].xyzw
mad r3.xyzw, v1.xxxx, cb0[55].xyzw, r3.xyzw
mad r1.xyzw, r1.xxxx, cb0[57].xyzw, r3.xyzw
add r1.xyzw, r1.xyzw, cb0[58].xyzw
div r1.xyzw, r1.xyzw, r1.wwww
mad r2.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r3.x, r2.xyzx, r2.xyzx
rsq r3.x, r3.x
mul r2.xyz, r2.xyzx, r3.xxxx
mul r3.xyz, r2.yyyy, cb0[52].xyzx
mad r3.xyz, r2.xxxx, cb0[51].xyzx, r3.xyzx
mad r2.xyz, r2.zzzz, cb0[53].xyzx, r3.xyzx
mul r3.xyzw, r1.yyyy, cb0[1].xyzw
mad r3.xyzw, r1.xxxx, cb0[0].xyzw, r3.xyzw
mad r3.xyzw, r1.zzzz, cb0[2].xyzw, r3.xyzw
mad r3.xyzw, r1.wwww, cb0[3].xyzw, r3.xyzw
mul r4.xyzw, r1.yyyy, cb0[5].xyzw
mad r4.xyzw, r1.xxxx, cb0[4].xyzw, r4.xyzw
mad r4.xyzw, r1.zzzz, cb0[6].xyzw, r4.xyzw
mad r4.xyzw, r1.wwww, cb0[7].xyzw, r4.xyzw
dp4 r5.x, r3.xyzw, cb0[10].xyzw
lt r5.x, l(0.000000), r5.x
movc r4.xyzw, r5.xxxx, r4.xyzw, r3.xyzw
movc r6.xyzw, r5.xxxx, cb0[9].xyzw, cb0[8].xyzw
movc r5.yz, r5.xxxx, cb0[12].xxyx, cb0[11].xxyx
movc r7.xy, r5.xxxx, cb0[14].xyxx, cb0[13].xyxx
div r4.xyz, r4.zxyz, r4.wwww
if_z r5.x
add r8.xz, r7.yyxy, r4.zzyz
mov_sat r5.xw, r8.zzzx
mad r5.xw, r5.xxxw, r6.xxxy, r6.zzzw
mov_sat r4.x, r4.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.w, r5.xwxx, t0.xxxx, s0, r4.x
add r8.yw, r5.zzzy, r8.xxxz
mov_sat r9.xyzw, r8.wxzy
mad r9.xyzw, r9.xyzw, r6.xyxy, r6.zwzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r9.xyxx, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
add r10.xz, r5.yyzy, r8.wwyw
mov r10.yw, r8.xxxy
mov_sat r11.xyzw, r10.xyxw
mad r11.xyzw, r11.xyzw, r6.xyxy, r6.zwzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r11.xyxx, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
add r12.xy, r5.yzyy, r10.xzxx
mov r12.zw, r10.yyyw
mov_sat r13.xyzw, r12.xzxw
mad r13.xyzw, r13.xyzw, r6.xyxy, r6.zwzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r13.xyxx, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r9.zwzz, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
mov_sat r5.xw, r8.wwwy
mad r5.xw, r5.xxxw, r6.xxxy, r6.zzzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r5.xwxx, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r11.zwzz, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r13.zwzz, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
mov r8.y, r10.z
mov_sat r9.xyzw, r8.zywy
mad r9.xyzw, r9.xyzw, r6.xyxy, r6.zwzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r9.xyxx, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r9.zwzz, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
mov_sat r5.xw, r10.xxxz
mad r5.xw, r5.xxxw, r6.xxxy, r6.zzzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r5.xwxx, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
mov r8.x, r12.x
mov_sat r8.xy, r8.xyxx
mad r5.xw, r8.xxxy, r6.xxxy, r6.zzzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r5.xwxx, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
mov r10.zw, r8.zzzw
mov r10.y, r12.y
mov_sat r8.xyzw, r10.zywy
mad r8.xyzw, r8.xyzw, r6.xyxy, r6.zwzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r8.xyxx, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r8.zwzz, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
mov_sat r10.xy, r10.xyxx
mad r5.xw, r10.xxxy, r6.xxxy, r6.zzzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r5.xwxx, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
mov_sat r12.xy, r12.xyxx
mad r5.xw, r12.xxxy, r6.xxxy, r6.zzzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r5.x, r5.xwxx, t0.xxxx, s0, r4.x
add r4.w, r4.w, r5.x
mad r4.w, -r4.w, l(0.062500), l(1.000000)
else
add r7.xz, r7.yyxy, r4.zzyz
mov_sat r4.yz, r7.zzxz
mad r4.yz, r4.yyzy, r6.xxyx, r6.zzwz
mov_sat r4.x, r4.x
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.y, r4.yzyy, t1.xxxx, s1, r4.x
add r7.yw, r5.zzzy, r7.xxxz
mov_sat r8.xyzw, r7.wxzy
mad r8.xyzw, r8.xyzw, r6.xyxy, r6.zwzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r8.xyxx, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
add r9.xz, r5.yyzy, r7.wwyw
mov r9.yw, r7.xxxy
mov_sat r10.xyzw, r9.xyxw
mad r10.xyzw, r10.xyzw, r6.xyxy, r6.zwzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r10.xyxx, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
add r5.xy, r5.yzyy, r9.xzxx
mov r5.zw, r9.yyyw
mov_sat r11.xyzw, r5.xzxw
mad r11.xyzw, r11.xyzw, r6.xyxy, r6.zwzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r11.xyxx, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r8.zwzz, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
mov_sat r5.zw, r7.wwwy
mad r5.zw, r5.zzzw, r6.xxxy, r6.zzzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r5.zwzz, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r10.zwzz, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r11.zwzz, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
mov r7.y, r9.z
mov_sat r8.xyzw, r7.zywy
mad r8.xyzw, r8.xyzw, r6.xyxy, r6.zwzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r8.xyxx, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r8.zwzz, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
mov_sat r5.zw, r9.xxxz
mad r5.zw, r5.zzzw, r6.xxxy, r6.zzzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r5.zwzz, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
mov r7.x, r5.x
mov_sat r7.xy, r7.xyxx
mad r5.zw, r7.xxxy, r6.xxxy, r6.zzzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r5.zwzz, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
mov r9.zw, r7.zzzw
mov r9.y, r5.y
mov_sat r7.xyzw, r9.zywy
mad r7.xyzw, r7.xyzw, r6.xyxy, r6.zwzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r7.xyxx, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r7.zwzz, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
mov_sat r9.xy, r9.xyxx
mad r5.zw, r9.xxxy, r6.xxxy, r6.zzzw
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.z, r5.zwzz, t1.xxxx, s1, r4.x
add r4.y, r4.z, r4.y
mov_sat r5.xy, r5.xyxx
mad r5.xy, r5.xyxx, r6.xyxx, r6.zwzz
sample_c_lz_indexable(texture2d)(float,float,float,float) r4.x, r5.xyxx, t1.xxxx, s1, r4.x
add r4.x, r4.x, r4.y
mad r4.w, -r4.x, l(0.062500), l(1.000000)
endif
dp4_sat r3.x, cb0[15].xyzw, r3.xyzw
mad r3.x, -r4.w, r3.x, l(1.000000)
if_nz cb0[48].w
mul r3.yzw, r1.yyyy, cb0[17].xxyz
mad r3.yzw, r1.xxxx, cb0[16].xxyz, r3.yyzw
mad r3.yzw, r1.zzzz, cb0[18].xxyz, r3.yyzw
mad r4.xyz, r1.wwww, cb0[19].xyzx, r3.yzwy
mul r3.yzw, r1.yyyy, cb0[21].xxyz
mad r3.yzw, r1.xxxx, cb0[20].xxyz, r3.yyzw
mad r3.yzw, r1.zzzz, cb0[22].xxyz, r3.yyzw
mad r5.xyz, r1.wwww, cb0[23].xyzx, r3.yzwy
mul r3.yzw, r1.yyyy, cb0[25].xxyz
mad r3.yzw, r1.xxxx, cb0[24].xxyz, r3.yyzw
mad r3.yzw, r1.zzzz, cb0[26].xxyz, r3.yyzw
mad r6.xyz, r1.wwww, cb0[27].xyzx, r3.yzwy
mul r3.yzw, r1.yyyy, cb0[29].xxyz
mad r3.yzw, r1.xxxx, cb0[28].xxyz, r3.yyzw
mad r3.yzw, r1.zzzz, cb0[30].xxyz, r3.yyzw
mad r7.xyz, r1.wwww, cb0[31].xyzx, r3.yzwy
mul r3.yzw, r1.yyyy, cb0[33].xxyz
mad r3.yzw, r1.xxxx, cb0[32].xxyz, r3.yyzw
mad r3.yzw, r1.zzzz, cb0[34].xxyz, r3.yyzw
mad r3.yzw, r1.wwww, cb0[35].xxyz, r3.yyzw
mul r8.xyz, r1.yyyy, cb0[37].xyzx
mad r8.xyz, r1.xxxx, cb0[36].xyzx, r8.xyzx
mad r8.xyz, r1.zzzz, cb0[38].xyzx, r8.xyzx
mad r8.xyz, r1.wwww, cb0[39].xyzx, r8.xyzx
mul r9.xyz, r1.yyyy, cb0[41].xyzx
mad r9.xyz, r1.xxxx, cb0[40].xyzx, r9.xyzx
mad r9.xyz, r1.zzzz, cb0[42].xyzx, r9.xyzx
mad r9.xyz, r1.wwww, cb0[43].xyzx, r9.xyzx
mul r10.xyz, r1.yyyy, cb0[45].xyzx
mad r10.xyz, r1.xxxx, cb0[44].xyzx, r10.xyzx
mad r1.xyz, r1.zzzz, cb0[46].xyzx, r10.xyzx
mad r1.xyz, r1.wwww, cb0[47].xyzx, r1.xyzx
mul r10.xyz, r2.yzxy, cb0[48].zzzz
mul r10.yzw, r10.xxyz, l(0.000000, -1.02332747, 1.02332747, -1.02332747)
add r11.xyz, -r3.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000)
min r12.xyz, r3.yzwy, r11.xyzx
min r1.w, r12.z, r12.y
min r1.w, r1.w, r12.x
ge r1.w, l(0.000000), r1.w
if_nz r1.w
ilt r1.w, l(1), cb0[49].x
add r12.xyz, -r8.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
min r12.xyz, r8.xyzx, r12.xyzx
min r8.w, r12.z, r12.y
min r8.w, r8.w, r12.x
lt r8.w, l(0.000000), r8.w
and r1.w, r1.w, r8.w
and r8.w, r1.w, l(1)
if_z r1.w
ilt r12.xy, l(2, 3, 0, 0), cb0[49].xxxx
add r13.xyz, -r9.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
min r13.xyz, r9.xyzx, r13.xyzx
min r1.w, r13.z, r13.y
min r1.w, r1.w, r13.x
lt r1.w, l(0.000000), r1.w
movc r9.w, r1.w, l(2), r8.w
movc r9.w, r12.x, r9.w, r8.w
and r1.w, r1.w, r12.x
add r12.xzw, -r1.xxyz, l(1.000000, 0.000000, 1.000000, 1.000000)
min r12.xzw, r1.xxyz, r12.xxzw
min r11.w, r12.w, r12.z
min r11.w, r11.w, r12.x
lt r11.w, l(0.000000), r11.w
movc r12.x, r11.w, l(3), r9.w
movc r12.x, r12.y, r12.x, r9.w
and r11.w, r11.w, r12.y
movc r11.w, r11.w, r12.x, l(-1)
movc r8.w, r1.w, r9.w, r11.w
endif
else
mov r8.w, l(0)
endif
itof r1.w, cb0[48].x
mul r9.w, r1.w, r4.z
round_ni r4.w, r9.w
ftoi r9.w, r4.w
iadd r9.w, r9.w, l(1)
iadd r11.w, cb0[48].x, l(-1)
imin r9.w, r9.w, r11.w
itof r12.x, r9.w
sample_indexable(texture2darray)(float,float,float,float) r13.xyzw, r4.xywx, t2.xyzw, s2
mov r12.yz, r4.xxyx
sample_indexable(texture2darray)(float,float,float,float) r14.xyzw, r12.yzxy, t2.xyzw, s2
add r12.w, r1.w, r4.w
add r15.zw, r1.wwww, r12.xxxw
sample_indexable(texture2darray)(float,float,float,float) r16.xyzw, r12.yzwy, t2.xyzw, s2
mov r15.xy, r12.yzyy
sample_indexable(texture2darray)(float,float,float,float) r12.xyzw, r15.xyzx, t2.xyzw, s2
add r15.z, r1.w, r15.z
sample_indexable(texture2darray)(float,float,float,float) r17.xyzw, r15.xywx, t2.xyzw, s2
sample_indexable(texture2darray)(float,float,float,float) r15.xyzw, r15.xyzx, t2.xyzw, s2
mul r4.x, r1.w, r5.z
round_ni r4.x, r4.x
ftoi r4.y, r4.x
iadd r4.y, r4.y, l(1)
imin r4.y, r11.w, r4.y
itof r4.y, r4.y
imul null, r18.xyz, cb0[48].xxxx, l(3, 6, 9, 0)
itof r18.xyz, r18.xyzx
add r5.w, r4.x, r18.x
add r19.x, r4.y, r18.x
sample_indexable(texture2darray)(float,float,float,float) r20.xyzw, r5.xywx, t2.xyzw, s2
mov r19.yz, r5.xxyx
sample_indexable(texture2darray)(float,float,float,float) r21.xyzw, r19.yzxy, t2.xyzw, s2
add r19.w, r1.w, r5.w
add r22.zw, r1.wwww, r19.xxxw
sample_indexable(texture2darray)(float,float,float,float) r23.xyzw, r19.yzwy, t2.xyzw, s2
mov r22.xy, r19.yzyy
sample_indexable(texture2darray)(float,float,float,float) r19.xyzw, r22.xyzx, t2.xyzw, s2
add r22.z, r1.w, r22.z
sample_indexable(texture2darray)(float,float,float,float) r24.xyzw, r22.xywx, t2.xyzw, s2
sample_indexable(texture2darray)(float,float,float,float) r22.xyzw, r22.xyzx, t2.xyzw, s2
mul r4.y, r1.w, r6.z
round_ni r4.y, r4.y
ftoi r5.x, r4.y
iadd r5.x, r5.x, l(1)
imin r5.x, r11.w, r5.x
itof r5.x, r5.x
add r6.w, r18.y, r4.y
add r25.x, r18.y, r5.x
sample_indexable(texture2darray)(float,float,float,float) r26.xyzw, r6.xywx, t2.xyzw, s2
mov r25.yz, r6.xxyx
sample_indexable(texture2darray)(float,float,float,float) r27.xyzw, r25.yzxy, t2.xyzw, s2
add r25.w, r1.w, r6.w
add r28.zw, r1.wwww, r25.xxxw
sample_indexable(texture2darray)(float,float,float,float) r29.xyzw, r25.yzwy, t2.xyzw, s2
mov r28.xy, r25.yzyy
sample_indexable(texture2darray)(float,float,float,float) r25.xyzw, r28.xyzx, t2.xyzw, s2
add r28.z, r1.w, r28.z
sample_indexable(texture2darray)(float,float,float,float) r30.xyzw, r28.xywx, t2.xyzw, s2
sample_indexable(texture2darray)(float,float,float,float) r28.xyzw, r28.xyzx, t2.xyzw, s2
mul r5.x, r1.w, r7.z
round_ni r5.x, r5.x
ftoi r5.y, r5.x
iadd r5.y, r5.y, l(1)
imin r5.y, r11.w, r5.y
itof r5.y, r5.y
add r7.w, r18.z, r5.x
add r18.x, r18.z, r5.y
sample_indexable(texture2darray)(float,float,float,float) r31.xyzw, r7.xywx, t2.xyzw, s2
mov r18.yz, r7.xxyx
sample_indexable(texture2darray)(float,float,float,float) r32.xyzw, r18.yzxy, t2.xyzw, s2
add r18.w, r1.w, r7.w
add r33.zw, r1.wwww, r18.xxxw
sample_indexable(texture2darray)(float,float,float,float) r34.xyzw, r18.yzwy, t2.xyzw, s2
mov r33.xy, r18.yzyy
sample_indexable(texture2darray)(float,float,float,float) r18.xyzw, r33.xyzx, t2.xyzw, s2
add r33.z, r1.w, r33.z
sample_indexable(texture2darray)(float,float,float,float) r35.xyzw, r33.xywx, t2.xyzw, s2
sample_indexable(texture2darray)(float,float,float,float) r33.xyzw, r33.xyzx, t2.xyzw, s2
if_z r8.w
min r3.yzw, r3.yyzw, cb0[50].xxxx
min r6.xyw, r11.xyxz, cb0[50].xxxx
min r3.yzw, r3.yyzw, r6.xxyw
min r3.z, r3.w, r3.z
min r3.y, r3.z, r3.y
div_sat r3.y, r3.y, cb0[50].x
ne r3.z, r3.y, l(0.000000)
if_nz r3.z
mad r3.z, r4.z, r1.w, -r4.w
add r3.w, -r3.z, l(1.000000)
mul r11.xyzw, r14.xyzw, r3.zzzz
mad r11.xyzw, r3.wwww, r13.xyzw, r11.xyzw
mul r12.xyzw, r12.xyzw, r3.zzzz
mad r12.xyzw, r3.wwww, r16.xyzw, r12.xyzw
mul r13.xyzw, r15.xyzw, r3.zzzz
mad r13.xyzw, r3.wwww, r17.xyzw, r13.xyzw
mov r10.x, l(0.886227369)
dp4 r3.z, r11.xyzw, r10.xyzw
max r3.z, r3.z, l(0.000000)
mul r11.x, r3.y, r3.z
dp4 r3.z, r12.xyzw, r10.xyzw
max r3.z, r3.z, l(0.000000)
mul r11.y, r3.y, r3.z
dp4 r3.z, r13.xyzw, r10.xyzw
max r3.z, r3.z, l(0.000000)
mul r11.z, r3.y, r3.z
else
mov r11.xyz, l(0,0,0,0)
mov r3.y, l(0)
endif
lt r3.z, r3.y, l(1.000000)
ilt r3.w, l(1), cb0[49].x
and r3.z, r3.w, r3.z
if_nz r3.z
min r6.xyw, r8.xyxz, cb0[50].yyyy
add r7.xyw, -r8.xyxz, l(1.000000, 1.000000, 0.000000, 1.000000)
min r7.xyw, r7.xyxw, cb0[50].yyyy
min r6.xyw, r6.xyxw, r7.xyxw
min r3.z, r6.w, r6.y
min r3.z, r3.z, r6.x
div_sat r3.z, r3.z, cb0[50].y
ne r3.w, r3.z, l(0.000000)
if_nz r3.w
mad r3.w, r5.z, r1.w, -r4.x
add r4.z, -r3.w, l(1.000000)
mul r12.xyzw, r21.xyzw, r3.wwww
mad r12.xyzw, r4.zzzz, r20.xyzw, r12.xyzw
mul r13.xyzw, r19.xyzw, r3.wwww
mad r13.xyzw, r4.zzzz, r23.xyzw, r13.xyzw
mul r14.xyzw, r22.xyzw, r3.wwww
mad r14.xyzw, r4.zzzz, r24.xyzw, r14.xyzw
add r3.y, -r3.y, l(1.000000)
mov r10.x, l(0.886227369)
dp4 r3.w, r12.xyzw, r10.xyzw
max r3.w, r3.w, l(0.000000)
mul r3.w, r3.w, r3.y
mul r12.x, r3.z, r3.w
dp4 r3.w, r13.xyzw, r10.xyzw
max r3.w, r3.w, l(0.000000)
mul r3.w, r3.w, r3.y
mul r12.y, r3.z, r3.w
dp4 r3.w, r14.xyzw, r10.xyzw
max r3.w, r3.w, l(0.000000)
mul r3.y, r3.w, r3.y
mul r12.z, r3.z, r3.y
else
mov r12.xyz, l(0,0,0,0)
endif
add r11.xyz, r11.xyzx, r12.xyzx
endif
else
ieq r3.y, r8.w, l(1)
if_nz r3.y
min r3.yzw, r8.xxyz, cb0[50].yyyy
add r6.xyw, -r8.xyxz, l(1.000000, 1.000000, 0.000000, 1.000000)
min r6.xyw, r6.xyxw, cb0[50].yyyy
min r3.yzw, r3.yyzw, r6.xxyw
min r3.z, r3.w, r3.z
min r3.y, r3.z, r3.y
div_sat r3.y, r3.y, cb0[50].y
ne r3.z, r3.y, l(0.000000)
if_nz r3.z
mad r3.z, r5.z, r1.w, -r4.x
add r3.w, -r3.z, l(1.000000)
mul r12.xyzw, r21.xyzw, r3.zzzz
mad r12.xyzw, r3.wwww, r20.xyzw, r12.xyzw
mul r13.xyzw, r19.xyzw, r3.zzzz
mad r13.xyzw, r3.wwww, r23.xyzw, r13.xyzw
mul r14.xyzw, r22.xyzw, r3.zzzz
mad r14.xyzw, r3.wwww, r24.xyzw, r14.xyzw
mov r15.x, l(0.886227369)
mov r15.yzw, r10.yyzw
dp4 r3.z, r12.xyzw, r15.xyzw
max r3.z, r3.z, l(0.000000)
mul r11.x, r3.y, r3.z
dp4 r3.z, r13.xyzw, r15.xyzw
max r3.z, r3.z, l(0.000000)
mul r11.y, r3.y, r3.z
dp4 r3.z, r14.xyzw, r15.xyzw
max r3.z, r3.z, l(0.000000)
mul r11.z, r3.y, r3.z
else
mov r11.xyz, l(0,0,0,0)
mov r3.y, l(0)
endif
lt r3.z, r3.y, l(1.000000)
ilt r3.w, l(2), cb0[49].x
and r3.z, r3.w, r3.z
if_nz r3.z
min r4.xzw, r9.xxyz, cb0[50].zzzz
add r5.yzw, -r9.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000)
min r5.yzw, r5.yyzw, cb0[50].zzzz
min r4.xzw, r4.xxzw, r5.yyzw
min r3.z, r4.w, r4.z
min r3.z, r3.z, r4.x
div_sat r3.z, r3.z, cb0[50].z
ne r3.w, r3.z, l(0.000000)
if_nz r3.w
mad r3.w, r6.z, r1.w, -r4.y
add r4.x, -r3.w, l(1.000000)
mul r12.xyzw, r27.xyzw, r3.wwww
mad r12.xyzw, r4.xxxx, r26.xyzw, r12.xyzw
mul r13.xyzw, r25.xyzw, r3.wwww
mad r13.xyzw, r4.xxxx, r29.xyzw, r13.xyzw
mul r14.xyzw, r28.xyzw, r3.wwww
mad r14.xyzw, r4.xxxx, r30.xyzw, r14.xyzw
add r3.y, -r3.y, l(1.000000)
mov r10.x, l(0.886227369)
dp4 r3.w, r12.xyzw, r10.xyzw
max r3.w, r3.w, l(0.000000)
mul r3.w, r3.w, r3.y
mul r8.x, r3.z, r3.w
dp4 r3.w, r13.xyzw, r10.xyzw
max r3.w, r3.w, l(0.000000)
mul r3.w, r3.w, r3.y
mul r8.y, r3.z, r3.w
dp4 r3.w, r14.xyzw, r10.xyzw
max r3.w, r3.w, l(0.000000)
mul r3.y, r3.w, r3.y
mul r8.z, r3.z, r3.y
else
mov r8.xyz, l(0,0,0,0)
endif
add r11.xyz, r8.xyzx, r11.xyzx
endif
else
ieq r3.y, r8.w, l(2)
if_nz r3.y
min r3.yzw, r9.xxyz, cb0[50].zzzz
add r4.xzw, -r9.xxyz, l(1.000000, 0.000000, 1.000000, 1.000000)
min r4.xzw, r4.xxzw, cb0[50].zzzz
min r3.yzw, r3.yyzw, r4.xxzw
min r3.z, r3.w, r3.z
min r3.y, r3.z, r3.y
div_sat r3.y, r3.y, cb0[50].z
ne r3.z, r3.y, l(0.000000)
if_nz r3.z
mad r3.z, r6.z, r1.w, -r4.y
add r3.w, -r3.z, l(1.000000)
mul r4.xyzw, r27.xyzw, r3.zzzz
mad r4.xyzw, r3.wwww, r26.xyzw, r4.xyzw
mul r6.xyzw, r25.xyzw, r3.zzzz
mad r6.xyzw, r3.wwww, r29.xyzw, r6.xyzw
mul r9.xyzw, r28.xyzw, r3.zzzz
mad r9.xyzw, r3.wwww, r30.xyzw, r9.xyzw
mov r12.x, l(0.886227369)
mov r12.yzw, r10.yyzw
dp4 r3.z, r4.xyzw, r12.xyzw
max r3.z, r3.z, l(0.000000)
mul r11.x, r3.y, r3.z
dp4 r3.z, r6.xyzw, r12.xyzw
max r3.z, r3.z, l(0.000000)
mul r11.y, r3.y, r3.z
dp4 r3.z, r9.xyzw, r12.xyzw
max r3.z, r3.z, l(0.000000)
mul r11.z, r3.y, r3.z
else
mov r11.xyz, l(0,0,0,0)
mov r3.y, l(0)
endif
lt r3.z, r3.y, l(1.000000)
ilt r3.w, l(3), cb0[49].x
and r3.z, r3.w, r3.z
if_nz r3.z
min r4.xyz, r1.xyzx, cb0[50].wwww
add r5.yzw, -r1.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000)
min r5.yzw, r5.yyzw, cb0[50].wwww
min r4.xyz, r4.xyzx, r5.yzwy
min r3.z, r4.z, r4.y
min r3.z, r3.z, r4.x
div_sat r3.z, r3.z, cb0[50].w
ne r3.w, r3.z, l(0.000000)
if_nz r3.w
mad r3.w, r7.z, r1.w, -r5.x
add r4.x, -r3.w, l(1.000000)
mul r6.xyzw, r32.xyzw, r3.wwww
mad r6.xyzw, r4.xxxx, r31.xyzw, r6.xyzw
mul r9.xyzw, r18.xyzw, r3.wwww
mad r9.xyzw, r4.xxxx, r34.xyzw, r9.xyzw
mul r12.xyzw, r33.xyzw, r3.wwww
mad r4.xyzw, r4.xxxx, r35.xyzw, r12.xyzw
add r3.y, -r3.y, l(1.000000)
mov r10.x, l(0.886227369)
dp4 r3.w, r6.xyzw, r10.xyzw
max r3.w, r3.w, l(0.000000)
mul r3.w, r3.w, r3.y
mul r6.x, r3.z, r3.w
dp4 r3.w, r9.xyzw, r10.xyzw
max r3.w, r3.w, l(0.000000)
mul r3.w, r3.w, r3.y
mul r6.y, r3.z, r3.w
dp4 r3.w, r4.xyzw, r10.xyzw
max r3.w, r3.w, l(0.000000)
mul r3.y, r3.w, r3.y
mul r6.z, r3.z, r3.y
else
mov r6.xyz, l(0,0,0,0)
endif
add r11.xyz, r6.xyzx, r11.xyzx
endif
else
ieq r3.y, r8.w, l(3)
if_nz r3.y
min r3.yzw, r1.xxyz, cb0[50].wwww
add r1.xyz, -r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
min r1.xyz, r1.xyzx, cb0[50].wwww
min r1.xyz, r1.xyzx, r3.yzwy
min r1.y, r1.z, r1.y
min r1.x, r1.y, r1.x
div_sat r1.x, r1.x, cb0[50].w
ne r1.y, r1.x, l(0.000000)
if_nz r1.y
mad r1.y, r7.z, r1.w, -r5.x
add r1.z, -r1.y, l(1.000000)
mul r4.xyzw, r32.xyzw, r1.yyyy
mad r4.xyzw, r1.zzzz, r31.xyzw, r4.xyzw
mul r5.xyzw, r18.xyzw, r1.yyyy
mad r5.xyzw, r1.zzzz, r34.xyzw, r5.xyzw
mul r6.xyzw, r33.xyzw, r1.yyyy
mad r6.xyzw, r1.zzzz, r35.xyzw, r6.xyzw
mov r10.x, l(0.886227369)
dp4 r1.y, r4.xyzw, r10.xyzw
max r1.y, r1.y, l(0.000000)
mul r11.x, r1.x, r1.y
dp4 r1.y, r5.xyzw, r10.xyzw
max r1.y, r1.y, l(0.000000)
mul r11.y, r1.x, r1.y
dp4 r1.y, r6.xyzw, r10.xyzw
max r1.y, r1.y, l(0.000000)
mul r11.z, r1.x, r1.y
else
mov r11.xyz, l(0,0,0,0)
endif
else
mov r11.xyz, l(0,0,0,0)
endif
endif
endif
endif
mul r1.xyz, r11.xyzx, cb0[48].yyyy
else
mov r1.xyz, l(0,0,0,0)
endif
sample_indexable(texturecube)(float,float,float,float) r2.xyz, r2.xyzx, t7.xyzw, s7
mul r2.xyz, r2.xyzx, cb0[59].xxxx
mad r1.w, r2.w, cb0[60].x, cb0[60].y
mad o0.xyz, r2.xyzx, r1.wwww, r1.xyzx
ld_indexable(texture2d)(float,float,float,float) r0.x, r0.xyzw, t5.wxyz
mul o0.w, r3.x, r0.x
ret
// Approximately 590 instruction slots used

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

#15
Posted 08/13/2016 11:02 PM   
  1 / 2    
Scroll To Top