Project Cars 2 3D fix
  5 / 6    
Too hard for me, I do not understand everything ... sorry ... :-( ...
Too hard for me, I do not understand everything ... sorry ... :-( ...

#61
Posted 04/30/2018 08:15 PM   
[quote="philippemrowka"]I watched how to modify Shader, I did not understand everything ... I will try to spend time on the tutorial, to learn thank you very much[/quote] [quote="philippemrowka"]Too hard for me, I do not understand everything ... sorry ... :-( ...[/quote] All you need to do AFAIK, is just turn on hunting in 3Dmigoto's ini. This would be done via removing the ; from in front of the line it's on. Then simply hunt, dump and post. No one asked you to "modify"
philippemrowka said:I watched how to modify Shader, I did not understand everything ... I will try to spend time on the tutorial, to learn

thank you very much


philippemrowka said:Too hard for me, I do not understand everything ... sorry ... :-( ...


All you need to do AFAIK, is just turn on hunting in 3Dmigoto's ini. This would be done via removing the ; from in front of the line it's on.

Then simply hunt, dump and post.

No one asked you to "modify"

#62
Posted 04/30/2018 08:59 PM   
Do you have a detailed step-by-step procedure? I read the links of the post above ... I do not understand anything at all ... lol
Do you have a detailed step-by-step procedure? I read the links of the post above ... I do not understand anything at all ... lol

#63
Posted 04/30/2018 10:51 PM   
Press NUM0 to activate hunting/overlay and hunt VS (NUM4 or NUM5), and mark with NUM6
Press NUM0 to activate hunting/overlay and hunt VS (NUM4 or NUM5), and mark with NUM6

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

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

#64
Posted 04/30/2018 11:12 PM   
OK, thanks, i will test,
OK, thanks, i will test,

#65
Posted 05/01/2018 12:25 PM   
[quote="DHR"]@Shift-E Very nice that is working fine!! That water spray is probably a "Halo" effect not fixed by the Regex...if someone can hunt the VS (effect disappear) i can fix it manually.[/quote] ok so I found the guide to be pretty straight forward and easy to understand, although not as easy as I thought to find exactly what is causing the odd areas of each track. @DHR: For the water spray-halo issue, the VS is 76599b57e72f8646-vs_replace. When I disable this shader in the ini the halo effect is gone and objects look great, except the spray effect is a very important visual for immersion. Is there a way to fix the shader to eliminate halo without having to disable completely? here is the first chunk of code from the shader (its a long one): [code] // ---- Created with 3Dmigoto v1.3.10 on Tue May 01 20:01:43 2018 cbuffer COMMON_BUFFER1 : register(b13) { row_major float4x4 worldViewProj : packoffset(c0); float4 encryptionKey : packoffset(c4); row_major float4x4 world : packoffset(c5); row_major float4x4 worldView : packoffset(c9); row_major float4x4 worldI : packoffset(c13); } cbuffer COMMON_BUFFER2 : register(b12) { row_major float4x4 view : packoffset(c0); row_major float4x4 viewI : packoffset(c4); row_major float4x4 projMatrix : packoffset(c8); row_major float4x4 viewProj : packoffset(c12); row_major float4x4 viewProjI : packoffset(c16); row_major float4x4 globalMatrix0 : packoffset(c20); float4 screenSpaceDimensions : packoffset(c24); float4 frustumDimensions : packoffset(c25); float4 depthTranslation : packoffset(c26); float4 cLightingTransitionValues : packoffset(c27); float4 treeAmbientBoost : packoffset(c28); float4 viewportPixelDimensions : packoffset(c29); float4 globalVector4 : packoffset(c30); float4 globalVector6 : packoffset(c31); float4 globalVector7 : packoffset(c32); float4 globalVector8 : packoffset(c33); float4 fog_colour_towards : packoffset(c34); float4 fog_colour_away : packoffset(c35); float4 fogLightDir : packoffset(c36); float4 keyLightDir : packoffset(c37); float4 fog_min_inv_fog1_fog2 : packoffset(c38); float4 keyLightColour : packoffset(c39); float4 msaaMode : packoffset(c40); float4 heightFogVector0 : packoffset(c41); float4 heightFogVector1 : packoffset(c42); float4 bonnetReflectionAndClamp : packoffset(c43); float4 miscPhase2Flags : packoffset(c44); float3 keyLightDirVS : packoffset(c45); float3 worldCameraPos : packoffset(c46); float emissiveTextureControl : packoffset(c46.w); } cbuffer COMMON_BUFFER4 : register(b10) { float3 lightPosition0 : packoffset(c0); float3 lightDirection0 : packoffset(c1); float4 lightColour0 : packoffset(c2); float4 lightAttenuation0 : packoffset(c3); row_major float4x4 cShadowMatrices0[4] : packoffset(c4); float4 cShadowMapDim0 : packoffset(c20); float4 cShadowTransitions0 : packoffset(c21); float4 cShadowParamsA0 : packoffset(c22); row_major float4x4 cShadowViewMatrix0 : packoffset(c23); float3 lightPosition1 : packoffset(c27); float3 lightDirection1 : packoffset(c28); float4 lightColour1 : packoffset(c29); float4 lightAttenuation1 : packoffset(c30); row_major float4x4 cShadowMatrices1[4] : packoffset(c31); float4 cShadowMapDim1 : packoffset(c47); float4 cShadowTransitions1 : packoffset(c48); float4 cShadowParamsA1 : packoffset(c49); row_major float4x4 cShadowViewMatrix1 : packoffset(c50); float3 lightPosition2 : packoffset(c54); float3 lightDirection2 : packoffset(c55); float4 lightColour2 : packoffset(c56); float4 lightAttenuation2 : packoffset(c57); row_major float4x4 cShadowMatrices2[4] : packoffset(c58); float4 cShadowMapDim2 : packoffset(c74); float4 cShadowTransitions2 : packoffset(c75); float4 cShadowParamsA2 : packoffset(c76); row_major float4x4 cShadowViewMatrix2 : packoffset(c77); float3 lightPosition3 : packoffset(c81); float3 lightDirection3 : packoffset(c82); float4 lightColour3 : packoffset(c83); float4 lightAttenuation3 : packoffset(c84); row_major float4x4 cShadowMatrices3[4] : packoffset(c85); float4 cShadowMapDim3 : packoffset(c101); float4 cShadowTransitions3 : packoffset(c102); float4 cShadowParamsA3 : packoffset(c103); row_major float4x4 cShadowViewMatrix3 : packoffset(c104); float3 lightPosition4 : packoffset(c108); float3 lightDirection4 : packoffset(c109); float4 lightColour4 : packoffset(c110); float4 lightAttenuation4 : packoffset(c111); row_major float4x4 cShadowMatrices4[4] : packoffset(c112); float4 cShadowMapDim4 : packoffset(c128); float4 cShadowTransitions4 : packoffset(c129); float4 cShadowParamsA4 : packoffset(c130); row_major float4x4 cShadowViewMatrix4 : packoffset(c131); float3 lightPosition5 : packoffset(c135); float3 lightDirection5 : packoffset(c136); float4 lightColour5 : packoffset(c137); float4 lightAttenuation5 : packoffset(c138); row_major float4x4 cShadowMatrices5[4] : packoffset(c139); float4 cShadowMapDim5 : packoffset(c155); float4 cShadowTransitions5 : packoffset(c156); float4 cShadowParamsA5 : packoffset(c157); row_major float4x4 cShadowViewMatrix5 : packoffset(c158); float3 lightPosition6 : packoffset(c162); float3 lightDirection6 : packoffset(c163); float4 lightColour6 : packoffset(c164); float4 lightAttenuation6 : packoffset(c165); row_major float4x4 cShadowMatrices6[4] : packoffset(c166); float4 cShadowMapDim6 : packoffset(c182); float4 cShadowTransitions6 : packoffset(c183); float4 cShadowParamsA6 : packoffset(c184); row_major float4x4 cShadowViewMatrix6 : packoffset(c185); float3 lightPosition7 : packoffset(c189); float3 lightDirection7 : packoffset(c190); float4 lightColour7 : packoffset(c191); float4 lightAttenuation7 : packoffset(c192); row_major float4x4 cShadowMatrices7[4] : packoffset(c193); float4 cShadowMapDim7 : packoffset(c209); float4 cShadowTransitions7 : packoffset(c210); float4 cShadowParamsA7 : packoffset(c211); row_major float4x4 cShadowViewMatrix7 : packoffset(c212); float3 lightPosition8 : packoffset(c216); float3 lightDirection8 : packoffset(c217); float4 lightColour8 : packoffset(c218); float4 lightAttenuation8 : packoffset(c219); row_major float4x4 cShadowMatrices8[4] : packoffset(c220); float4 cShadowMapDim8 : packoffset(c236); float4 cShadowTransitions8 : packoffset(c237); float4 cShadowParamsA8 : packoffset(c238); row_major float4x4 cShadowViewMatrix8 : packoffset(c239); float4 upColour : packoffset(c243); float4 downColour : packoffset(c244); } cbuffer _GLOBAL_ : register(b0) { float forwarddirlightscaler : packoffset(c0) = {1}; float forwardspotlightscaler : packoffset(c0.y) = {1}; float forwardambientlightingscaler : packoffset(c0.z) = {1}; float additionaldirLightingScaler : packoffset(c0.w) = {1}; float additionalspotLightingScaler : packoffset(c1) = {1}; float particleAlphaThreshold : packoffset(c1.y) = {0.0500000007}; float startCamFadeDistToVertex : packoffset(c1.z) = {0}; float endCamFadeDistToVertex : packoffset(c1.w) = {0}; float maxSpecularCoef : packoffset(c2) = {0}; float4 nearFarClip : packoffset(c3); row_major float4x4 fadePointTransform : packoffset(c4); float4 fadePointInnerBoundsXYZ : packoffset(c8); float4 fadePointRecipBoundsDiffXYZ : packoffset(c9); float4 c_texAnimMatrixScaleTrans : packoffset(c10); float2 c_numAnimFrames : packoffset(c11); float c_totalAnimFrames : packoffset(c11.z); float2 c_recipNumAnimFrames : packoffset(c12); row_major float4x4 c_uvArray : packoffset(c13); } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : POSITION0, float2 v1 : NORMAL0, float2 v2 : TEXCOORD0, float4 v3 : COLOR0, out float4 o0 : SV_POSITION0, out float3 o1 : NORMAL0, out float4 o2 : TEXCOORD0, out float4 o3 : TEXCOORD1, out float4 o4 : TEXCOORD2, out float4 o5 : TEXCOORD3, out float4 o6 : TEXCOORD4, out float4 o7 : TEXCOORD5, out float4 o8 : TEXCOORD6, out float3 o9 : TEXCOORD8) { float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19; uint4 bitmask, uiDest; float4 fDest; sincos(v2.x, r0.x, r1.x); r2.z = r0.x; r2.y = r1.x; r2.x = -r0.x; r0.y = dot(v1.xy, r2.xy); r0.x = dot(v1.xy, r2.yz); r1.xyzw = worldView._m10_m11_m12_m13 * v0.yyyy; r1.xyzw = v0.xxxx * worldView._m00_m01_m02_m03 + r1.xyzw; r1.xyzw = v0.zzzz * worldView._m20_m21_m22_m23 + r1.xyzw; r1.xyzw = worldView._m30_m31_m32_m33 + r1.xyzw; r0.xy = r1.xy + r0.xy; r2.xyzw = projMatrix._m10_m11_m12_m13 * r0.yyyy; r2.xyzw = r0.xxxx * projMatrix._m00_m01_m02_m03 + r2.xyzw; r2.xyzw = r1.zzzz * projMatrix._m20_m21_m22_m23 + r2.xyzw; r2.xyzw = r1.wwww * projMatrix._m30_m31_m32_m33 + r2.xyzw; r0.z = -endCamFadeDistToVertex + abs(r1.z); r0.w = startCamFadeDistToVertex + -endCamFadeDistToVertex; r0.z = saturate(r0.z / r0.w); r0.z = v3.w * r0.z; r0.w = cmp(r0.z < particleAlphaThreshold); o5.w = r0.z; o0.w = r0.w ? -1 : r2.w; o0.xyz = r2.xyz; r0.z = dot(-viewI._m20_m21_m22, -viewI._m20_m21_m22); r0.z = rsqrt(r0.z); o1.xyz = -viewI._m20_m21_m22 * r0.zzz; r0.z = v2.y * c_totalAnimFrames + 1; r0.w = cmp(c_totalAnimFrames < r0.z); r1.x = -c_totalAnimFrames + r0.z; r0.z = r0.w ? r1.x : r0.z; r0.w = r0.z / c_numAnimFrames.x; r1.x = cmp(r0.w >= -r0.w); r0.w = frac(abs(r0.w)); r0.w = r1.x ? r0.w : -r0.w; r0.z = -r0.w * c_numAnimFrames.x + r0.z; r0.w = c_numAnimFrames.x * r0.w; r0.w = floor(r0.w); r3.y = r0.w * c_recipNumAnimFrames.x + c_texAnimMatrixScaleTrans.z; r0.z = c_recipNumAnimFrames.x * r0.z; r3.w = r0.z * c_recipNumAnimFrames.y + c_texAnimMatrixScaleTrans.w; r3.xz = c_texAnimMatrixScaleTrans.xy; r0.z = (int)v0.w; r4.xz = c_uvArray[r0.z/4]._m00_m01; r4.yw = float2(1,1); o2.w = dot(r4.zw, r3.zw); o2.z = dot(r4.xy, r3.xy); r0.z = c_totalAnimFrames * v2.y; r0.w = r0.z / c_numAnimFrames.x; o3.x = frac(r0.z); r0.z = cmp(r0.w >= -r0.w); r0.w = frac(abs(r0.w)); r0.z = r0.z ? r0.w : -r0.w; r0.z = c_numAnimFrames.x * r0.z; r0.w = v2.y * c_totalAnimFrames + -r0.z; r0.z = floor(r0.z); r3.y = r0.z * c_recipNumAnimFrames.x + c_texAnimMatrixScaleTrans.z; r0.z = c_recipNumAnimFrames.x * r0.w; r3.w = r0.z * c_recipNumAnimFrames.y + c_texAnimMatrixScaleTrans.w; r3.xz = c_texAnimMatrixScaleTrans.xy; o2.y = dot(r4.zw, r3.zw); o2.x = dot(r4.xy, r3.xy); r0.z = dot(v1.xy, v1.xy); r3.w = sqrt(r0.z); o3.y = r3.w / nearFarClip.y; r0.z = 1 / r2.w; r0.w = r2.x * r0.z; r0.z = -r2.y * r0.z; o4.y = r0.z * 0.5 + 0.5; o4.x = r0.w * 0.5 + 0.5; r2.xyzw = viewI._m10_m11_m12_m13 * r0.yyyy; r0.xyzw = r0.xxxx * viewI._m00_m01_m02_m03 + r2.xyzw; r0.xyzw = r1.zzzz * viewI._m20_m21_m22_m23 + r0.xyzw; r0.xyzw = r1.wwww * viewI._m30_m31_m32_m33 + r0.xyzw; r1.x = view._m12 * r0.y; r1.x = r0.x * view._m02 + r1.x; r1.x = r0.z * view._m22 + r1.x; r0.w = r0.w * view._m32 + r1.x; o4.z = r0.w / nearFarClip.y; o5.xyz = v3.xyz; r0.w = dot(fogLightDir.xz, fogLightDir.xz); r0.w = rsqrt(r0.w); r1.xy = fogLightDir.xz * r0.ww; r2.xyz = -worldCameraPos.xyz + r0.xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = sqrt(r0.w); r1.zw = r2.xz / r0.ww; r0.w = -fog_min_inv_fog1_fog2.x + r0.w; r0.w = saturate(fog_min_inv_fog1_fog2.y * r0.w); r0.w = log2(r0.w); r0.w = fog_min_inv_fog1_fog2.w * r0.w; r0.w = exp2(r0.w); r2.x = dot(r1.zw, r1.zw); r2.x = rsqrt(r2.x); r1.zw = r2.xx * r1.zw; r1.x = dot(r1.zw, r1.xy); r1.x = 1 + r1.x; r1.x = saturate(0.5 * r1.x); r1.yzw = -fog_colour_away.xyz + fog_colour_towards.xyz; r1.xyz = r1.xxx * r1.yzw + fog_colour_away.xyz; r1.w = fog_min_inv_fog1_fog2.z * r0.w; o6.w = -r0.w * fog_min_inv_fog1_fog2.z + 1; o6.xyz = r1.xyz * r1.www; r3.xyz = worldCameraPos.xyz + -r0.xyz; o7.xyzw = r3.xyzw; r1.xyz = lightPosition3.xyz + -r0.xyz; r0.w = dot(r1.xyz, r1.xyz); r1.w = lightAttenuation3.x * r0.w; r1.w = -r1.w * r1.w + 1; r1.w = max(9.99999982e-015, r1.w); r1.w = r1.w * r1.w; r1.w = r1.w * r1.w; r2.x = saturate(r1.w * r1.w + lightAttenuation3.y); r2.y = max(9.99999975e-005, r0.w); r0.w = rsqrt(r0.w); r2.y = 1 / r2.y; r2.x = r2.y * r2.x; r4.xyz = r1.xyz * r0.www; r2.z = dot(-lightDirection3.xyz, r4.xyz); r2.z = saturate(r2.z * lightAttenuation3.z + lightAttenuation3.w); r2.z = r2.z * r2.z; r2.x = r2.x * r2.z; r2.z = -1 + lightAttenuation3.y; r1.w = saturate(r1.w * r1.w + r2.z); r1.w = r2.y * r1.w; r2.y = cmp(1 < lightAttenuation3.y); r1.w = r2.y ? r1.w : r2.x; r2.xyz = lightPosition2.xyz + -r0.xyz; r2.w = dot(r2.xyz, r2.xyz); r3.w = lightAttenuation2.x * r2.w; r3.w = -r3.w * r3.w + 1; r3.w = max(9.99999982e-015, r3.w); r3.w = r3.w * r3.w; r3.w = r3.w * r3.w; r4.x = saturate(r3.w * r3.w + lightAttenuation2.y); r4.y = max(9.99999975e-005, r2.w); r2.w = rsqrt(r2.w); r4.y = 1 / r4.y; r4.x = r4.y * r4.x; r5.xyz = r2.xyz * r2.www; r4.z = dot(-lightDirection2.xyz, r5.xyz); r4.z = saturate(r4.z * lightAttenuation2.z + lightAttenuation2.w); r4.z = r4.z * r4.z; r4.x = r4.x * r4.z; r4.z = -1 + lightAttenuation2.y; r3.w = saturate(r3.w * r3.w + r4.z); r3.w = r4.y * r3.w; r4.y = cmp(1 < lightAttenuation2.y); r3.w = r4.y ? r3.w : r4.x; r4.xyz = lightPosition1.xyz + -r0.xyz; r4.w = dot(r4.xyz, r4.xyz); r5.x = lightAttenuation1.x * r4.w; r5.x = -r5.x * r5.x + 1; r5.x = max(9.99999982e-015, r5.x); r5.x = r5.x * r5.x; r5.x = r5.x * r5.x; r5.y = saturate(r5.x * r5.x + lightAttenuation1.y); r5.z = max(9.99999975e-005, r4.w); r4.w = rsqrt(r4.w); r5.z = 1 / r5.z; r5.y = r5.z * r5.y; r6.xyz = r4.xyz * r4.www; r5.w = dot(-lightDirection1.xyz, r6.xyz); r5.w = saturate(r5.w * lightAttenuation1.z + lightAttenuation1.w); r5.w = r5.w * r5.w; r5.y = r5.y * r5.w; r5.w = -1 + lightAttenuation1.y; r5.x = saturate(r5.x * r5.x + r5.w); r5.x = r5.z * r5.x; r5.z = cmp(1 < lightAttenuation1.y); r5.x = r5.z ? r5.x : r5.y; r5.y = forwarddirlightscaler * additionaldirLightingScaler; r5.yzw = lightColour0.xyz * r5.yyy; r6.x = additionalspotLightingScaler * forwardspotlightscaler; r6.yzw = lightColour1.xyz * r6.xxx; r7.xyz = r6.yzw * r5.xxx + r5.yzw; r8.xyz = lightColour2.xyz * r6.xxx; r7.xyz = r8.xyz * r3.www + r7.xyz; r9.xyz = lightColour3.xyz * r6.xxx; r7.xyz = r9.xyz * r1.www + r7.xyz; r10.xyz = lightPosition4.xyz + -r0.xyz; r7.w = dot(r10.xyz, r10.xyz); r8.w = lightAttenuation4.x * r7.w; r8.w = -r8.w * r8.w + 1; r8.w = max(9.99999982e-015, r8.w); r8.w = r8.w * r8.w; r8.w = r8.w * r8.w; r9.w = saturate(r8.w * r8.w + lightAttenuation4.y); r10.w = max(9.99999975e-005, r7.w); r7.w = rsqrt(r7.w); r10.w = 1 / r10.w; r9.w = r10.w * r9.w; r11.xyz = r10.xyz * r7.www; r11.x = dot(-lightDirection4.xyz, r11.xyz); r11.x = saturate(r11.x * lightAttenuation4.z + lightAttenuation4.w); r11.x = r11.x * r11.x; r9.w = r11.x * r9.w; r11.x = -1 + lightAttenuation4.y; r8.w = saturate(r8.w * r8.w + r11.x); r8.w = r10.w * r8.w; r10.w = cmp(1 < lightAttenuation4.y); r8.w = r10.w ? r8.w : r9.w; r11.xyz = lightColour4.xyz * r6.xxx; r7.xyz = r11.xyz * r8.www + r7.xyz; r12.xyz = lightPosition5.xyz + -r0.xyz; r9.w = dot(r12.xyz, r12.xyz); r10.w = lightAttenuation5.x * r9.w; r10.w = -r10.w * r10.w + 1; r10.w = max(9.99999982e-015, r10.w); r10.w = r10.w * r10.w; r10.w = r10.w * r10.w; r11.w = saturate(r10.w * r10.w + lightAttenuation5.y); r12.w = max(9.99999975e-005, r9.w); r9.w = rsqrt(r9.w); r12.w = 1 / r12.w; r11.w = r12.w * r11.w; r13.xyz = r12.xyz * r9.www; r13.x = dot(-lightDirection5.xyz, r13.xyz); r13.x = saturate(r13.x * lightAttenuation5.z + lightAttenuation5.w); r13.x = r13.x * r13.x; r11.w = r13.x * r11.w; r13.x = -1 + lightAttenuation5.y; r10.w = saturate(r10.w * r10.w + r13.x); r10.w = r12.w * r10.w; r12.w = cmp(1 < lightAttenuation5.y); r10.w = r12.w ? r10.w : r11.w; r13.xyz = lightColour5.xyz * r6.xxx; r7.xyz = r13.xyz * r10.www + r7.xyz; r14.xyz = lightPosition6.xyz + -r0.xyz; r11.w = dot(r14.xyz, r14.xyz); r12.w = lightAttenuation6.x * r11.w; r12.w = -r12.w * r12.w + 1; r12.w = max(9.99999982e-015, r12.w); r12.w = r12.w * r12.w; r12.w = r12.w * r12.w; r13.w = saturate(r12.w * r12.w + lightAttenuation6.y); r14.w = max(9.99999975e-005, r11.w); r11.w = rsqrt(r11.w); r14.w = 1 / r14.w; r13.w = r14.w * r13.w; r15.xyz = r14.xyz * r11.www; r15.x = dot(-lightDirection6.xyz, r15.xyz); r15.x = saturate(r15.x * lightAttenuation6.z + lightAttenuation6.w); r15.x = r15.x * r15.x; r13.w = r15.x * r13.w; r15.x = -1 + lightAttenuation6.y; r12.w = saturate(r12.w * r12.w + r15.x); r12.w = r14.w * r12.w; r14.w = cmp(1 < lightAttenuation6.y); r12.w = r14.w ? r12.w : r13.w; r15.xyz = lightColour6.xyz * r6.xxx; r7.xyz = r15.xyz * r12.www + r7.xyz; r16.xyz = lightPosition7.xyz + -r0.xyz; r0.xyz = lightPosition8.xyz + -r0.xyz; r13.w = dot(r16.xyz, r16.xyz); r14.w = rsqrt(r13.w); r17.xyz = r16.xyz * r14.www; r15.w = dot(-lightDirection7.xyz, r17.xyz); r15.w = saturate(r15.w * lightAttenuation7.z + lightAttenuation7.w); r15.w = r15.w * r15.w; r16.w = lightAttenuation7.x * r13.w; r13.w = max(9.99999975e-005, r13.w); r13.w = 1 / r13.w; r16.w = -r16.w * r16.w + 1; r16.w = max(9.99999982e-015, r16.w); r16.w = r16.w * r16.w; r16.w = r16.w * r16.w; r17.x = saturate(r16.w * r16.w + lightAttenuation7.y); r17.x = r17.x * r13.w; r15.w = r17.x * r15.w; r17.x = -1 + lightAttenuation7.y; r16.w = saturate(r16.w * r16.w + r17.x); r13.w = r16.w * r13.w; r16.w = cmp(1 < lightAttenuation7.y); r13.w = r16.w ? r13.w : r15.w; r17.xyz = lightColour7.xyz * r6.xxx; r18.xyz = lightColour8.xyz * r6.xxx; r7.xyz = r17.xyz * r13.www + r7.xyz; r6.x = dot(r0.xyz, r0.xyz); r15.w = rsqrt(r6.x); r19.xyz = r15.www * r0.xyz; r16.w = dot(-lightDirection8.xyz, r19.xyz); r16.w = saturate(r16.w * lightAttenuation8.z + lightAttenuation8.w); r16.w = r16.w * r16.w; r17.w = lightAttenuation8.x * r6.x; r6.x = max(9.99999975e-005, r6.x); r6.x = 1 / r6.x; r17.w = -r17.w * r17.w + 1; r17.w = max(9.99999982e-015, r17.w); r17.w = r17.w * r17.w; r17.w = r17.w * r17.w; r18.w = saturate(r17.w * r17.w + lightAttenuation8.y); r18.w = r18.w * r6.x; r16.w = r18.w * r16.w; r18.w = -1 + lightAttenuation8.y; r17.w = saturate(r17.w * r17.w + r18.w); r6.x = r17.w * r6.x; r17.w = cmp(1 < lightAttenuation8.y); r6.x = r17.w ? r6.x : r16.w; o8.xyz = r18.xyz * r6.xxx + r7.xyz; r7.x = cmp(0 < r5.x); r7.y = dot(r3.xyz, r3.xyz); r7.y = rsqrt(r7.y); r19.xyz = r7.yyy * r3.xyz; r3.xyz = r3.xyz * r7.yyy + lightDirection0.xyz; r4.xyz = r4.xyz * r4.www + r19.xyz; r4.w = dot(r4.xyz, r4.xyz); r4.w = rsqrt(r4.w); r4.xyz = r4.xyz * r4.www; r4.x = saturate(dot(r19.xyz, r4.xyz)); r4.x = max(9.99999982e-015, r4.x); r4.x = maxSpecularCoef * r4.x; r4.x = 0.409255564 * r4.x; r4.xyz = r4.xxx * r6.yzw; r4.w = dot(r3.xyz, r3.xyz); r4.w = rsqrt(r4.w); r3.xyz = r4.www * r3.xyz; r3.x = saturate(dot(-r19.xyz, r3.xyz)); r3.x = max(9.99999982e-015, r3.x); r3.x = maxSpecularCoef * r3.x; r3.x = 0.409255564 * r3.x; r3.xyz = r3.xxx * r5.yzw; r4.xyz = r4.xyz * r5.xxx + r3.xyz; r3.xyz = r7.xxx ? r4.xyz : r3.xyz; r2.xyz = r2.xyz * r2.www + r19.xyz; r2.w = dot(r2.xyz, r2.xyz); r2.w = rsqrt(r2.w); r2.xyz = r2.xyz * r2.www; r2.x = saturate(dot(r19.xyz, r2.xyz)); r2.x = max(9.99999982e-015, r2.x); r2.x = maxSpecularCoef * r2.x; r2.x = 0.409255564 * r2.x; r2.xyz = r2.xxx * r8.xyz; r2.xyz = r2.xyz * r3.www + r3.xyz; r2.w = cmp(0 < r3.w); r2.xyz = r2.www ? r2.xyz : r3.xyz; r1.xyz = r1.xyz * r0.www + r19.xyz; r0.w = dot(r1.xyz, r1.xyz); r0.w = rsqrt(r0.w); r1.xyz = r1.xyz * r0.www; r0.w = saturate(dot(r19.xyz, r1.xyz)); r0.w = max(9.99999982e-015, r0.w); r0.w = maxSpecularCoef * r0.w; r0.w = 0.409255564 * r0.w; r1.xyz = r0.www * r9.xyz; r1.xyz = r1.xyz * r1.www + r2.xyz; r0.w = cmp(0 < r1.w); r1.xyz = r0.www ? r1.xyz : r2.xyz; r2.xyz = r10.xyz * r7.www + r19.xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = rsqrt(r0.w); r2.xyz = r2.xyz * r0.www; r0.w = saturate(dot(r19.xyz, r2.xyz)); r0.w = max(9.99999982e-015, r0.w); r0.w = maxSpecularCoef * r0.w; r0.w = 0.409255564 * r0.w; r2.xyz = r0.www * r11.xyz; r2.xyz = r2.xyz * r8.www + r1.xyz; r0.w = cmp(0 < r8.w); r1.xyz = r0.www ? r2.xyz : r1.xyz; r2.xyz = r12.xyz * r9.www + r19.xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = rsqrt(r0.w); r2.xyz = r2.xyz * r0.www; r0.w = saturate(dot(r19.xyz, r2.xyz)); r0.w = max(9.99999982e-015, r0.w); r0.w = maxSpecularCoef * r0.w; r0.w = 0.409255564 * r0.w; r2.xyz = r0.www * r13.xyz; r2.xyz = r2.xyz * r10.www + r1.xyz; r0.w = cmp(0 < r10.w); r1.xyz = r0.www ? r2.xyz : r1.xyz; r2.xyz = r14.xyz * r11.www + r19.xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = rsqrt(r0.w); r2.xyz = r2.xyz * r0.www; r0.w = saturate(dot(r19.xyz, r2.xyz)); r0.w = max(9.99999982e-015, r0.w); r0.w = maxSpecularCoef * r0.w; r0.w = 0.409255564 * r0.w; r2.xyz = r0.www * r15.xyz; r2.xyz = r2.xyz * r12.www + r1.xyz; r0.w = cmp(0 < r12.w); r1.xyz = r0.www ? r2.xyz : r1.xyz; r2.xyz = r16.xyz * r14.www + r19.xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = rsqrt(r0.w); r2.xyz = r2.xyz * r0.www; r0.w = saturate(dot(r19.xyz, r2.xyz)); r0.w = max(9.99999982e-015, r0.w); r0.w = maxSpecularCoef * r0.w; r0.w = 0.409255564 * r0.w; r2.xyz = r0.www * r17.xyz; r2.xyz = r2.xyz * r13.www + r1.xyz; r0.w = cmp(0 < r13.w); r1.xyz = r0.www ? r2.xyz : r1.xyz; r0.xyz = r0.xyz * r15.www + r19.xyz; r0.w = dot(r0.xyz, r0.xyz); r0.w = rsqrt(r0.w); r0.xyz = r0.xyz * r0.www; r0.x = saturate(dot(r19.xyz, r0.xyz)); r0.x = max(9.99999982e-015, r0.x); r0.x = maxSpecularCoef * r0.x; r0.x = 0.409255564 * r0.x; r0.xyz = r0.xxx * r18.xyz; r0.xyz = r0.xyz * r6.xxx + r1.xyz; r0.w = cmp(0 < r6.x); o9.xyz = r0.www ? r0.xyz : r1.xyz; return; } [/code] allow me to ask some noob questions I could not find answers for, so I thought I could just hunt the shaders for any oddity I saw and disable them per the guides instructions which is easy enough - but it seems like the closest I could find was the shader that removes the entire object instead of just the reflection I was looking for. Is the reflection part of the shader that can be disabled or corrected? I also can't tell if it is the light source itself that needs correcting, although the lights look fine - but when the light hits certain objects it seems to produce reflections that do not look right. This can be on trees, signs, parts of the road, even distant mountains. From what I notice they are all far away, and once you get within 80 ft or so, everything looks fine. Is this one of those situations, where even if I fixed them at distance - then they would be off as I got closer (like a pick your poison type of situation)? I also tried fixing the main menu UI, was able to fix it somewhat but then that screwed up the in race menus and HUD. So even though I do not use the HUD, I set everything back. It seems the front menu affects other more important areas of the game so it can not be truly fixed? I am thinking you left it this way on purpose...I definitely don't want to be trying to fix anything you already took a look at and deemed unfixable.
DHR said:@Shift-E
Very nice that is working fine!!

That water spray is probably a "Halo" effect not fixed by the Regex...if someone can hunt the VS (effect disappear) i can fix it manually.


ok so I found the guide to be pretty straight forward and easy to understand, although not as easy as I thought to find exactly what is causing the odd areas of each track.

@DHR: For the water spray-halo issue, the VS is 76599b57e72f8646-vs_replace. When I disable this shader in the ini the halo effect is gone and objects look great, except the spray effect is a very important visual for immersion. Is there a way to fix the shader to eliminate halo without having to disable completely?

here is the first chunk of code from the shader (its a long one):

// ---- Created with 3Dmigoto v1.3.10 on Tue May 01 20:01:43 2018

cbuffer COMMON_BUFFER1 : register(b13)
{
row_major float4x4 worldViewProj : packoffset(c0);
float4 encryptionKey : packoffset(c4);
row_major float4x4 world : packoffset(c5);
row_major float4x4 worldView : packoffset(c9);
row_major float4x4 worldI : packoffset(c13);
}

cbuffer COMMON_BUFFER2 : register(b12)
{
row_major float4x4 view : packoffset(c0);
row_major float4x4 viewI : packoffset(c4);
row_major float4x4 projMatrix : packoffset(c8);
row_major float4x4 viewProj : packoffset(c12);
row_major float4x4 viewProjI : packoffset(c16);
row_major float4x4 globalMatrix0 : packoffset(c20);
float4 screenSpaceDimensions : packoffset(c24);
float4 frustumDimensions : packoffset(c25);
float4 depthTranslation : packoffset(c26);
float4 cLightingTransitionValues : packoffset(c27);
float4 treeAmbientBoost : packoffset(c28);
float4 viewportPixelDimensions : packoffset(c29);
float4 globalVector4 : packoffset(c30);
float4 globalVector6 : packoffset(c31);
float4 globalVector7 : packoffset(c32);
float4 globalVector8 : packoffset(c33);
float4 fog_colour_towards : packoffset(c34);
float4 fog_colour_away : packoffset(c35);
float4 fogLightDir : packoffset(c36);
float4 keyLightDir : packoffset(c37);
float4 fog_min_inv_fog1_fog2 : packoffset(c38);
float4 keyLightColour : packoffset(c39);
float4 msaaMode : packoffset(c40);
float4 heightFogVector0 : packoffset(c41);
float4 heightFogVector1 : packoffset(c42);
float4 bonnetReflectionAndClamp : packoffset(c43);
float4 miscPhase2Flags : packoffset(c44);
float3 keyLightDirVS : packoffset(c45);
float3 worldCameraPos : packoffset(c46);
float emissiveTextureControl : packoffset(c46.w);
}

cbuffer COMMON_BUFFER4 : register(b10)
{
float3 lightPosition0 : packoffset(c0);
float3 lightDirection0 : packoffset(c1);
float4 lightColour0 : packoffset(c2);
float4 lightAttenuation0 : packoffset(c3);
row_major float4x4 cShadowMatrices0[4] : packoffset(c4);
float4 cShadowMapDim0 : packoffset(c20);
float4 cShadowTransitions0 : packoffset(c21);
float4 cShadowParamsA0 : packoffset(c22);
row_major float4x4 cShadowViewMatrix0 : packoffset(c23);
float3 lightPosition1 : packoffset(c27);
float3 lightDirection1 : packoffset(c28);
float4 lightColour1 : packoffset(c29);
float4 lightAttenuation1 : packoffset(c30);
row_major float4x4 cShadowMatrices1[4] : packoffset(c31);
float4 cShadowMapDim1 : packoffset(c47);
float4 cShadowTransitions1 : packoffset(c48);
float4 cShadowParamsA1 : packoffset(c49);
row_major float4x4 cShadowViewMatrix1 : packoffset(c50);
float3 lightPosition2 : packoffset(c54);
float3 lightDirection2 : packoffset(c55);
float4 lightColour2 : packoffset(c56);
float4 lightAttenuation2 : packoffset(c57);
row_major float4x4 cShadowMatrices2[4] : packoffset(c58);
float4 cShadowMapDim2 : packoffset(c74);
float4 cShadowTransitions2 : packoffset(c75);
float4 cShadowParamsA2 : packoffset(c76);
row_major float4x4 cShadowViewMatrix2 : packoffset(c77);
float3 lightPosition3 : packoffset(c81);
float3 lightDirection3 : packoffset(c82);
float4 lightColour3 : packoffset(c83);
float4 lightAttenuation3 : packoffset(c84);
row_major float4x4 cShadowMatrices3[4] : packoffset(c85);
float4 cShadowMapDim3 : packoffset(c101);
float4 cShadowTransitions3 : packoffset(c102);
float4 cShadowParamsA3 : packoffset(c103);
row_major float4x4 cShadowViewMatrix3 : packoffset(c104);
float3 lightPosition4 : packoffset(c108);
float3 lightDirection4 : packoffset(c109);
float4 lightColour4 : packoffset(c110);
float4 lightAttenuation4 : packoffset(c111);
row_major float4x4 cShadowMatrices4[4] : packoffset(c112);
float4 cShadowMapDim4 : packoffset(c128);
float4 cShadowTransitions4 : packoffset(c129);
float4 cShadowParamsA4 : packoffset(c130);
row_major float4x4 cShadowViewMatrix4 : packoffset(c131);
float3 lightPosition5 : packoffset(c135);
float3 lightDirection5 : packoffset(c136);
float4 lightColour5 : packoffset(c137);
float4 lightAttenuation5 : packoffset(c138);
row_major float4x4 cShadowMatrices5[4] : packoffset(c139);
float4 cShadowMapDim5 : packoffset(c155);
float4 cShadowTransitions5 : packoffset(c156);
float4 cShadowParamsA5 : packoffset(c157);
row_major float4x4 cShadowViewMatrix5 : packoffset(c158);
float3 lightPosition6 : packoffset(c162);
float3 lightDirection6 : packoffset(c163);
float4 lightColour6 : packoffset(c164);
float4 lightAttenuation6 : packoffset(c165);
row_major float4x4 cShadowMatrices6[4] : packoffset(c166);
float4 cShadowMapDim6 : packoffset(c182);
float4 cShadowTransitions6 : packoffset(c183);
float4 cShadowParamsA6 : packoffset(c184);
row_major float4x4 cShadowViewMatrix6 : packoffset(c185);
float3 lightPosition7 : packoffset(c189);
float3 lightDirection7 : packoffset(c190);
float4 lightColour7 : packoffset(c191);
float4 lightAttenuation7 : packoffset(c192);
row_major float4x4 cShadowMatrices7[4] : packoffset(c193);
float4 cShadowMapDim7 : packoffset(c209);
float4 cShadowTransitions7 : packoffset(c210);
float4 cShadowParamsA7 : packoffset(c211);
row_major float4x4 cShadowViewMatrix7 : packoffset(c212);
float3 lightPosition8 : packoffset(c216);
float3 lightDirection8 : packoffset(c217);
float4 lightColour8 : packoffset(c218);
float4 lightAttenuation8 : packoffset(c219);
row_major float4x4 cShadowMatrices8[4] : packoffset(c220);
float4 cShadowMapDim8 : packoffset(c236);
float4 cShadowTransitions8 : packoffset(c237);
float4 cShadowParamsA8 : packoffset(c238);
row_major float4x4 cShadowViewMatrix8 : packoffset(c239);
float4 upColour : packoffset(c243);
float4 downColour : packoffset(c244);
}

cbuffer _GLOBAL_ : register(b0)
{
float forwarddirlightscaler : packoffset(c0) = {1};
float forwardspotlightscaler : packoffset(c0.y) = {1};
float forwardambientlightingscaler : packoffset(c0.z) = {1};
float additionaldirLightingScaler : packoffset(c0.w) = {1};
float additionalspotLightingScaler : packoffset(c1) = {1};
float particleAlphaThreshold : packoffset(c1.y) = {0.0500000007};
float startCamFadeDistToVertex : packoffset(c1.z) = {0};
float endCamFadeDistToVertex : packoffset(c1.w) = {0};
float maxSpecularCoef : packoffset(c2) = {0};
float4 nearFarClip : packoffset(c3);
row_major float4x4 fadePointTransform : packoffset(c4);
float4 fadePointInnerBoundsXYZ : packoffset(c8);
float4 fadePointRecipBoundsDiffXYZ : packoffset(c9);
float4 c_texAnimMatrixScaleTrans : packoffset(c10);
float2 c_numAnimFrames : packoffset(c11);
float c_totalAnimFrames : packoffset(c11.z);
float2 c_recipNumAnimFrames : packoffset(c12);
row_major float4x4 c_uvArray : packoffset(c13);
}



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


void main(
float4 v0 : POSITION0,
float2 v1 : NORMAL0,
float2 v2 : TEXCOORD0,
float4 v3 : COLOR0,
out float4 o0 : SV_POSITION0,
out float3 o1 : NORMAL0,
out float4 o2 : TEXCOORD0,
out float4 o3 : TEXCOORD1,
out float4 o4 : TEXCOORD2,
out float4 o5 : TEXCOORD3,
out float4 o6 : TEXCOORD4,
out float4 o7 : TEXCOORD5,
out float4 o8 : TEXCOORD6,
out float3 o9 : TEXCOORD8)
{
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19;
uint4 bitmask, uiDest;
float4 fDest;

sincos(v2.x, r0.x, r1.x);
r2.z = r0.x;
r2.y = r1.x;
r2.x = -r0.x;
r0.y = dot(v1.xy, r2.xy);
r0.x = dot(v1.xy, r2.yz);
r1.xyzw = worldView._m10_m11_m12_m13 * v0.yyyy;
r1.xyzw = v0.xxxx * worldView._m00_m01_m02_m03 + r1.xyzw;
r1.xyzw = v0.zzzz * worldView._m20_m21_m22_m23 + r1.xyzw;
r1.xyzw = worldView._m30_m31_m32_m33 + r1.xyzw;
r0.xy = r1.xy + r0.xy;
r2.xyzw = projMatrix._m10_m11_m12_m13 * r0.yyyy;
r2.xyzw = r0.xxxx * projMatrix._m00_m01_m02_m03 + r2.xyzw;
r2.xyzw = r1.zzzz * projMatrix._m20_m21_m22_m23 + r2.xyzw;
r2.xyzw = r1.wwww * projMatrix._m30_m31_m32_m33 + r2.xyzw;
r0.z = -endCamFadeDistToVertex + abs(r1.z);
r0.w = startCamFadeDistToVertex + -endCamFadeDistToVertex;
r0.z = saturate(r0.z / r0.w);
r0.z = v3.w * r0.z;
r0.w = cmp(r0.z < particleAlphaThreshold);
o5.w = r0.z;
o0.w = r0.w ? -1 : r2.w;
o0.xyz = r2.xyz;
r0.z = dot(-viewI._m20_m21_m22, -viewI._m20_m21_m22);
r0.z = rsqrt(r0.z);
o1.xyz = -viewI._m20_m21_m22 * r0.zzz;
r0.z = v2.y * c_totalAnimFrames + 1;
r0.w = cmp(c_totalAnimFrames < r0.z);
r1.x = -c_totalAnimFrames + r0.z;
r0.z = r0.w ? r1.x : r0.z;
r0.w = r0.z / c_numAnimFrames.x;
r1.x = cmp(r0.w >= -r0.w);
r0.w = frac(abs(r0.w));
r0.w = r1.x ? r0.w : -r0.w;
r0.z = -r0.w * c_numAnimFrames.x + r0.z;
r0.w = c_numAnimFrames.x * r0.w;
r0.w = floor(r0.w);
r3.y = r0.w * c_recipNumAnimFrames.x + c_texAnimMatrixScaleTrans.z;
r0.z = c_recipNumAnimFrames.x * r0.z;
r3.w = r0.z * c_recipNumAnimFrames.y + c_texAnimMatrixScaleTrans.w;
r3.xz = c_texAnimMatrixScaleTrans.xy;
r0.z = (int)v0.w;
r4.xz = c_uvArray[r0.z/4]._m00_m01;
r4.yw = float2(1,1);
o2.w = dot(r4.zw, r3.zw);
o2.z = dot(r4.xy, r3.xy);
r0.z = c_totalAnimFrames * v2.y;
r0.w = r0.z / c_numAnimFrames.x;
o3.x = frac(r0.z);
r0.z = cmp(r0.w >= -r0.w);
r0.w = frac(abs(r0.w));
r0.z = r0.z ? r0.w : -r0.w;
r0.z = c_numAnimFrames.x * r0.z;
r0.w = v2.y * c_totalAnimFrames + -r0.z;
r0.z = floor(r0.z);
r3.y = r0.z * c_recipNumAnimFrames.x + c_texAnimMatrixScaleTrans.z;
r0.z = c_recipNumAnimFrames.x * r0.w;
r3.w = r0.z * c_recipNumAnimFrames.y + c_texAnimMatrixScaleTrans.w;
r3.xz = c_texAnimMatrixScaleTrans.xy;
o2.y = dot(r4.zw, r3.zw);
o2.x = dot(r4.xy, r3.xy);
r0.z = dot(v1.xy, v1.xy);
r3.w = sqrt(r0.z);
o3.y = r3.w / nearFarClip.y;
r0.z = 1 / r2.w;
r0.w = r2.x * r0.z;
r0.z = -r2.y * r0.z;
o4.y = r0.z * 0.5 + 0.5;
o4.x = r0.w * 0.5 + 0.5;
r2.xyzw = viewI._m10_m11_m12_m13 * r0.yyyy;
r0.xyzw = r0.xxxx * viewI._m00_m01_m02_m03 + r2.xyzw;
r0.xyzw = r1.zzzz * viewI._m20_m21_m22_m23 + r0.xyzw;
r0.xyzw = r1.wwww * viewI._m30_m31_m32_m33 + r0.xyzw;
r1.x = view._m12 * r0.y;
r1.x = r0.x * view._m02 + r1.x;
r1.x = r0.z * view._m22 + r1.x;
r0.w = r0.w * view._m32 + r1.x;
o4.z = r0.w / nearFarClip.y;
o5.xyz = v3.xyz;
r0.w = dot(fogLightDir.xz, fogLightDir.xz);
r0.w = rsqrt(r0.w);
r1.xy = fogLightDir.xz * r0.ww;
r2.xyz = -worldCameraPos.xyz + r0.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = sqrt(r0.w);
r1.zw = r2.xz / r0.ww;
r0.w = -fog_min_inv_fog1_fog2.x + r0.w;
r0.w = saturate(fog_min_inv_fog1_fog2.y * r0.w);
r0.w = log2(r0.w);
r0.w = fog_min_inv_fog1_fog2.w * r0.w;
r0.w = exp2(r0.w);
r2.x = dot(r1.zw, r1.zw);
r2.x = rsqrt(r2.x);
r1.zw = r2.xx * r1.zw;
r1.x = dot(r1.zw, r1.xy);
r1.x = 1 + r1.x;
r1.x = saturate(0.5 * r1.x);
r1.yzw = -fog_colour_away.xyz + fog_colour_towards.xyz;
r1.xyz = r1.xxx * r1.yzw + fog_colour_away.xyz;
r1.w = fog_min_inv_fog1_fog2.z * r0.w;
o6.w = -r0.w * fog_min_inv_fog1_fog2.z + 1;
o6.xyz = r1.xyz * r1.www;
r3.xyz = worldCameraPos.xyz + -r0.xyz;
o7.xyzw = r3.xyzw;
r1.xyz = lightPosition3.xyz + -r0.xyz;
r0.w = dot(r1.xyz, r1.xyz);
r1.w = lightAttenuation3.x * r0.w;
r1.w = -r1.w * r1.w + 1;
r1.w = max(9.99999982e-015, r1.w);
r1.w = r1.w * r1.w;
r1.w = r1.w * r1.w;
r2.x = saturate(r1.w * r1.w + lightAttenuation3.y);
r2.y = max(9.99999975e-005, r0.w);
r0.w = rsqrt(r0.w);
r2.y = 1 / r2.y;
r2.x = r2.y * r2.x;
r4.xyz = r1.xyz * r0.www;
r2.z = dot(-lightDirection3.xyz, r4.xyz);
r2.z = saturate(r2.z * lightAttenuation3.z + lightAttenuation3.w);
r2.z = r2.z * r2.z;
r2.x = r2.x * r2.z;
r2.z = -1 + lightAttenuation3.y;
r1.w = saturate(r1.w * r1.w + r2.z);
r1.w = r2.y * r1.w;
r2.y = cmp(1 < lightAttenuation3.y);
r1.w = r2.y ? r1.w : r2.x;
r2.xyz = lightPosition2.xyz + -r0.xyz;
r2.w = dot(r2.xyz, r2.xyz);
r3.w = lightAttenuation2.x * r2.w;
r3.w = -r3.w * r3.w + 1;
r3.w = max(9.99999982e-015, r3.w);
r3.w = r3.w * r3.w;
r3.w = r3.w * r3.w;
r4.x = saturate(r3.w * r3.w + lightAttenuation2.y);
r4.y = max(9.99999975e-005, r2.w);
r2.w = rsqrt(r2.w);
r4.y = 1 / r4.y;
r4.x = r4.y * r4.x;
r5.xyz = r2.xyz * r2.www;
r4.z = dot(-lightDirection2.xyz, r5.xyz);
r4.z = saturate(r4.z * lightAttenuation2.z + lightAttenuation2.w);
r4.z = r4.z * r4.z;
r4.x = r4.x * r4.z;
r4.z = -1 + lightAttenuation2.y;
r3.w = saturate(r3.w * r3.w + r4.z);
r3.w = r4.y * r3.w;
r4.y = cmp(1 < lightAttenuation2.y);
r3.w = r4.y ? r3.w : r4.x;
r4.xyz = lightPosition1.xyz + -r0.xyz;
r4.w = dot(r4.xyz, r4.xyz);
r5.x = lightAttenuation1.x * r4.w;
r5.x = -r5.x * r5.x + 1;
r5.x = max(9.99999982e-015, r5.x);
r5.x = r5.x * r5.x;
r5.x = r5.x * r5.x;
r5.y = saturate(r5.x * r5.x + lightAttenuation1.y);
r5.z = max(9.99999975e-005, r4.w);
r4.w = rsqrt(r4.w);
r5.z = 1 / r5.z;
r5.y = r5.z * r5.y;
r6.xyz = r4.xyz * r4.www;
r5.w = dot(-lightDirection1.xyz, r6.xyz);
r5.w = saturate(r5.w * lightAttenuation1.z + lightAttenuation1.w);
r5.w = r5.w * r5.w;
r5.y = r5.y * r5.w;
r5.w = -1 + lightAttenuation1.y;
r5.x = saturate(r5.x * r5.x + r5.w);
r5.x = r5.z * r5.x;
r5.z = cmp(1 < lightAttenuation1.y);
r5.x = r5.z ? r5.x : r5.y;
r5.y = forwarddirlightscaler * additionaldirLightingScaler;
r5.yzw = lightColour0.xyz * r5.yyy;
r6.x = additionalspotLightingScaler * forwardspotlightscaler;
r6.yzw = lightColour1.xyz * r6.xxx;
r7.xyz = r6.yzw * r5.xxx + r5.yzw;
r8.xyz = lightColour2.xyz * r6.xxx;
r7.xyz = r8.xyz * r3.www + r7.xyz;
r9.xyz = lightColour3.xyz * r6.xxx;
r7.xyz = r9.xyz * r1.www + r7.xyz;
r10.xyz = lightPosition4.xyz + -r0.xyz;
r7.w = dot(r10.xyz, r10.xyz);
r8.w = lightAttenuation4.x * r7.w;
r8.w = -r8.w * r8.w + 1;
r8.w = max(9.99999982e-015, r8.w);
r8.w = r8.w * r8.w;
r8.w = r8.w * r8.w;
r9.w = saturate(r8.w * r8.w + lightAttenuation4.y);
r10.w = max(9.99999975e-005, r7.w);
r7.w = rsqrt(r7.w);
r10.w = 1 / r10.w;
r9.w = r10.w * r9.w;
r11.xyz = r10.xyz * r7.www;
r11.x = dot(-lightDirection4.xyz, r11.xyz);
r11.x = saturate(r11.x * lightAttenuation4.z + lightAttenuation4.w);
r11.x = r11.x * r11.x;
r9.w = r11.x * r9.w;
r11.x = -1 + lightAttenuation4.y;
r8.w = saturate(r8.w * r8.w + r11.x);
r8.w = r10.w * r8.w;
r10.w = cmp(1 < lightAttenuation4.y);
r8.w = r10.w ? r8.w : r9.w;
r11.xyz = lightColour4.xyz * r6.xxx;
r7.xyz = r11.xyz * r8.www + r7.xyz;
r12.xyz = lightPosition5.xyz + -r0.xyz;
r9.w = dot(r12.xyz, r12.xyz);
r10.w = lightAttenuation5.x * r9.w;
r10.w = -r10.w * r10.w + 1;
r10.w = max(9.99999982e-015, r10.w);
r10.w = r10.w * r10.w;
r10.w = r10.w * r10.w;
r11.w = saturate(r10.w * r10.w + lightAttenuation5.y);
r12.w = max(9.99999975e-005, r9.w);
r9.w = rsqrt(r9.w);
r12.w = 1 / r12.w;
r11.w = r12.w * r11.w;
r13.xyz = r12.xyz * r9.www;
r13.x = dot(-lightDirection5.xyz, r13.xyz);
r13.x = saturate(r13.x * lightAttenuation5.z + lightAttenuation5.w);
r13.x = r13.x * r13.x;
r11.w = r13.x * r11.w;
r13.x = -1 + lightAttenuation5.y;
r10.w = saturate(r10.w * r10.w + r13.x);
r10.w = r12.w * r10.w;
r12.w = cmp(1 < lightAttenuation5.y);
r10.w = r12.w ? r10.w : r11.w;
r13.xyz = lightColour5.xyz * r6.xxx;
r7.xyz = r13.xyz * r10.www + r7.xyz;
r14.xyz = lightPosition6.xyz + -r0.xyz;
r11.w = dot(r14.xyz, r14.xyz);
r12.w = lightAttenuation6.x * r11.w;
r12.w = -r12.w * r12.w + 1;
r12.w = max(9.99999982e-015, r12.w);
r12.w = r12.w * r12.w;
r12.w = r12.w * r12.w;
r13.w = saturate(r12.w * r12.w + lightAttenuation6.y);
r14.w = max(9.99999975e-005, r11.w);
r11.w = rsqrt(r11.w);
r14.w = 1 / r14.w;
r13.w = r14.w * r13.w;
r15.xyz = r14.xyz * r11.www;
r15.x = dot(-lightDirection6.xyz, r15.xyz);
r15.x = saturate(r15.x * lightAttenuation6.z + lightAttenuation6.w);
r15.x = r15.x * r15.x;
r13.w = r15.x * r13.w;
r15.x = -1 + lightAttenuation6.y;
r12.w = saturate(r12.w * r12.w + r15.x);
r12.w = r14.w * r12.w;
r14.w = cmp(1 < lightAttenuation6.y);
r12.w = r14.w ? r12.w : r13.w;
r15.xyz = lightColour6.xyz * r6.xxx;
r7.xyz = r15.xyz * r12.www + r7.xyz;
r16.xyz = lightPosition7.xyz + -r0.xyz;
r0.xyz = lightPosition8.xyz + -r0.xyz;
r13.w = dot(r16.xyz, r16.xyz);
r14.w = rsqrt(r13.w);
r17.xyz = r16.xyz * r14.www;
r15.w = dot(-lightDirection7.xyz, r17.xyz);
r15.w = saturate(r15.w * lightAttenuation7.z + lightAttenuation7.w);
r15.w = r15.w * r15.w;
r16.w = lightAttenuation7.x * r13.w;
r13.w = max(9.99999975e-005, r13.w);
r13.w = 1 / r13.w;
r16.w = -r16.w * r16.w + 1;
r16.w = max(9.99999982e-015, r16.w);
r16.w = r16.w * r16.w;
r16.w = r16.w * r16.w;
r17.x = saturate(r16.w * r16.w + lightAttenuation7.y);
r17.x = r17.x * r13.w;
r15.w = r17.x * r15.w;
r17.x = -1 + lightAttenuation7.y;
r16.w = saturate(r16.w * r16.w + r17.x);
r13.w = r16.w * r13.w;
r16.w = cmp(1 < lightAttenuation7.y);
r13.w = r16.w ? r13.w : r15.w;
r17.xyz = lightColour7.xyz * r6.xxx;
r18.xyz = lightColour8.xyz * r6.xxx;
r7.xyz = r17.xyz * r13.www + r7.xyz;
r6.x = dot(r0.xyz, r0.xyz);
r15.w = rsqrt(r6.x);
r19.xyz = r15.www * r0.xyz;
r16.w = dot(-lightDirection8.xyz, r19.xyz);
r16.w = saturate(r16.w * lightAttenuation8.z + lightAttenuation8.w);
r16.w = r16.w * r16.w;
r17.w = lightAttenuation8.x * r6.x;
r6.x = max(9.99999975e-005, r6.x);
r6.x = 1 / r6.x;
r17.w = -r17.w * r17.w + 1;
r17.w = max(9.99999982e-015, r17.w);
r17.w = r17.w * r17.w;
r17.w = r17.w * r17.w;
r18.w = saturate(r17.w * r17.w + lightAttenuation8.y);
r18.w = r18.w * r6.x;
r16.w = r18.w * r16.w;
r18.w = -1 + lightAttenuation8.y;
r17.w = saturate(r17.w * r17.w + r18.w);
r6.x = r17.w * r6.x;
r17.w = cmp(1 < lightAttenuation8.y);
r6.x = r17.w ? r6.x : r16.w;
o8.xyz = r18.xyz * r6.xxx + r7.xyz;
r7.x = cmp(0 < r5.x);
r7.y = dot(r3.xyz, r3.xyz);
r7.y = rsqrt(r7.y);
r19.xyz = r7.yyy * r3.xyz;
r3.xyz = r3.xyz * r7.yyy + lightDirection0.xyz;
r4.xyz = r4.xyz * r4.www + r19.xyz;
r4.w = dot(r4.xyz, r4.xyz);
r4.w = rsqrt(r4.w);
r4.xyz = r4.xyz * r4.www;
r4.x = saturate(dot(r19.xyz, r4.xyz));
r4.x = max(9.99999982e-015, r4.x);
r4.x = maxSpecularCoef * r4.x;
r4.x = 0.409255564 * r4.x;
r4.xyz = r4.xxx * r6.yzw;
r4.w = dot(r3.xyz, r3.xyz);
r4.w = rsqrt(r4.w);
r3.xyz = r4.www * r3.xyz;
r3.x = saturate(dot(-r19.xyz, r3.xyz));
r3.x = max(9.99999982e-015, r3.x);
r3.x = maxSpecularCoef * r3.x;
r3.x = 0.409255564 * r3.x;
r3.xyz = r3.xxx * r5.yzw;
r4.xyz = r4.xyz * r5.xxx + r3.xyz;
r3.xyz = r7.xxx ? r4.xyz : r3.xyz;
r2.xyz = r2.xyz * r2.www + r19.xyz;
r2.w = dot(r2.xyz, r2.xyz);
r2.w = rsqrt(r2.w);
r2.xyz = r2.xyz * r2.www;
r2.x = saturate(dot(r19.xyz, r2.xyz));
r2.x = max(9.99999982e-015, r2.x);
r2.x = maxSpecularCoef * r2.x;
r2.x = 0.409255564 * r2.x;
r2.xyz = r2.xxx * r8.xyz;
r2.xyz = r2.xyz * r3.www + r3.xyz;
r2.w = cmp(0 < r3.w);
r2.xyz = r2.www ? r2.xyz : r3.xyz;
r1.xyz = r1.xyz * r0.www + r19.xyz;
r0.w = dot(r1.xyz, r1.xyz);
r0.w = rsqrt(r0.w);
r1.xyz = r1.xyz * r0.www;
r0.w = saturate(dot(r19.xyz, r1.xyz));
r0.w = max(9.99999982e-015, r0.w);
r0.w = maxSpecularCoef * r0.w;
r0.w = 0.409255564 * r0.w;
r1.xyz = r0.www * r9.xyz;
r1.xyz = r1.xyz * r1.www + r2.xyz;
r0.w = cmp(0 < r1.w);
r1.xyz = r0.www ? r1.xyz : r2.xyz;
r2.xyz = r10.xyz * r7.www + r19.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = rsqrt(r0.w);
r2.xyz = r2.xyz * r0.www;
r0.w = saturate(dot(r19.xyz, r2.xyz));
r0.w = max(9.99999982e-015, r0.w);
r0.w = maxSpecularCoef * r0.w;
r0.w = 0.409255564 * r0.w;
r2.xyz = r0.www * r11.xyz;
r2.xyz = r2.xyz * r8.www + r1.xyz;
r0.w = cmp(0 < r8.w);
r1.xyz = r0.www ? r2.xyz : r1.xyz;
r2.xyz = r12.xyz * r9.www + r19.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = rsqrt(r0.w);
r2.xyz = r2.xyz * r0.www;
r0.w = saturate(dot(r19.xyz, r2.xyz));
r0.w = max(9.99999982e-015, r0.w);
r0.w = maxSpecularCoef * r0.w;
r0.w = 0.409255564 * r0.w;
r2.xyz = r0.www * r13.xyz;
r2.xyz = r2.xyz * r10.www + r1.xyz;
r0.w = cmp(0 < r10.w);
r1.xyz = r0.www ? r2.xyz : r1.xyz;
r2.xyz = r14.xyz * r11.www + r19.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = rsqrt(r0.w);
r2.xyz = r2.xyz * r0.www;
r0.w = saturate(dot(r19.xyz, r2.xyz));
r0.w = max(9.99999982e-015, r0.w);
r0.w = maxSpecularCoef * r0.w;
r0.w = 0.409255564 * r0.w;
r2.xyz = r0.www * r15.xyz;
r2.xyz = r2.xyz * r12.www + r1.xyz;
r0.w = cmp(0 < r12.w);
r1.xyz = r0.www ? r2.xyz : r1.xyz;
r2.xyz = r16.xyz * r14.www + r19.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = rsqrt(r0.w);
r2.xyz = r2.xyz * r0.www;
r0.w = saturate(dot(r19.xyz, r2.xyz));
r0.w = max(9.99999982e-015, r0.w);
r0.w = maxSpecularCoef * r0.w;
r0.w = 0.409255564 * r0.w;
r2.xyz = r0.www * r17.xyz;
r2.xyz = r2.xyz * r13.www + r1.xyz;
r0.w = cmp(0 < r13.w);
r1.xyz = r0.www ? r2.xyz : r1.xyz;
r0.xyz = r0.xyz * r15.www + r19.xyz;
r0.w = dot(r0.xyz, r0.xyz);
r0.w = rsqrt(r0.w);
r0.xyz = r0.xyz * r0.www;
r0.x = saturate(dot(r19.xyz, r0.xyz));
r0.x = max(9.99999982e-015, r0.x);
r0.x = maxSpecularCoef * r0.x;
r0.x = 0.409255564 * r0.x;
r0.xyz = r0.xxx * r18.xyz;
r0.xyz = r0.xyz * r6.xxx + r1.xyz;
r0.w = cmp(0 < r6.x);
o9.xyz = r0.www ? r0.xyz : r1.xyz;
return;
}



allow me to ask some noob questions I could not find answers for, so I thought I could just hunt the shaders for any oddity I saw and disable them per the guides instructions which is easy enough - but it seems like the closest I could find was the shader that removes the entire object instead of just the reflection I was looking for. Is the reflection part of the shader that can be disabled or corrected? I also can't tell if it is the light source itself that needs correcting, although the lights look fine - but when the light hits certain objects it seems to produce reflections that do not look right. This can be on trees, signs, parts of the road, even distant mountains. From what I notice they are all far away, and once you get within 80 ft or so, everything looks fine. Is this one of those situations, where even if I fixed them at distance - then they would be off as I got closer (like a pick your poison type of situation)?

I also tried fixing the main menu UI, was able to fix it somewhat but then that screwed up the in race menus and HUD. So even though I do not use the HUD, I set everything back. It seems the front menu affects other more important areas of the game so it can not be truly fixed? I am thinking you left it this way on purpose...I definitely don't want to be trying to fix anything you already took a look at and deemed unfixable.

#66
Posted 05/02/2018 04:03 PM   
Congrats on figuring it out. He'll probably need the entire shader. If you deem it to long to post, you can upload it as a jpg file. Then he'll simply change it back to a txt. To upload, change it from .txt to .jpg. Note: you can only upload to an existing post, you can not upload when creating a post. After making a post, click edit and then click the paperclip icon. It goes thru a forum virus scan and can be really slow. So be patient. GL with the game :)
Congrats on figuring it out. He'll probably need the entire shader. If you deem it to long to post, you can upload it as a jpg file. Then he'll simply change it back to a txt.

To upload, change it from .txt to .jpg. Note: you can only upload to an existing post, you can not upload when creating a post. After making a post, click edit and then click the paperclip icon. It goes thru a forum virus scan and can be really slow. So be patient.

GL with the game :)

#67
Posted 05/02/2018 04:24 PM   
Good job Maj-E !!! I tried but it's not so simple, at some point while scrolling I'm not sure ... I did not test long enough ... courage for the future !!!
Good job Maj-E !!! I tried but it's not so simple, at some point while scrolling I'm not sure ... I did not test long enough ... courage for the future !!!

#68
Posted 05/02/2018 04:53 PM   
[quote="Shift-E"]@DHR: For the water spray-halo issue, the VS is 76599b57e72f8646-vs_replace. When I disable this shader in the ini the halo effect is gone and objects look great, except the spray effect is a very important visual for immersion. Is there a way to fix the shader to eliminate halo without having to disable completely? [/quote] Yes, is possible. That VS seems responsible for other effect (shadow/light according to the header), not water spray...also the pattern don't match the halo pattern for this engine.....sometimes you can hunt the effect when disappear, and others (like in this game, specially halos) when you see the effect become total black or total white. for the descriptions you made, this seems an halo issue....but a corrected light or reflections when hit that halo issue, also will looks strange. This engine have a lot of Halo to fix....probably is that. Also a screenshots of the issue is welcome :)
Shift-E said:@DHR: For the water spray-halo issue, the VS is 76599b57e72f8646-vs_replace. When I disable this shader in the ini the halo effect is gone and objects look great, except the spray effect is a very important visual for immersion. Is there a way to fix the shader to eliminate halo without having to disable completely?

Yes, is possible.

That VS seems responsible for other effect (shadow/light according to the header), not water spray...also the pattern don't match the halo pattern for this engine.....sometimes you can hunt the effect when disappear, and others (like in this game, specially halos) when you see the effect become total black or total white.

for the descriptions you made, this seems an halo issue....but a corrected light or reflections when hit that halo issue, also will looks strange. This engine have a lot of Halo to fix....probably is that.

Also a screenshots of the issue is welcome :)

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

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

#69
Posted 05/02/2018 04:56 PM   
[Edited] sorry, should have found that info myself. ok so I clearly should not be using TaB output when taking screenshots? The screenshots looked fine, but are doubled up when attached to this post. I will post them anyway, as it is still easy to make out the issue. For now I will focus on the water spray issue, I hesitate to call it Halo issue since I do not even know the proper terminology for what my eyes are seeing. So the first screenshot you can see the dark double image of the main car on both sides. This is only visible when the water spray exists. I then went slowly through all shaders and only found one that affects this double image - 76599b57e72f8646-vs_replace. [img]https://forums.geforce.com/cmd/default/download-comment-attachment/75038/[/img] The second screenshot shows what it looks like when this shader is disabled, notice no spray and no double image of the car: [img]https://forums.geforce.com/cmd/default/download-comment-attachment/75039/[/img] Then another screenshot with the shader enabled, and the other cars in view. The effect is usually much worse on the other cars ahead, but is difficult to capture when driving at a speed high enough to generate the spray: [img]https://forums.geforce.com/cmd/default/download-comment-attachment/75040/[/img] Here is the full 76599b57e72f8646 shader, must be in here somewhere? [code] // ---- Created with 3Dmigoto v1.3.10 on Thu May 03 19:49:08 2018 cbuffer COMMON_BUFFER1 : register(b13) { row_major float4x4 worldViewProj : packoffset(c0); float4 encryptionKey : packoffset(c4); row_major float4x4 world : packoffset(c5); row_major float4x4 worldView : packoffset(c9); row_major float4x4 worldI : packoffset(c13); } cbuffer COMMON_BUFFER2 : register(b12) { row_major float4x4 view : packoffset(c0); row_major float4x4 viewI : packoffset(c4); row_major float4x4 projMatrix : packoffset(c8); row_major float4x4 viewProj : packoffset(c12); row_major float4x4 viewProjI : packoffset(c16); row_major float4x4 globalMatrix0 : packoffset(c20); float4 screenSpaceDimensions : packoffset(c24); float4 frustumDimensions : packoffset(c25); float4 depthTranslation : packoffset(c26); float4 cLightingTransitionValues : packoffset(c27); float4 treeAmbientBoost : packoffset(c28); float4 viewportPixelDimensions : packoffset(c29); float4 globalVector4 : packoffset(c30); float4 globalVector6 : packoffset(c31); float4 globalVector7 : packoffset(c32); float4 globalVector8 : packoffset(c33); float4 fog_colour_towards : packoffset(c34); float4 fog_colour_away : packoffset(c35); float4 fogLightDir : packoffset(c36); float4 keyLightDir : packoffset(c37); float4 fog_min_inv_fog1_fog2 : packoffset(c38); float4 keyLightColour : packoffset(c39); float4 msaaMode : packoffset(c40); float4 heightFogVector0 : packoffset(c41); float4 heightFogVector1 : packoffset(c42); float4 bonnetReflectionAndClamp : packoffset(c43); float4 miscPhase2Flags : packoffset(c44); float3 keyLightDirVS : packoffset(c45); float3 worldCameraPos : packoffset(c46); float emissiveTextureControl : packoffset(c46.w); } cbuffer COMMON_BUFFER4 : register(b10) { float3 lightPosition0 : packoffset(c0); float3 lightDirection0 : packoffset(c1); float4 lightColour0 : packoffset(c2); float4 lightAttenuation0 : packoffset(c3); row_major float4x4 cShadowMatrices0[4] : packoffset(c4); float4 cShadowMapDim0 : packoffset(c20); float4 cShadowTransitions0 : packoffset(c21); float4 cShadowParamsA0 : packoffset(c22); row_major float4x4 cShadowViewMatrix0 : packoffset(c23); float3 lightPosition1 : packoffset(c27); float3 lightDirection1 : packoffset(c28); float4 lightColour1 : packoffset(c29); float4 lightAttenuation1 : packoffset(c30); row_major float4x4 cShadowMatrices1[4] : packoffset(c31); float4 cShadowMapDim1 : packoffset(c47); float4 cShadowTransitions1 : packoffset(c48); float4 cShadowParamsA1 : packoffset(c49); row_major float4x4 cShadowViewMatrix1 : packoffset(c50); float3 lightPosition2 : packoffset(c54); float3 lightDirection2 : packoffset(c55); float4 lightColour2 : packoffset(c56); float4 lightAttenuation2 : packoffset(c57); row_major float4x4 cShadowMatrices2[4] : packoffset(c58); float4 cShadowMapDim2 : packoffset(c74); float4 cShadowTransitions2 : packoffset(c75); float4 cShadowParamsA2 : packoffset(c76); row_major float4x4 cShadowViewMatrix2 : packoffset(c77); float3 lightPosition3 : packoffset(c81); float3 lightDirection3 : packoffset(c82); float4 lightColour3 : packoffset(c83); float4 lightAttenuation3 : packoffset(c84); row_major float4x4 cShadowMatrices3[4] : packoffset(c85); float4 cShadowMapDim3 : packoffset(c101); float4 cShadowTransitions3 : packoffset(c102); float4 cShadowParamsA3 : packoffset(c103); row_major float4x4 cShadowViewMatrix3 : packoffset(c104); float3 lightPosition4 : packoffset(c108); float3 lightDirection4 : packoffset(c109); float4 lightColour4 : packoffset(c110); float4 lightAttenuation4 : packoffset(c111); row_major float4x4 cShadowMatrices4[4] : packoffset(c112); float4 cShadowMapDim4 : packoffset(c128); float4 cShadowTransitions4 : packoffset(c129); float4 cShadowParamsA4 : packoffset(c130); row_major float4x4 cShadowViewMatrix4 : packoffset(c131); float3 lightPosition5 : packoffset(c135); float3 lightDirection5 : packoffset(c136); float4 lightColour5 : packoffset(c137); float4 lightAttenuation5 : packoffset(c138); row_major float4x4 cShadowMatrices5[4] : packoffset(c139); float4 cShadowMapDim5 : packoffset(c155); float4 cShadowTransitions5 : packoffset(c156); float4 cShadowParamsA5 : packoffset(c157); row_major float4x4 cShadowViewMatrix5 : packoffset(c158); float3 lightPosition6 : packoffset(c162); float3 lightDirection6 : packoffset(c163); float4 lightColour6 : packoffset(c164); float4 lightAttenuation6 : packoffset(c165); row_major float4x4 cShadowMatrices6[4] : packoffset(c166); float4 cShadowMapDim6 : packoffset(c182); float4 cShadowTransitions6 : packoffset(c183); float4 cShadowParamsA6 : packoffset(c184); row_major float4x4 cShadowViewMatrix6 : packoffset(c185); float3 lightPosition7 : packoffset(c189); float3 lightDirection7 : packoffset(c190); float4 lightColour7 : packoffset(c191); float4 lightAttenuation7 : packoffset(c192); row_major float4x4 cShadowMatrices7[4] : packoffset(c193); float4 cShadowMapDim7 : packoffset(c209); float4 cShadowTransitions7 : packoffset(c210); float4 cShadowParamsA7 : packoffset(c211); row_major float4x4 cShadowViewMatrix7 : packoffset(c212); float3 lightPosition8 : packoffset(c216); float3 lightDirection8 : packoffset(c217); float4 lightColour8 : packoffset(c218); float4 lightAttenuation8 : packoffset(c219); row_major float4x4 cShadowMatrices8[4] : packoffset(c220); float4 cShadowMapDim8 : packoffset(c236); float4 cShadowTransitions8 : packoffset(c237); float4 cShadowParamsA8 : packoffset(c238); row_major float4x4 cShadowViewMatrix8 : packoffset(c239); float4 upColour : packoffset(c243); float4 downColour : packoffset(c244); } cbuffer _GLOBAL_ : register(b0) { float forwarddirlightscaler : packoffset(c0) = {1}; float forwardspotlightscaler : packoffset(c0.y) = {1}; float forwardambientlightingscaler : packoffset(c0.z) = {1}; float additionaldirLightingScaler : packoffset(c0.w) = {1}; float additionalspotLightingScaler : packoffset(c1) = {1}; float particleAlphaThreshold : packoffset(c1.y) = {0.0500000007}; float startCamFadeDistToVertex : packoffset(c1.z) = {0}; float endCamFadeDistToVertex : packoffset(c1.w) = {0}; float maxSpecularCoef : packoffset(c2) = {0}; float4 nearFarClip : packoffset(c3); row_major float4x4 fadePointTransform : packoffset(c4); float4 fadePointInnerBoundsXYZ : packoffset(c8); float4 fadePointRecipBoundsDiffXYZ : packoffset(c9); float4 c_texAnimMatrixScaleTrans : packoffset(c10); float2 c_numAnimFrames : packoffset(c11); float c_totalAnimFrames : packoffset(c11.z); float2 c_recipNumAnimFrames : packoffset(c12); row_major float4x4 c_uvArray : packoffset(c13); } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : POSITION0, float2 v1 : NORMAL0, float2 v2 : TEXCOORD0, float4 v3 : COLOR0, out float4 o0 : SV_POSITION0, out float3 o1 : NORMAL0, out float4 o2 : TEXCOORD0, out float4 o3 : TEXCOORD1, out float4 o4 : TEXCOORD2, out float4 o5 : TEXCOORD3, out float4 o6 : TEXCOORD4, out float4 o7 : TEXCOORD5, out float4 o8 : TEXCOORD6, out float3 o9 : TEXCOORD8) { float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19; uint4 bitmask, uiDest; float4 fDest; sincos(v2.x, r0.x, r1.x); r2.z = r0.x; r2.y = r1.x; r2.x = -r0.x; r0.y = dot(v1.xy, r2.xy); r0.x = dot(v1.xy, r2.yz); r1.xyzw = worldView._m10_m11_m12_m13 * v0.yyyy; r1.xyzw = v0.xxxx * worldView._m00_m01_m02_m03 + r1.xyzw; r1.xyzw = v0.zzzz * worldView._m20_m21_m22_m23 + r1.xyzw; r1.xyzw = worldView._m30_m31_m32_m33 + r1.xyzw; r0.xy = r1.xy + r0.xy; r2.xyzw = projMatrix._m10_m11_m12_m13 * r0.yyyy; r2.xyzw = r0.xxxx * projMatrix._m00_m01_m02_m03 + r2.xyzw; r2.xyzw = r1.zzzz * projMatrix._m20_m21_m22_m23 + r2.xyzw; r2.xyzw = r1.wwww * projMatrix._m30_m31_m32_m33 + r2.xyzw; r0.z = -endCamFadeDistToVertex + abs(r1.z); r0.w = startCamFadeDistToVertex + -endCamFadeDistToVertex; r0.z = saturate(r0.z / r0.w); r0.z = v3.w * r0.z; r0.w = cmp(r0.z < particleAlphaThreshold); o5.w = r0.z; o0.w = r0.w ? -1 : r2.w; o0.xyz = r2.xyz; r0.z = dot(-viewI._m20_m21_m22, -viewI._m20_m21_m22); r0.z = rsqrt(r0.z); o1.xyz = -viewI._m20_m21_m22 * r0.zzz; r0.z = v2.y * c_totalAnimFrames + 1; r0.w = cmp(c_totalAnimFrames < r0.z); r1.x = -c_totalAnimFrames + r0.z; r0.z = r0.w ? r1.x : r0.z; r0.w = r0.z / c_numAnimFrames.x; r1.x = cmp(r0.w >= -r0.w); r0.w = frac(abs(r0.w)); r0.w = r1.x ? r0.w : -r0.w; r0.z = -r0.w * c_numAnimFrames.x + r0.z; r0.w = c_numAnimFrames.x * r0.w; r0.w = floor(r0.w); r3.y = r0.w * c_recipNumAnimFrames.x + c_texAnimMatrixScaleTrans.z; r0.z = c_recipNumAnimFrames.x * r0.z; r3.w = r0.z * c_recipNumAnimFrames.y + c_texAnimMatrixScaleTrans.w; r3.xz = c_texAnimMatrixScaleTrans.xy; r0.z = (int)v0.w; r4.xz = c_uvArray[r0.z/4]._m00_m01; r4.yw = float2(1,1); o2.w = dot(r4.zw, r3.zw); o2.z = dot(r4.xy, r3.xy); r0.z = c_totalAnimFrames * v2.y; r0.w = r0.z / c_numAnimFrames.x; o3.x = frac(r0.z); r0.z = cmp(r0.w >= -r0.w); r0.w = frac(abs(r0.w)); r0.z = r0.z ? r0.w : -r0.w; r0.z = c_numAnimFrames.x * r0.z; r0.w = v2.y * c_totalAnimFrames + -r0.z; r0.z = floor(r0.z); r3.y = r0.z * c_recipNumAnimFrames.x + c_texAnimMatrixScaleTrans.z; r0.z = c_recipNumAnimFrames.x * r0.w; r3.w = r0.z * c_recipNumAnimFrames.y + c_texAnimMatrixScaleTrans.w; r3.xz = c_texAnimMatrixScaleTrans.xy; o2.y = dot(r4.zw, r3.zw); o2.x = dot(r4.xy, r3.xy); r0.z = dot(v1.xy, v1.xy); r3.w = sqrt(r0.z); o3.y = r3.w / nearFarClip.y; r0.z = 1 / r2.w; r0.w = r2.x * r0.z; r0.z = -r2.y * r0.z; o4.y = r0.z * 0.5 + 0.5; o4.x = r0.w * 0.5 + 0.5; r2.xyzw = viewI._m10_m11_m12_m13 * r0.yyyy; r0.xyzw = r0.xxxx * viewI._m00_m01_m02_m03 + r2.xyzw; r0.xyzw = r1.zzzz * viewI._m20_m21_m22_m23 + r0.xyzw; r0.xyzw = r1.wwww * viewI._m30_m31_m32_m33 + r0.xyzw; r1.x = view._m12 * r0.y; r1.x = r0.x * view._m02 + r1.x; r1.x = r0.z * view._m22 + r1.x; r0.w = r0.w * view._m32 + r1.x; o4.z = r0.w / nearFarClip.y; o5.xyz = v3.xyz; r0.w = dot(fogLightDir.xz, fogLightDir.xz); r0.w = rsqrt(r0.w); r1.xy = fogLightDir.xz * r0.ww; r2.xyz = -worldCameraPos.xyz + r0.xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = sqrt(r0.w); r1.zw = r2.xz / r0.ww; r0.w = -fog_min_inv_fog1_fog2.x + r0.w; r0.w = saturate(fog_min_inv_fog1_fog2.y * r0.w); r0.w = log2(r0.w); r0.w = fog_min_inv_fog1_fog2.w * r0.w; r0.w = exp2(r0.w); r2.x = dot(r1.zw, r1.zw); r2.x = rsqrt(r2.x); r1.zw = r2.xx * r1.zw; r1.x = dot(r1.zw, r1.xy); r1.x = 1 + r1.x; r1.x = saturate(0.5 * r1.x); r1.yzw = -fog_colour_away.xyz + fog_colour_towards.xyz; r1.xyz = r1.xxx * r1.yzw + fog_colour_away.xyz; r1.w = fog_min_inv_fog1_fog2.z * r0.w; o6.w = -r0.w * fog_min_inv_fog1_fog2.z + 1; o6.xyz = r1.xyz * r1.www; r3.xyz = worldCameraPos.xyz + -r0.xyz; o7.xyzw = r3.xyzw; r1.xyz = lightPosition3.xyz + -r0.xyz; r0.w = dot(r1.xyz, r1.xyz); r1.w = lightAttenuation3.x * r0.w; r1.w = -r1.w * r1.w + 1; r1.w = max(9.99999982e-015, r1.w); r1.w = r1.w * r1.w; r1.w = r1.w * r1.w; r2.x = saturate(r1.w * r1.w + lightAttenuation3.y); r2.y = max(9.99999975e-005, r0.w); r0.w = rsqrt(r0.w); r2.y = 1 / r2.y; r2.x = r2.y * r2.x; r4.xyz = r1.xyz * r0.www; r2.z = dot(-lightDirection3.xyz, r4.xyz); r2.z = saturate(r2.z * lightAttenuation3.z + lightAttenuation3.w); r2.z = r2.z * r2.z; r2.x = r2.x * r2.z; r2.z = -1 + lightAttenuation3.y; r1.w = saturate(r1.w * r1.w + r2.z); r1.w = r2.y * r1.w; r2.y = cmp(1 < lightAttenuation3.y); r1.w = r2.y ? r1.w : r2.x; r2.xyz = lightPosition2.xyz + -r0.xyz; r2.w = dot(r2.xyz, r2.xyz); r3.w = lightAttenuation2.x * r2.w; r3.w = -r3.w * r3.w + 1; r3.w = max(9.99999982e-015, r3.w); r3.w = r3.w * r3.w; r3.w = r3.w * r3.w; r4.x = saturate(r3.w * r3.w + lightAttenuation2.y); r4.y = max(9.99999975e-005, r2.w); r2.w = rsqrt(r2.w); r4.y = 1 / r4.y; r4.x = r4.y * r4.x; r5.xyz = r2.xyz * r2.www; r4.z = dot(-lightDirection2.xyz, r5.xyz); r4.z = saturate(r4.z * lightAttenuation2.z + lightAttenuation2.w); r4.z = r4.z * r4.z; r4.x = r4.x * r4.z; r4.z = -1 + lightAttenuation2.y; r3.w = saturate(r3.w * r3.w + r4.z); r3.w = r4.y * r3.w; r4.y = cmp(1 < lightAttenuation2.y); r3.w = r4.y ? r3.w : r4.x; r4.xyz = lightPosition1.xyz + -r0.xyz; r4.w = dot(r4.xyz, r4.xyz); r5.x = lightAttenuation1.x * r4.w; r5.x = -r5.x * r5.x + 1; r5.x = max(9.99999982e-015, r5.x); r5.x = r5.x * r5.x; r5.x = r5.x * r5.x; r5.y = saturate(r5.x * r5.x + lightAttenuation1.y); r5.z = max(9.99999975e-005, r4.w); r4.w = rsqrt(r4.w); r5.z = 1 / r5.z; r5.y = r5.z * r5.y; r6.xyz = r4.xyz * r4.www; r5.w = dot(-lightDirection1.xyz, r6.xyz); r5.w = saturate(r5.w * lightAttenuation1.z + lightAttenuation1.w); r5.w = r5.w * r5.w; r5.y = r5.y * r5.w; r5.w = -1 + lightAttenuation1.y; r5.x = saturate(r5.x * r5.x + r5.w); r5.x = r5.z * r5.x; r5.z = cmp(1 < lightAttenuation1.y); r5.x = r5.z ? r5.x : r5.y; r5.y = forwarddirlightscaler * additionaldirLightingScaler; r5.yzw = lightColour0.xyz * r5.yyy; r6.x = additionalspotLightingScaler * forwardspotlightscaler; r6.yzw = lightColour1.xyz * r6.xxx; r7.xyz = r6.yzw * r5.xxx + r5.yzw; r8.xyz = lightColour2.xyz * r6.xxx; r7.xyz = r8.xyz * r3.www + r7.xyz; r9.xyz = lightColour3.xyz * r6.xxx; r7.xyz = r9.xyz * r1.www + r7.xyz; r10.xyz = lightPosition4.xyz + -r0.xyz; r7.w = dot(r10.xyz, r10.xyz); r8.w = lightAttenuation4.x * r7.w; r8.w = -r8.w * r8.w + 1; r8.w = max(9.99999982e-015, r8.w); r8.w = r8.w * r8.w; r8.w = r8.w * r8.w; r9.w = saturate(r8.w * r8.w + lightAttenuation4.y); r10.w = max(9.99999975e-005, r7.w); r7.w = rsqrt(r7.w); r10.w = 1 / r10.w; r9.w = r10.w * r9.w; r11.xyz = r10.xyz * r7.www; r11.x = dot(-lightDirection4.xyz, r11.xyz); r11.x = saturate(r11.x * lightAttenuation4.z + lightAttenuation4.w); r11.x = r11.x * r11.x; r9.w = r11.x * r9.w; r11.x = -1 + lightAttenuation4.y; r8.w = saturate(r8.w * r8.w + r11.x); r8.w = r10.w * r8.w; r10.w = cmp(1 < lightAttenuation4.y); r8.w = r10.w ? r8.w : r9.w; r11.xyz = lightColour4.xyz * r6.xxx; r7.xyz = r11.xyz * r8.www + r7.xyz; r12.xyz = lightPosition5.xyz + -r0.xyz; r9.w = dot(r12.xyz, r12.xyz); r10.w = lightAttenuation5.x * r9.w; r10.w = -r10.w * r10.w + 1; r10.w = max(9.99999982e-015, r10.w); r10.w = r10.w * r10.w; r10.w = r10.w * r10.w; r11.w = saturate(r10.w * r10.w + lightAttenuation5.y); r12.w = max(9.99999975e-005, r9.w); r9.w = rsqrt(r9.w); r12.w = 1 / r12.w; r11.w = r12.w * r11.w; r13.xyz = r12.xyz * r9.www; r13.x = dot(-lightDirection5.xyz, r13.xyz); r13.x = saturate(r13.x * lightAttenuation5.z + lightAttenuation5.w); r13.x = r13.x * r13.x; r11.w = r13.x * r11.w; r13.x = -1 + lightAttenuation5.y; r10.w = saturate(r10.w * r10.w + r13.x); r10.w = r12.w * r10.w; r12.w = cmp(1 < lightAttenuation5.y); r10.w = r12.w ? r10.w : r11.w; r13.xyz = lightColour5.xyz * r6.xxx; r7.xyz = r13.xyz * r10.www + r7.xyz; r14.xyz = lightPosition6.xyz + -r0.xyz; r11.w = dot(r14.xyz, r14.xyz); r12.w = lightAttenuation6.x * r11.w; r12.w = -r12.w * r12.w + 1; r12.w = max(9.99999982e-015, r12.w); r12.w = r12.w * r12.w; r12.w = r12.w * r12.w; r13.w = saturate(r12.w * r12.w + lightAttenuation6.y); r14.w = max(9.99999975e-005, r11.w); r11.w = rsqrt(r11.w); r14.w = 1 / r14.w; r13.w = r14.w * r13.w; r15.xyz = r14.xyz * r11.www; r15.x = dot(-lightDirection6.xyz, r15.xyz); r15.x = saturate(r15.x * lightAttenuation6.z + lightAttenuation6.w); r15.x = r15.x * r15.x; r13.w = r15.x * r13.w; r15.x = -1 + lightAttenuation6.y; r12.w = saturate(r12.w * r12.w + r15.x); r12.w = r14.w * r12.w; r14.w = cmp(1 < lightAttenuation6.y); r12.w = r14.w ? r12.w : r13.w; r15.xyz = lightColour6.xyz * r6.xxx; r7.xyz = r15.xyz * r12.www + r7.xyz; r16.xyz = lightPosition7.xyz + -r0.xyz; r0.xyz = lightPosition8.xyz + -r0.xyz; r13.w = dot(r16.xyz, r16.xyz); r14.w = rsqrt(r13.w); r17.xyz = r16.xyz * r14.www; r15.w = dot(-lightDirection7.xyz, r17.xyz); r15.w = saturate(r15.w * lightAttenuation7.z + lightAttenuation7.w); r15.w = r15.w * r15.w; r16.w = lightAttenuation7.x * r13.w; r13.w = max(9.99999975e-005, r13.w); r13.w = 1 / r13.w; r16.w = -r16.w * r16.w + 1; r16.w = max(9.99999982e-015, r16.w); r16.w = r16.w * r16.w; r16.w = r16.w * r16.w; r17.x = saturate(r16.w * r16.w + lightAttenuation7.y); r17.x = r17.x * r13.w; r15.w = r17.x * r15.w; r17.x = -1 + lightAttenuation7.y; r16.w = saturate(r16.w * r16.w + r17.x); r13.w = r16.w * r13.w; r16.w = cmp(1 < lightAttenuation7.y); r13.w = r16.w ? r13.w : r15.w; r17.xyz = lightColour7.xyz * r6.xxx; r18.xyz = lightColour8.xyz * r6.xxx; r7.xyz = r17.xyz * r13.www + r7.xyz; r6.x = dot(r0.xyz, r0.xyz); r15.w = rsqrt(r6.x); r19.xyz = r15.www * r0.xyz; r16.w = dot(-lightDirection8.xyz, r19.xyz); r16.w = saturate(r16.w * lightAttenuation8.z + lightAttenuation8.w); r16.w = r16.w * r16.w; r17.w = lightAttenuation8.x * r6.x; r6.x = max(9.99999975e-005, r6.x); r6.x = 1 / r6.x; r17.w = -r17.w * r17.w + 1; r17.w = max(9.99999982e-015, r17.w); r17.w = r17.w * r17.w; r17.w = r17.w * r17.w; r18.w = saturate(r17.w * r17.w + lightAttenuation8.y); r18.w = r18.w * r6.x; r16.w = r18.w * r16.w; r18.w = -1 + lightAttenuation8.y; r17.w = saturate(r17.w * r17.w + r18.w); r6.x = r17.w * r6.x; r17.w = cmp(1 < lightAttenuation8.y); r6.x = r17.w ? r6.x : r16.w; o8.xyz = r18.xyz * r6.xxx + r7.xyz; r7.x = cmp(0 < r5.x); r7.y = dot(r3.xyz, r3.xyz); r7.y = rsqrt(r7.y); r19.xyz = r7.yyy * r3.xyz; r3.xyz = r3.xyz * r7.yyy + lightDirection0.xyz; r4.xyz = r4.xyz * r4.www + r19.xyz; r4.w = dot(r4.xyz, r4.xyz); r4.w = rsqrt(r4.w); r4.xyz = r4.xyz * r4.www; r4.x = saturate(dot(r19.xyz, r4.xyz)); r4.x = max(9.99999982e-015, r4.x); r4.x = maxSpecularCoef * r4.x; r4.x = 0.409255564 * r4.x; r4.xyz = r4.xxx * r6.yzw; r4.w = dot(r3.xyz, r3.xyz); r4.w = rsqrt(r4.w); r3.xyz = r4.www * r3.xyz; r3.x = saturate(dot(-r19.xyz, r3.xyz)); r3.x = max(9.99999982e-015, r3.x); r3.x = maxSpecularCoef * r3.x; r3.x = 0.409255564 * r3.x; r3.xyz = r3.xxx * r5.yzw; r4.xyz = r4.xyz * r5.xxx + r3.xyz; r3.xyz = r7.xxx ? r4.xyz : r3.xyz; r2.xyz = r2.xyz * r2.www + r19.xyz; r2.w = dot(r2.xyz, r2.xyz); r2.w = rsqrt(r2.w); r2.xyz = r2.xyz * r2.www; r2.x = saturate(dot(r19.xyz, r2.xyz)); r2.x = max(9.99999982e-015, r2.x); r2.x = maxSpecularCoef * r2.x; r2.x = 0.409255564 * r2.x; r2.xyz = r2.xxx * r8.xyz; r2.xyz = r2.xyz * r3.www + r3.xyz; r2.w = cmp(0 < r3.w); r2.xyz = r2.www ? r2.xyz : r3.xyz; r1.xyz = r1.xyz * r0.www + r19.xyz; r0.w = dot(r1.xyz, r1.xyz); r0.w = rsqrt(r0.w); r1.xyz = r1.xyz * r0.www; r0.w = saturate(dot(r19.xyz, r1.xyz)); r0.w = max(9.99999982e-015, r0.w); r0.w = maxSpecularCoef * r0.w; r0.w = 0.409255564 * r0.w; r1.xyz = r0.www * r9.xyz; r1.xyz = r1.xyz * r1.www + r2.xyz; r0.w = cmp(0 < r1.w); r1.xyz = r0.www ? r1.xyz : r2.xyz; r2.xyz = r10.xyz * r7.www + r19.xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = rsqrt(r0.w); r2.xyz = r2.xyz * r0.www; r0.w = saturate(dot(r19.xyz, r2.xyz)); r0.w = max(9.99999982e-015, r0.w); r0.w = maxSpecularCoef * r0.w; r0.w = 0.409255564 * r0.w; r2.xyz = r0.www * r11.xyz; r2.xyz = r2.xyz * r8.www + r1.xyz; r0.w = cmp(0 < r8.w); r1.xyz = r0.www ? r2.xyz : r1.xyz; r2.xyz = r12.xyz * r9.www + r19.xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = rsqrt(r0.w); r2.xyz = r2.xyz * r0.www; r0.w = saturate(dot(r19.xyz, r2.xyz)); r0.w = max(9.99999982e-015, r0.w); r0.w = maxSpecularCoef * r0.w; r0.w = 0.409255564 * r0.w; r2.xyz = r0.www * r13.xyz; r2.xyz = r2.xyz * r10.www + r1.xyz; r0.w = cmp(0 < r10.w); r1.xyz = r0.www ? r2.xyz : r1.xyz; r2.xyz = r14.xyz * r11.www + r19.xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = rsqrt(r0.w); r2.xyz = r2.xyz * r0.www; r0.w = saturate(dot(r19.xyz, r2.xyz)); r0.w = max(9.99999982e-015, r0.w); r0.w = maxSpecularCoef * r0.w; r0.w = 0.409255564 * r0.w; r2.xyz = r0.www * r15.xyz; r2.xyz = r2.xyz * r12.www + r1.xyz; r0.w = cmp(0 < r12.w); r1.xyz = r0.www ? r2.xyz : r1.xyz; r2.xyz = r16.xyz * r14.www + r19.xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = rsqrt(r0.w); r2.xyz = r2.xyz * r0.www; r0.w = saturate(dot(r19.xyz, r2.xyz)); r0.w = max(9.99999982e-015, r0.w); r0.w = maxSpecularCoef * r0.w; r0.w = 0.409255564 * r0.w; r2.xyz = r0.www * r17.xyz; r2.xyz = r2.xyz * r13.www + r1.xyz; r0.w = cmp(0 < r13.w); r1.xyz = r0.www ? r2.xyz : r1.xyz; r0.xyz = r0.xyz * r15.www + r19.xyz; r0.w = dot(r0.xyz, r0.xyz); r0.w = rsqrt(r0.w); r0.xyz = r0.xyz * r0.www; r0.x = saturate(dot(r19.xyz, r0.xyz)); r0.x = max(9.99999982e-015, r0.x); r0.x = maxSpecularCoef * r0.x; r0.x = 0.409255564 * r0.x; r0.xyz = r0.xxx * r18.xyz; r0.xyz = r0.xyz * r6.xxx + r1.xyz; r0.w = cmp(0 < r6.x); o9.xyz = r0.www ? r0.xyz : r1.xyz; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384 // // using 3Dmigoto v1.3.10 on Thu May 03 19:49:08 2018 // // // Buffer Definitions: // // cbuffer COMMON_BUFFER1 // { // // row_major float4x4 worldViewProj; // Offset: 0 Size: 64 [unused] // float4 encryptionKey; // Offset: 64 Size: 16 [unused] // row_major float4x4 world; // Offset: 80 Size: 64 [unused] // row_major float4x4 worldView; // Offset: 144 Size: 64 // row_major float4x4 worldI; // Offset: 208 Size: 64 [unused] // // } // // cbuffer COMMON_BUFFER2 // { // // row_major float4x4 view; // Offset: 0 Size: 64 // row_major float4x4 viewI; // Offset: 64 Size: 64 // row_major float4x4 projMatrix; // Offset: 128 Size: 64 // row_major float4x4 viewProj; // Offset: 192 Size: 64 [unused] // row_major float4x4 viewProjI; // Offset: 256 Size: 64 [unused] // row_major float4x4 globalMatrix0; // Offset: 320 Size: 64 [unused] // float4 screenSpaceDimensions; // Offset: 384 Size: 16 [unused] // float4 frustumDimensions; // Offset: 400 Size: 16 [unused] // float4 depthTranslation; // Offset: 416 Size: 16 [unused] // float4 cLightingTransitionValues; // Offset: 432 Size: 16 [unused] // float4 treeAmbientBoost; // Offset: 448 Size: 16 [unused] // float4 viewportPixelDimensions; // Offset: 464 Size: 16 [unused] // float4 globalVector4; // Offset: 480 Size: 16 [unused] // float4 globalVector6; // Offset: 496 Size: 16 [unused] // float4 globalVector7; // Offset: 512 Size: 16 [unused] // float4 globalVector8; // Offset: 528 Size: 16 [unused] // float4 fog_colour_towards; // Offset: 544 Size: 16 // float4 fog_colour_away; // Offset: 560 Size: 16 // float4 fogLightDir; // Offset: 576 Size: 16 // float4 keyLightDir; // Offset: 592 Size: 16 [unused] // float4 fog_min_inv_fog1_fog2; // Offset: 608 Size: 16 // float4 keyLightColour; // Offset: 624 Size: 16 [unused] // float4 msaaMode; // Offset: 640 Size: 16 [unused] // float4 heightFogVector0; // Offset: 656 Size: 16 [unused] // float4 heightFogVector1; // Offset: 672 Size: 16 [unused] // float4 bonnetReflectionAndClamp; // Offset: 688 Size: 16 [unused] // float4 miscPhase2Flags; // Offset: 704 Size: 16 [unused] // float3 keyLightDirVS; // Offset: 720 Size: 12 [unused] // float3 worldCameraPos; // Offset: 736 Size: 12 // float emissiveTextureControl; // Offset: 748 Size: 4 [unused] // // } // // cbuffer COMMON_BUFFER4 // { // // float3 lightPosition0; // Offset: 0 Size: 12 [unused] // float3 lightDirection0; // Offset: 16 Size: 12 // float4 lightColour0; // Offset: 32 Size: 16 // float4 lightAttenuation0; // Offset: 48 Size: 16 [unused] // row_major float4x4 cShadowMatrices0[4];// Offset: 64 Size: 256 [unused] // float4 cShadowMapDim0; // Offset: 320 Size: 16 [unused] // float4 cShadowTransitions0; // Offset: 336 Size: 16 [unused] // float4 cShadowParamsA0; // Offset: 352 Size: 16 [unused] // row_major float4x4 cShadowViewMatrix0;// Offset: 368 Size: 64 [unused] // float3 lightPosition1; // Offset: 432 Size: 12 // float3 lightDirection1; // Offset: 448 Size: 12 // float4 lightColour1; // Offset: 464 Size: 16 // float4 lightAttenuation1; // Offset: 480 Size: 16 // row_major float4x4 cShadowMatrices1[4];// Offset: 496 Size: 256 [unused] // float4 cShadowMapDim1; // Offset: 752 Size: 16 [unused] // float4 cShadowTransitions1; // Offset: 768 Size: 16 [unused] // float4 cShadowParamsA1; // Offset: 784 Size: 16 [unused] // row_major float4x4 cShadowViewMatrix1;// Offset: 800 Size: 64 [unused] // float3 lightPosition2; // Offset: 864 Size: 12 // float3 lightDirection2; // Offset: 880 Size: 12 // float4 lightColour2; // Offset: 896 Size: 16 // float4 lightAttenuation2; // Offset: 912 Size: 16 // row_major float4x4 cShadowMatrices2[4];// Offset: 928 Size: 256 [unused] // float4 cShadowMapDim2; // Offset: 1184 Size: 16 [unused] // float4 cShadowTransitions2; // Offset: 1200 Size: 16 [unused] // float4 cShadowParamsA2; // Offset: 1216 Size: 16 [unused] // row_major float4x4 cShadowViewMatrix2;// Offset: 1232 Size: 64 [unused] // float3 lightPosition3; // Offset: 1296 Size: 12 // float3 lightDirection3; // Offset: 1312 Size: 12 // float4 lightColour3; // Offset: 1328 Size: 16 // float4 lightAttenuation3; // Offset: 1344 Size: 16 // row_major float4x4 cShadowMatrices3[4];// Offset: 1360 Size: 256 [unused] // float4 cShadowMapDim3; // Offset: 1616 Size: 16 [unused] // float4 cShadowTransitions3; // Offset: 1632 Size: 16 [unused] // float4 cShadowParamsA3; // Offset: 1648 Size: 16 [unused] // row_major float4x4 cShadowViewMatrix3;// Offset: 1664 Size: 64 [unused] // float3 lightPosition4; // Offset: 1728 Size: 12 // float3 lightDirection4; // Offset: 1744 Size: 12 // float4 lightColour4; // Offset: 1760 Size: 16 // float4 lightAttenuation4; // Offset: 1776 Size: 16 // row_major float4x4 cShadowMatrices4[4];// Offset: 1792 Size: 256 [unused] // float4 cShadowMapDim4; // Offset: 2048 Size: 16 [unused] // float4 cShadowTransitions4; // Offset: 2064 Size: 16 [unused] // float4 cShadowParamsA4; // Offset: 2080 Size: 16 [unused] // row_major float4x4 cShadowViewMatrix4;// Offset: 2096 Size: 64 [unused] // float3 lightPosition5; // Offset: 2160 Size: 12 // float3 lightDirection5; // Offset: 2176 Size: 12 // float4 lightColour5; // Offset: 2192 Size: 16 // float4 lightAttenuation5; // Offset: 2208 Size: 16 // row_major float4x4 cShadowMatrices5[4];// Offset: 2224 Size: 256 [unused] // float4 cShadowMapDim5; // Offset: 2480 Size: 16 [unused] // float4 cShadowTransitions5; // Offset: 2496 Size: 16 [unused] // float4 cShadowParamsA5; // Offset: 2512 Size: 16 [unused] // row_major float4x4 cShadowViewMatrix5;// Offset: 2528 Size: 64 [unused] // float3 lightPosition6; // Offset: 2592 Size: 12 // float3 lightDirection6; // Offset: 2608 Size: 12 // float4 lightColour6; // Offset: 2624 Size: 16 // float4 lightAttenuation6; // Offset: 2640 Size: 16 // row_major float4x4 cShadowMatrices6[4];// Offset: 2656 Size: 256 [unused] // float4 cShadowMapDim6; // Offset: 2912 Size: 16 [unused] // float4 cShadowTransitions6; // Offset: 2928 Size: 16 [unused] // float4 cShadowParamsA6; // Offset: 2944 Size: 16 [unused] // row_major float4x4 cShadowViewMatrix6;// Offset: 2960 Size: 64 [unused] // float3 lightPosition7; // Offset: 3024 Size: 12 // float3 lightDirection7; // Offset: 3040 Size: 12 // float4 lightColour7; // Offset: 3056 Size: 16 // float4 lightAttenuation7; // Offset: 3072 Size: 16 // row_major float4x4 cShadowMatrices7[4];// Offset: 3088 Size: 256 [unused] // float4 cShadowMapDim7; // Offset: 3344 Size: 16 [unused] // float4 cShadowTransitions7; // Offset: 3360 Size: 16 [unused] // float4 cShadowParamsA7; // Offset: 3376 Size: 16 [unused] // row_major float4x4 cShadowViewMatrix7;// Offset: 3392 Size: 64 [unused] // float3 lightPosition8; // Offset: 3456 Size: 12 // float3 lightDirection8; // Offset: 3472 Size: 12 // float4 lightColour8; // Offset: 3488 Size: 16 // float4 lightAttenuation8; // Offset: 3504 Size: 16 // row_major float4x4 cShadowMatrices8[4];// Offset: 3520 Size: 256 [unused] // float4 cShadowMapDim8; // Offset: 3776 Size: 16 [unused] // float4 cShadowTransitions8; // Offset: 3792 Size: 16 [unused] // float4 cShadowParamsA8; // Offset: 3808 Size: 16 [unused] // row_major float4x4 cShadowViewMatrix8;// Offset: 3824 Size: 64 [unused] // float4 upColour; // Offset: 3888 Size: 16 [unused] // float4 downColour; // Offset: 3904 Size: 16 [unused] // // } // // cbuffer _GLOBAL_ // { // // float forwarddirlightscaler; // Offset: 0 Size: 4 // = 0x3f800000 // float forwardspotlightscaler; // Offset: 4 Size: 4 // = 0x3f800000 // float forwardambientlightingscaler;// Offset: 8 Size: 4 [unused] // = 0x3f800000 // float additionaldirLightingScaler; // Offset: 12 Size: 4 // = 0x3f800000 // float additionalspotLightingScaler;// Offset: 16 Size: 4 // = 0x3f800000 // float particleAlphaThreshold; // Offset: 20 Size: 4 // = 0x3d4ccccd // float startCamFadeDistToVertex; // Offset: 24 Size: 4 // = 0x00000000 // float endCamFadeDistToVertex; // Offset: 28 Size: 4 // = 0x00000000 // float maxSpecularCoef; // Offset: 32 Size: 4 // = 0x00000000 // float4 nearFarClip; // Offset: 48 Size: 16 // row_major float4x4 fadePointTransform;// Offset: 64 Size: 64 [unused] // float4 fadePointInnerBoundsXYZ; // Offset: 128 Size: 16 [unused] // float4 fadePointRecipBoundsDiffXYZ;// Offset: 144 Size: 16 [unused] // float4 c_texAnimMatrixScaleTrans; // Offset: 160 Size: 16 // float2 c_numAnimFrames; // Offset: 176 Size: 8 // float c_totalAnimFrames; // Offset: 184 Size: 4 // float2 c_recipNumAnimFrames; // Offset: 192 Size: 8 // row_major float4x4 c_uvArray; // Offset: 208 Size: 64 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // _GLOBAL_ cbuffer NA NA 0 1 // COMMON_BUFFER4 cbuffer NA NA 10 1 // COMMON_BUFFER2 cbuffer NA NA 12 1 // COMMON_BUFFER1 cbuffer NA NA 13 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyzw 0 NONE float xyzw // NORMAL 0 xy 1 NONE float xy // TEXCOORD 0 xy 2 NONE float xy // COLOR 0 xyzw 3 NONE float xyzw // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float xyzw // NORMAL 0 xyz 1 NONE float xyz // TEXCOORD 0 xyzw 2 NONE float xyzw // TEXCOORD 1 xy 3 NONE float xy // TEXCOORD 2 xyz 4 NONE float xyz // TEXCOORD 3 xyzw 5 NONE float xyzw // TEXCOORD 4 xyzw 6 NONE float xyzw // TEXCOORD 5 xyzw 7 NONE float xyzw // TEXCOORD 6 xyz 8 NONE float xyz // TEXCOORD 8 xyz 9 NONE float xyz // vs_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb13[13], immediateIndexed dcl_constantbuffer cb12[47], immediateIndexed dcl_constantbuffer cb10[220], immediateIndexed dcl_constantbuffer cb0[17], dynamicIndexed dcl_input v0.xyzw dcl_input v1.xy dcl_input v2.xy dcl_input v3.xyzw dcl_output_siv o0.xyzw, position dcl_output o1.xyz dcl_output o2.xyzw dcl_output o3.xy dcl_output o4.xyz dcl_output o5.xyzw dcl_output o6.xyzw dcl_output o7.xyzw dcl_output o8.xyz dcl_output o9.xyz dcl_temps 20 sincos r0.x, r1.x, v2.x mov r2.z, r0.x mov r2.y, r1.x mov r2.x, -r0.x dp2 r0.y, v1.xyxx, r2.xyxx dp2 r0.x, v1.xyxx, r2.yzyy mul r1.xyzw, v0.yyyy, cb13[10].xyzw mad r1.xyzw, v0.xxxx, cb13[9].xyzw, r1.xyzw mad r1.xyzw, v0.zzzz, cb13[11].xyzw, r1.xyzw add r1.xyzw, r1.xyzw, cb13[12].xyzw add r0.xy, r0.xyxx, r1.xyxx mul r2.xyzw, r0.yyyy, cb12[9].xyzw mad r2.xyzw, r0.xxxx, cb12[8].xyzw, r2.xyzw mad r2.xyzw, r1.zzzz, cb12[10].xyzw, r2.xyzw mad r2.xyzw, r1.wwww, cb12[11].xyzw, r2.xyzw add r0.z, |r1.z|, -cb0[1].w add r0.w, -cb0[1].w, cb0[1].z div_sat r0.z, r0.z, r0.w mul r0.z, r0.z, v3.w lt r0.w, r0.z, cb0[1].y mov o5.w, r0.z movc o0.w, r0.w, l(-1.000000), r2.w mov o0.xyz, r2.xyzx dp3 r0.z, -cb12[6].xyzx, -cb12[6].xyzx rsq r0.z, r0.z mul o1.xyz, r0.zzzz, -cb12[6].xyzx mad r0.z, v2.y, cb0[11].z, l(1.000000) lt r0.w, cb0[11].z, r0.z add r1.x, r0.z, -cb0[11].z movc r0.z, r0.w, r1.x, r0.z div r0.w, r0.z, cb0[11].x ge r1.x, r0.w, -r0.w frc r0.w, |r0.w| movc r0.w, r1.x, r0.w, -r0.w mad r0.z, -r0.w, cb0[11].x, r0.z mul r0.w, r0.w, cb0[11].x round_ni r0.w, r0.w mad r3.y, r0.w, cb0[12].x, cb0[10].z mul r0.z, r0.z, cb0[12].x mad r3.w, r0.z, cb0[12].y, cb0[10].w mov r3.xz, cb0[10].xxyx ftoi r0.z, v0.w mov r4.xz, cb0[r0.z + 13].xxyx mov r4.yw, l(0,1.000000,0,1.000000) dp2 o2.w, r4.zwzz, r3.zwzz dp2 o2.z, r4.xyxx, r3.xyxx mul r0.z, v2.y, cb0[11].z div r0.w, r0.z, cb0[11].x frc o3.x, r0.z ge r0.z, r0.w, -r0.w frc r0.w, |r0.w| movc r0.z, r0.z, r0.w, -r0.w mul r0.z, r0.z, cb0[11].x mad r0.w, v2.y, cb0[11].z, -r0.z round_ni r0.z, r0.z mad r3.y, r0.z, cb0[12].x, cb0[10].z mul r0.z, r0.w, cb0[12].x mad r3.w, r0.z, cb0[12].y, cb0[10].w mov r3.xz, cb0[10].xxyx dp2 o2.y, r4.zwzz, r3.zwzz dp2 o2.x, r4.xyxx, r3.xyxx dp2 r0.z, v1.xyxx, v1.xyxx sqrt r3.w, r0.z div o3.y, r3.w, cb0[3].y div r0.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w mul r0.w, r0.z, r2.x mul r0.z, r0.z, -r2.y mad o4.y, r0.z, l(0.500000), l(0.500000) mad o4.x, r0.w, l(0.500000), l(0.500000) mul r2.xyzw, r0.yyyy, cb12[5].xyzw mad r0.xyzw, r0.xxxx, cb12[4].xyzw, r2.xyzw mad r0.xyzw, r1.zzzz, cb12[6].xyzw, r0.xyzw mad r0.xyzw, r1.wwww, cb12[7].xyzw, r0.xyzw mul r1.x, r0.y, cb12[1].z mad r1.x, r0.x, cb12[0].z, r1.x mad r1.x, r0.z, cb12[2].z, r1.x mad r0.w, r0.w, cb12[3].z, r1.x div o4.z, r0.w, cb0[3].y mov o5.xyz, v3.xyzx dp2 r0.w, cb12[36].xzxx, cb12[36].xzxx rsq r0.w, r0.w mul r1.xy, r0.wwww, cb12[36].xzxx add r2.xyz, r0.xyzx, -cb12[46].xyzx dp3 r0.w, r2.xyzx, r2.xyzx sqrt r0.w, r0.w div r1.zw, r2.xxxz, r0.wwww add r0.w, r0.w, -cb12[38].x mul_sat r0.w, r0.w, cb12[38].y log r0.w, r0.w mul r0.w, r0.w, cb12[38].w exp r0.w, r0.w dp2 r2.x, r1.zwzz, r1.zwzz rsq r2.x, r2.x mul r1.zw, r1.zzzw, r2.xxxx dp2 r1.x, r1.zwzz, r1.xyxx add r1.x, r1.x, l(1.000000) mul_sat r1.x, r1.x, l(0.500000) add r1.yzw, cb12[34].xxyz, -cb12[35].xxyz mad r1.xyz, r1.xxxx, r1.yzwy, cb12[35].xyzx mul r1.w, r0.w, cb12[38].z mad o6.w, -r0.w, cb12[38].z, l(1.000000) mul o6.xyz, r1.wwww, r1.xyzx add r3.xyz, -r0.xyzx, cb12[46].xyzx mov o7.xyzw, r3.xyzw add r1.xyz, -r0.xyzx, cb10[81].xyzx dp3 r0.w, r1.xyzx, r1.xyzx mul r1.w, r0.w, cb10[84].x mad r1.w, -r1.w, r1.w, l(1.000000) max r1.w, r1.w, l(9.999999825E-015) mul r1.w, r1.w, r1.w mul r1.w, r1.w, r1.w mad_sat r2.x, r1.w, r1.w, cb10[84].y max r2.y, r0.w, l(0.000100) rsq r0.w, r0.w div r2.y, l(1.000000, 1.000000, 1.000000, 1.000000), r2.y mul r2.x, r2.x, r2.y mul r4.xyz, r0.wwww, r1.xyzx dp3 r2.z, -cb10[82].xyzx, r4.xyzx mad_sat r2.z, r2.z, cb10[84].z, cb10[84].w mul r2.z, r2.z, r2.z mul r2.x, r2.z, r2.x add r2.z, cb10[84].y, l(-1.000000) mad_sat r1.w, r1.w, r1.w, r2.z mul r1.w, r1.w, r2.y lt r2.y, l(1.000000), cb10[84].y movc r1.w, r2.y, r1.w, r2.x add r2.xyz, -r0.xyzx, cb10[54].xyzx dp3 r2.w, r2.xyzx, r2.xyzx mul r3.w, r2.w, cb10[57].x mad r3.w, -r3.w, r3.w, l(1.000000) max r3.w, r3.w, l(9.999999825E-015) mul r3.w, r3.w, r3.w mul r3.w, r3.w, r3.w mad_sat r4.x, r3.w, r3.w, cb10[57].y max r4.y, r2.w, l(0.000100) rsq r2.w, r2.w div r4.y, l(1.000000, 1.000000, 1.000000, 1.000000), r4.y mul r4.x, r4.x, r4.y mul r5.xyz, r2.wwww, r2.xyzx dp3 r4.z, -cb10[55].xyzx, r5.xyzx mad_sat r4.z, r4.z, cb10[57].z, cb10[57].w mul r4.z, r4.z, r4.z mul r4.x, r4.z, r4.x add r4.z, cb10[57].y, l(-1.000000) mad_sat r3.w, r3.w, r3.w, r4.z mul r3.w, r3.w, r4.y lt r4.y, l(1.000000), cb10[57].y movc r3.w, r4.y, r3.w, r4.x add r4.xyz, -r0.xyzx, cb10[27].xyzx dp3 r4.w, r4.xyzx, r4.xyzx mul r5.x, r4.w, cb10[30].x mad r5.x, -r5.x, r5.x, l(1.000000) max r5.x, r5.x, l(9.999999825E-015) mul r5.x, r5.x, r5.x mul r5.x, r5.x, r5.x mad_sat r5.y, r5.x, r5.x, cb10[30].y max r5.z, r4.w, l(0.000100) rsq r4.w, r4.w div r5.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z mul r5.y, r5.y, r5.z mul r6.xyz, r4.wwww, r4.xyzx dp3 r5.w, -cb10[28].xyzx, r6.xyzx mad_sat r5.w, r5.w, cb10[30].z, cb10[30].w mul r5.w, r5.w, r5.w mul r5.y, r5.w, r5.y add r5.w, cb10[30].y, l(-1.000000) mad_sat r5.x, r5.x, r5.x, r5.w mul r5.x, r5.x, r5.z lt r5.z, l(1.000000), cb10[30].y movc r5.x, r5.z, r5.x, r5.y mul r5.y, cb0[0].w, cb0[0].x mul r5.yzw, r5.yyyy, cb10[2].xxyz mul r6.x, cb0[0].y, cb0[1].x mul r6.yzw, r6.xxxx, cb10[29].xxyz mad r7.xyz, r6.yzwy, r5.xxxx, r5.yzwy mul r8.xyz, r6.xxxx, cb10[56].xyzx mad r7.xyz, r8.xyzx, r3.wwww, r7.xyzx mul r9.xyz, r6.xxxx, cb10[83].xyzx mad r7.xyz, r9.xyzx, r1.wwww, r7.xyzx add r10.xyz, -r0.xyzx, cb10[108].xyzx dp3 r7.w, r10.xyzx, r10.xyzx mul r8.w, r7.w, cb10[111].x mad r8.w, -r8.w, r8.w, l(1.000000) max r8.w, r8.w, l(9.999999825E-015) mul r8.w, r8.w, r8.w mul r8.w, r8.w, r8.w mad_sat r9.w, r8.w, r8.w, cb10[111].y max r10.w, r7.w, l(0.000100) rsq r7.w, r7.w div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r10.w mul r9.w, r9.w, r10.w mul r11.xyz, r7.wwww, r10.xyzx dp3 r11.x, -cb10[109].xyzx, r11.xyzx mad_sat r11.x, r11.x, cb10[111].z, cb10[111].w mul r11.x, r11.x, r11.x mul r9.w, r9.w, r11.x add r11.x, cb10[111].y, l(-1.000000) mad_sat r8.w, r8.w, r8.w, r11.x mul r8.w, r8.w, r10.w lt r10.w, l(1.000000), cb10[111].y movc r8.w, r10.w, r8.w, r9.w mul r11.xyz, r6.xxxx, cb10[110].xyzx mad r7.xyz, r11.xyzx, r8.wwww, r7.xyzx add r12.xyz, -r0.xyzx, cb10[135].xyzx dp3 r9.w, r12.xyzx, r12.xyzx mul r10.w, r9.w, cb10[138].x mad r10.w, -r10.w, r10.w, l(1.000000) max r10.w, r10.w, l(9.999999825E-015) mul r10.w, r10.w, r10.w mul r10.w, r10.w, r10.w mad_sat r11.w, r10.w, r10.w, cb10[138].y max r12.w, r9.w, l(0.000100) rsq r9.w, r9.w div r12.w, l(1.000000, 1.000000, 1.000000, 1.000000), r12.w mul r11.w, r11.w, r12.w mul r13.xyz, r9.wwww, r12.xyzx dp3 r13.x, -cb10[136].xyzx, r13.xyzx mad_sat r13.x, r13.x, cb10[138].z, cb10[138].w mul r13.x, r13.x, r13.x mul r11.w, r11.w, r13.x add r13.x, cb10[138].y, l(-1.000000) mad_sat r10.w, r10.w, r10.w, r13.x mul r10.w, r10.w, r12.w lt r12.w, l(1.000000), cb10[138].y movc r10.w, r12.w, r10.w, r11.w mul r13.xyz, r6.xxxx, cb10[137].xyzx mad r7.xyz, r13.xyzx, r10.wwww, r7.xyzx add r14.xyz, -r0.xyzx, cb10[162].xyzx dp3 r11.w, r14.xyzx, r14.xyzx mul r12.w, r11.w, cb10[165].x mad r12.w, -r12.w, r12.w, l(1.000000) max r12.w, r12.w, l(9.999999825E-015) mul r12.w, r12.w, r12.w mul r12.w, r12.w, r12.w mad_sat r13.w, r12.w, r12.w, cb10[165].y max r14.w, r11.w, l(0.000100) rsq r11.w, r11.w div r14.w, l(1.000000, 1.000000, 1.000000, 1.000000), r14.w mul r13.w, r13.w, r14.w mul r15.xyz, r11.wwww, r14.xyzx dp3 r15.x, -cb10[163].xyzx, r15.xyzx mad_sat r15.x, r15.x, cb10[165].z, cb10[165].w mul r15.x, r15.x, r15.x mul r13.w, r13.w, r15.x add r15.x, cb10[165].y, l(-1.000000) mad_sat r12.w, r12.w, r12.w, r15.x mul r12.w, r12.w, r14.w lt r14.w, l(1.000000), cb10[165].y movc r12.w, r14.w, r12.w, r13.w mul r15.xyz, r6.xxxx, cb10[164].xyzx mad r7.xyz, r15.xyzx, r12.wwww, r7.xyzx add r16.xyz, -r0.xyzx, cb10[189].xyzx add r0.xyz, -r0.xyzx, cb10[216].xyzx dp3 r13.w, r16.xyzx, r16.xyzx rsq r14.w, r13.w mul r17.xyz, r14.wwww, r16.xyzx dp3 r15.w, -cb10[190].xyzx, r17.xyzx mad_sat r15.w, r15.w, cb10[192].z, cb10[192].w mul r15.w, r15.w, r15.w mul r16.w, r13.w, cb10[192].x max r13.w, r13.w, l(0.000100) div r13.w, l(1.000000, 1.000000, 1.000000, 1.000000), r13.w mad r16.w, -r16.w, r16.w, l(1.000000) max r16.w, r16.w, l(9.999999825E-015) mul r16.w, r16.w, r16.w mul r16.w, r16.w, r16.w mad_sat r17.x, r16.w, r16.w, cb10[192].y mul r17.x, r13.w, r17.x mul r15.w, r15.w, r17.x add r17.x, cb10[192].y, l(-1.000000) mad_sat r16.w, r16.w, r16.w, r17.x mul r13.w, r13.w, r16.w lt r16.w, l(1.000000), cb10[192].y movc r13.w, r16.w, r13.w, r15.w mul r17.xyz, r6.xxxx, cb10[191].xyzx mul r18.xyz, r6.xxxx, cb10[218].xyzx mad r7.xyz, r17.xyzx, r13.wwww, r7.xyzx dp3 r6.x, r0.xyzx, r0.xyzx rsq r15.w, r6.x mul r19.xyz, r0.xyzx, r15.wwww dp3 r16.w, -cb10[217].xyzx, r19.xyzx mad_sat r16.w, r16.w, cb10[219].z, cb10[219].w mul r16.w, r16.w, r16.w mul r17.w, r6.x, cb10[219].x max r6.x, r6.x, l(0.000100) div r6.x, l(1.000000, 1.000000, 1.000000, 1.000000), r6.x mad r17.w, -r17.w, r17.w, l(1.000000) max r17.w, r17.w, l(9.999999825E-015) mul r17.w, r17.w, r17.w mul r17.w, r17.w, r17.w mad_sat r18.w, r17.w, r17.w, cb10[219].y mul r18.w, r6.x, r18.w mul r16.w, r16.w, r18.w add r18.w, cb10[219].y, l(-1.000000) mad_sat r17.w, r17.w, r17.w, r18.w mul r6.x, r6.x, r17.w lt r17.w, l(1.000000), cb10[219].y movc r6.x, r17.w, r6.x, r16.w mad o8.xyz, r18.xyzx, r6.xxxx, r7.xyzx lt r7.x, l(0.000000), r5.x dp3 r7.y, r3.xyzx, r3.xyzx rsq r7.y, r7.y mul r19.xyz, r3.xyzx, r7.yyyy mad r3.xyz, r3.xyzx, r7.yyyy, cb10[1].xyzx mad r4.xyz, r4.xyzx, r4.wwww, r19.xyzx dp3 r4.w, r4.xyzx, r4.xyzx rsq r4.w, r4.w mul r4.xyz, r4.wwww, r4.xyzx dp3_sat r4.x, r19.xyzx, r4.xyzx max r4.x, r4.x, l(9.999999825E-015) mul r4.x, r4.x, cb0[2].x mul r4.x, r4.x, l(0.409255564) mul r4.xyz, r6.yzwy, r4.xxxx dp3 r4.w, r3.xyzx, r3.xyzx rsq r4.w, r4.w mul r3.xyz, r3.xyzx, r4.wwww dp3_sat r3.x, -r19.xyzx, r3.xyzx max r3.x, r3.x, l(9.999999825E-015) mul r3.x, r3.x, cb0[2].x mul r3.x, r3.x, l(0.409255564) mul r3.xyz, r5.yzwy, r3.xxxx mad r4.xyz, r4.xyzx, r5.xxxx, r3.xyzx movc r3.xyz, r7.xxxx, r4.xyzx, r3.xyzx mad r2.xyz, r2.xyzx, r2.wwww, r19.xyzx dp3 r2.w, r2.xyzx, r2.xyzx rsq r2.w, r2.w mul r2.xyz, r2.wwww, r2.xyzx dp3_sat r2.x, r19.xyzx, r2.xyzx max r2.x, r2.x, l(9.999999825E-015) mul r2.x, r2.x, cb0[2].x mul r2.x, r2.x, l(0.409255564) mul r2.xyz, r8.xyzx, r2.xxxx mad r2.xyz, r2.xyzx, r3.wwww, r3.xyzx lt r2.w, l(0.000000), r3.w movc r2.xyz, r2.wwww, r2.xyzx, r3.xyzx mad r1.xyz, r1.xyzx, r0.wwww, r19.xyzx dp3 r0.w, r1.xyzx, r1.xyzx rsq r0.w, r0.w mul r1.xyz, r0.wwww, r1.xyzx dp3_sat r0.w, r19.xyzx, r1.xyzx max r0.w, r0.w, l(9.999999825E-015) mul r0.w, r0.w, cb0[2].x mul r0.w, r0.w, l(0.409255564) mul r1.xyz, r9.xyzx, r0.wwww mad r1.xyz, r1.xyzx, r1.wwww, r2.xyzx lt r0.w, l(0.000000), r1.w movc r1.xyz, r0.wwww, r1.xyzx, r2.xyzx mad r2.xyz, r10.xyzx, r7.wwww, r19.xyzx dp3 r0.w, r2.xyzx, r2.xyzx rsq r0.w, r0.w mul r2.xyz, r0.wwww, r2.xyzx dp3_sat r0.w, r19.xyzx, r2.xyzx max r0.w, r0.w, l(9.999999825E-015) mul r0.w, r0.w, cb0[2].x mul r0.w, r0.w, l(0.409255564) mul r2.xyz, r11.xyzx, r0.wwww mad r2.xyz, r2.xyzx, r8.wwww, r1.xyzx lt r0.w, l(0.000000), r8.w movc r1.xyz, r0.wwww, r2.xyzx, r1.xyzx mad r2.xyz, r12.xyzx, r9.wwww, r19.xyzx dp3 r0.w, r2.xyzx, r2.xyzx rsq r0.w, r0.w mul r2.xyz, r0.wwww, r2.xyzx dp3_sat r0.w, r19.xyzx, r2.xyzx max r0.w, r0.w, l(9.999999825E-015) mul r0.w, r0.w, cb0[2].x mul r0.w, r0.w, l(0.409255564) mul r2.xyz, r13.xyzx, r0.wwww mad r2.xyz, r2.xyzx, r10.wwww, r1.xyzx lt r0.w, l(0.000000), r10.w movc r1.xyz, r0.wwww, r2.xyzx, r1.xyzx mad r2.xyz, r14.xyzx, r11.wwww, r19.xyzx dp3 r0.w, r2.xyzx, r2.xyzx rsq r0.w, r0.w mul r2.xyz, r0.wwww, r2.xyzx dp3_sat r0.w, r19.xyzx, r2.xyzx max r0.w, r0.w, l(9.999999825E-015) mul r0.w, r0.w, cb0[2].x mul r0.w, r0.w, l(0.409255564) mul r2.xyz, r15.xyzx, r0.wwww mad r2.xyz, r2.xyzx, r12.wwww, r1.xyzx lt r0.w, l(0.000000), r12.w movc r1.xyz, r0.wwww, r2.xyzx, r1.xyzx mad r2.xyz, r16.xyzx, r14.wwww, r19.xyzx dp3 r0.w, r2.xyzx, r2.xyzx rsq r0.w, r0.w mul r2.xyz, r0.wwww, r2.xyzx dp3_sat r0.w, r19.xyzx, r2.xyzx max r0.w, r0.w, l(9.999999825E-015) mul r0.w, r0.w, cb0[2].x mul r0.w, r0.w, l(0.409255564) mul r2.xyz, r17.xyzx, r0.wwww mad r2.xyz, r2.xyzx, r13.wwww, r1.xyzx lt r0.w, l(0.000000), r13.w movc r1.xyz, r0.wwww, r2.xyzx, r1.xyzx mad r0.xyz, r0.xyzx, r15.wwww, r19.xyzx dp3 r0.w, r0.xyzx, r0.xyzx rsq r0.w, r0.w mul r0.xyz, r0.wwww, r0.xyzx dp3_sat r0.x, r19.xyzx, r0.xyzx max r0.x, r0.x, l(9.999999825E-015) mul r0.x, r0.x, cb0[2].x mul r0.x, r0.x, l(0.409255564) mul r0.xyz, r18.xyzx, r0.xxxx mad r0.xyz, r0.xyzx, r6.xxxx, r1.xyzx lt r0.w, l(0.000000), r6.x movc o9.xyz, r0.wwww, r0.xyzx, r1.xyzx ret // Approximately 408 instruction slots used [/code]
[Edited] sorry, should have found that info myself. ok so I clearly should not be using TaB output when taking screenshots? The screenshots looked fine, but are doubled up when attached to this post. I will post them anyway, as it is still easy to make out the issue. For now I will focus on the water spray issue, I hesitate to call it Halo issue since I do not even know the proper terminology for what my eyes are seeing.

So the first screenshot you can see the dark double image of the main car on both sides. This is only visible when the water spray exists. I then went slowly through all shaders and only found one that affects this double image - 76599b57e72f8646-vs_replace.

Image

The second screenshot shows what it looks like when this shader is disabled, notice no spray and no double image of the car:

Image

Then another screenshot with the shader enabled, and the other cars in view. The effect is usually much worse on the other cars ahead, but is difficult to capture when driving at a speed high enough to generate the spray:

Image

Here is the full 76599b57e72f8646 shader, must be in here somewhere?

// ---- Created with 3Dmigoto v1.3.10 on Thu May 03 19:49:08 2018

cbuffer COMMON_BUFFER1 : register(b13)
{
row_major float4x4 worldViewProj : packoffset(c0);
float4 encryptionKey : packoffset(c4);
row_major float4x4 world : packoffset(c5);
row_major float4x4 worldView : packoffset(c9);
row_major float4x4 worldI : packoffset(c13);
}

cbuffer COMMON_BUFFER2 : register(b12)
{
row_major float4x4 view : packoffset(c0);
row_major float4x4 viewI : packoffset(c4);
row_major float4x4 projMatrix : packoffset(c8);
row_major float4x4 viewProj : packoffset(c12);
row_major float4x4 viewProjI : packoffset(c16);
row_major float4x4 globalMatrix0 : packoffset(c20);
float4 screenSpaceDimensions : packoffset(c24);
float4 frustumDimensions : packoffset(c25);
float4 depthTranslation : packoffset(c26);
float4 cLightingTransitionValues : packoffset(c27);
float4 treeAmbientBoost : packoffset(c28);
float4 viewportPixelDimensions : packoffset(c29);
float4 globalVector4 : packoffset(c30);
float4 globalVector6 : packoffset(c31);
float4 globalVector7 : packoffset(c32);
float4 globalVector8 : packoffset(c33);
float4 fog_colour_towards : packoffset(c34);
float4 fog_colour_away : packoffset(c35);
float4 fogLightDir : packoffset(c36);
float4 keyLightDir : packoffset(c37);
float4 fog_min_inv_fog1_fog2 : packoffset(c38);
float4 keyLightColour : packoffset(c39);
float4 msaaMode : packoffset(c40);
float4 heightFogVector0 : packoffset(c41);
float4 heightFogVector1 : packoffset(c42);
float4 bonnetReflectionAndClamp : packoffset(c43);
float4 miscPhase2Flags : packoffset(c44);
float3 keyLightDirVS : packoffset(c45);
float3 worldCameraPos : packoffset(c46);
float emissiveTextureControl : packoffset(c46.w);
}

cbuffer COMMON_BUFFER4 : register(b10)
{
float3 lightPosition0 : packoffset(c0);
float3 lightDirection0 : packoffset(c1);
float4 lightColour0 : packoffset(c2);
float4 lightAttenuation0 : packoffset(c3);
row_major float4x4 cShadowMatrices0[4] : packoffset(c4);
float4 cShadowMapDim0 : packoffset(c20);
float4 cShadowTransitions0 : packoffset(c21);
float4 cShadowParamsA0 : packoffset(c22);
row_major float4x4 cShadowViewMatrix0 : packoffset(c23);
float3 lightPosition1 : packoffset(c27);
float3 lightDirection1 : packoffset(c28);
float4 lightColour1 : packoffset(c29);
float4 lightAttenuation1 : packoffset(c30);
row_major float4x4 cShadowMatrices1[4] : packoffset(c31);
float4 cShadowMapDim1 : packoffset(c47);
float4 cShadowTransitions1 : packoffset(c48);
float4 cShadowParamsA1 : packoffset(c49);
row_major float4x4 cShadowViewMatrix1 : packoffset(c50);
float3 lightPosition2 : packoffset(c54);
float3 lightDirection2 : packoffset(c55);
float4 lightColour2 : packoffset(c56);
float4 lightAttenuation2 : packoffset(c57);
row_major float4x4 cShadowMatrices2[4] : packoffset(c58);
float4 cShadowMapDim2 : packoffset(c74);
float4 cShadowTransitions2 : packoffset(c75);
float4 cShadowParamsA2 : packoffset(c76);
row_major float4x4 cShadowViewMatrix2 : packoffset(c77);
float3 lightPosition3 : packoffset(c81);
float3 lightDirection3 : packoffset(c82);
float4 lightColour3 : packoffset(c83);
float4 lightAttenuation3 : packoffset(c84);
row_major float4x4 cShadowMatrices3[4] : packoffset(c85);
float4 cShadowMapDim3 : packoffset(c101);
float4 cShadowTransitions3 : packoffset(c102);
float4 cShadowParamsA3 : packoffset(c103);
row_major float4x4 cShadowViewMatrix3 : packoffset(c104);
float3 lightPosition4 : packoffset(c108);
float3 lightDirection4 : packoffset(c109);
float4 lightColour4 : packoffset(c110);
float4 lightAttenuation4 : packoffset(c111);
row_major float4x4 cShadowMatrices4[4] : packoffset(c112);
float4 cShadowMapDim4 : packoffset(c128);
float4 cShadowTransitions4 : packoffset(c129);
float4 cShadowParamsA4 : packoffset(c130);
row_major float4x4 cShadowViewMatrix4 : packoffset(c131);
float3 lightPosition5 : packoffset(c135);
float3 lightDirection5 : packoffset(c136);
float4 lightColour5 : packoffset(c137);
float4 lightAttenuation5 : packoffset(c138);
row_major float4x4 cShadowMatrices5[4] : packoffset(c139);
float4 cShadowMapDim5 : packoffset(c155);
float4 cShadowTransitions5 : packoffset(c156);
float4 cShadowParamsA5 : packoffset(c157);
row_major float4x4 cShadowViewMatrix5 : packoffset(c158);
float3 lightPosition6 : packoffset(c162);
float3 lightDirection6 : packoffset(c163);
float4 lightColour6 : packoffset(c164);
float4 lightAttenuation6 : packoffset(c165);
row_major float4x4 cShadowMatrices6[4] : packoffset(c166);
float4 cShadowMapDim6 : packoffset(c182);
float4 cShadowTransitions6 : packoffset(c183);
float4 cShadowParamsA6 : packoffset(c184);
row_major float4x4 cShadowViewMatrix6 : packoffset(c185);
float3 lightPosition7 : packoffset(c189);
float3 lightDirection7 : packoffset(c190);
float4 lightColour7 : packoffset(c191);
float4 lightAttenuation7 : packoffset(c192);
row_major float4x4 cShadowMatrices7[4] : packoffset(c193);
float4 cShadowMapDim7 : packoffset(c209);
float4 cShadowTransitions7 : packoffset(c210);
float4 cShadowParamsA7 : packoffset(c211);
row_major float4x4 cShadowViewMatrix7 : packoffset(c212);
float3 lightPosition8 : packoffset(c216);
float3 lightDirection8 : packoffset(c217);
float4 lightColour8 : packoffset(c218);
float4 lightAttenuation8 : packoffset(c219);
row_major float4x4 cShadowMatrices8[4] : packoffset(c220);
float4 cShadowMapDim8 : packoffset(c236);
float4 cShadowTransitions8 : packoffset(c237);
float4 cShadowParamsA8 : packoffset(c238);
row_major float4x4 cShadowViewMatrix8 : packoffset(c239);
float4 upColour : packoffset(c243);
float4 downColour : packoffset(c244);
}

cbuffer _GLOBAL_ : register(b0)
{
float forwarddirlightscaler : packoffset(c0) = {1};
float forwardspotlightscaler : packoffset(c0.y) = {1};
float forwardambientlightingscaler : packoffset(c0.z) = {1};
float additionaldirLightingScaler : packoffset(c0.w) = {1};
float additionalspotLightingScaler : packoffset(c1) = {1};
float particleAlphaThreshold : packoffset(c1.y) = {0.0500000007};
float startCamFadeDistToVertex : packoffset(c1.z) = {0};
float endCamFadeDistToVertex : packoffset(c1.w) = {0};
float maxSpecularCoef : packoffset(c2) = {0};
float4 nearFarClip : packoffset(c3);
row_major float4x4 fadePointTransform : packoffset(c4);
float4 fadePointInnerBoundsXYZ : packoffset(c8);
float4 fadePointRecipBoundsDiffXYZ : packoffset(c9);
float4 c_texAnimMatrixScaleTrans : packoffset(c10);
float2 c_numAnimFrames : packoffset(c11);
float c_totalAnimFrames : packoffset(c11.z);
float2 c_recipNumAnimFrames : packoffset(c12);
row_major float4x4 c_uvArray : packoffset(c13);
}



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


void main(
float4 v0 : POSITION0,
float2 v1 : NORMAL0,
float2 v2 : TEXCOORD0,
float4 v3 : COLOR0,
out float4 o0 : SV_POSITION0,
out float3 o1 : NORMAL0,
out float4 o2 : TEXCOORD0,
out float4 o3 : TEXCOORD1,
out float4 o4 : TEXCOORD2,
out float4 o5 : TEXCOORD3,
out float4 o6 : TEXCOORD4,
out float4 o7 : TEXCOORD5,
out float4 o8 : TEXCOORD6,
out float3 o9 : TEXCOORD8)
{
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19;
uint4 bitmask, uiDest;
float4 fDest;

sincos(v2.x, r0.x, r1.x);
r2.z = r0.x;
r2.y = r1.x;
r2.x = -r0.x;
r0.y = dot(v1.xy, r2.xy);
r0.x = dot(v1.xy, r2.yz);
r1.xyzw = worldView._m10_m11_m12_m13 * v0.yyyy;
r1.xyzw = v0.xxxx * worldView._m00_m01_m02_m03 + r1.xyzw;
r1.xyzw = v0.zzzz * worldView._m20_m21_m22_m23 + r1.xyzw;
r1.xyzw = worldView._m30_m31_m32_m33 + r1.xyzw;
r0.xy = r1.xy + r0.xy;
r2.xyzw = projMatrix._m10_m11_m12_m13 * r0.yyyy;
r2.xyzw = r0.xxxx * projMatrix._m00_m01_m02_m03 + r2.xyzw;
r2.xyzw = r1.zzzz * projMatrix._m20_m21_m22_m23 + r2.xyzw;
r2.xyzw = r1.wwww * projMatrix._m30_m31_m32_m33 + r2.xyzw;
r0.z = -endCamFadeDistToVertex + abs(r1.z);
r0.w = startCamFadeDistToVertex + -endCamFadeDistToVertex;
r0.z = saturate(r0.z / r0.w);
r0.z = v3.w * r0.z;
r0.w = cmp(r0.z < particleAlphaThreshold);
o5.w = r0.z;
o0.w = r0.w ? -1 : r2.w;
o0.xyz = r2.xyz;
r0.z = dot(-viewI._m20_m21_m22, -viewI._m20_m21_m22);
r0.z = rsqrt(r0.z);
o1.xyz = -viewI._m20_m21_m22 * r0.zzz;
r0.z = v2.y * c_totalAnimFrames + 1;
r0.w = cmp(c_totalAnimFrames < r0.z);
r1.x = -c_totalAnimFrames + r0.z;
r0.z = r0.w ? r1.x : r0.z;
r0.w = r0.z / c_numAnimFrames.x;
r1.x = cmp(r0.w >= -r0.w);
r0.w = frac(abs(r0.w));
r0.w = r1.x ? r0.w : -r0.w;
r0.z = -r0.w * c_numAnimFrames.x + r0.z;
r0.w = c_numAnimFrames.x * r0.w;
r0.w = floor(r0.w);
r3.y = r0.w * c_recipNumAnimFrames.x + c_texAnimMatrixScaleTrans.z;
r0.z = c_recipNumAnimFrames.x * r0.z;
r3.w = r0.z * c_recipNumAnimFrames.y + c_texAnimMatrixScaleTrans.w;
r3.xz = c_texAnimMatrixScaleTrans.xy;
r0.z = (int)v0.w;
r4.xz = c_uvArray[r0.z/4]._m00_m01;
r4.yw = float2(1,1);
o2.w = dot(r4.zw, r3.zw);
o2.z = dot(r4.xy, r3.xy);
r0.z = c_totalAnimFrames * v2.y;
r0.w = r0.z / c_numAnimFrames.x;
o3.x = frac(r0.z);
r0.z = cmp(r0.w >= -r0.w);
r0.w = frac(abs(r0.w));
r0.z = r0.z ? r0.w : -r0.w;
r0.z = c_numAnimFrames.x * r0.z;
r0.w = v2.y * c_totalAnimFrames + -r0.z;
r0.z = floor(r0.z);
r3.y = r0.z * c_recipNumAnimFrames.x + c_texAnimMatrixScaleTrans.z;
r0.z = c_recipNumAnimFrames.x * r0.w;
r3.w = r0.z * c_recipNumAnimFrames.y + c_texAnimMatrixScaleTrans.w;
r3.xz = c_texAnimMatrixScaleTrans.xy;
o2.y = dot(r4.zw, r3.zw);
o2.x = dot(r4.xy, r3.xy);
r0.z = dot(v1.xy, v1.xy);
r3.w = sqrt(r0.z);
o3.y = r3.w / nearFarClip.y;
r0.z = 1 / r2.w;
r0.w = r2.x * r0.z;
r0.z = -r2.y * r0.z;
o4.y = r0.z * 0.5 + 0.5;
o4.x = r0.w * 0.5 + 0.5;
r2.xyzw = viewI._m10_m11_m12_m13 * r0.yyyy;
r0.xyzw = r0.xxxx * viewI._m00_m01_m02_m03 + r2.xyzw;
r0.xyzw = r1.zzzz * viewI._m20_m21_m22_m23 + r0.xyzw;
r0.xyzw = r1.wwww * viewI._m30_m31_m32_m33 + r0.xyzw;
r1.x = view._m12 * r0.y;
r1.x = r0.x * view._m02 + r1.x;
r1.x = r0.z * view._m22 + r1.x;
r0.w = r0.w * view._m32 + r1.x;
o4.z = r0.w / nearFarClip.y;
o5.xyz = v3.xyz;
r0.w = dot(fogLightDir.xz, fogLightDir.xz);
r0.w = rsqrt(r0.w);
r1.xy = fogLightDir.xz * r0.ww;
r2.xyz = -worldCameraPos.xyz + r0.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = sqrt(r0.w);
r1.zw = r2.xz / r0.ww;
r0.w = -fog_min_inv_fog1_fog2.x + r0.w;
r0.w = saturate(fog_min_inv_fog1_fog2.y * r0.w);
r0.w = log2(r0.w);
r0.w = fog_min_inv_fog1_fog2.w * r0.w;
r0.w = exp2(r0.w);
r2.x = dot(r1.zw, r1.zw);
r2.x = rsqrt(r2.x);
r1.zw = r2.xx * r1.zw;
r1.x = dot(r1.zw, r1.xy);
r1.x = 1 + r1.x;
r1.x = saturate(0.5 * r1.x);
r1.yzw = -fog_colour_away.xyz + fog_colour_towards.xyz;
r1.xyz = r1.xxx * r1.yzw + fog_colour_away.xyz;
r1.w = fog_min_inv_fog1_fog2.z * r0.w;
o6.w = -r0.w * fog_min_inv_fog1_fog2.z + 1;
o6.xyz = r1.xyz * r1.www;
r3.xyz = worldCameraPos.xyz + -r0.xyz;
o7.xyzw = r3.xyzw;
r1.xyz = lightPosition3.xyz + -r0.xyz;
r0.w = dot(r1.xyz, r1.xyz);
r1.w = lightAttenuation3.x * r0.w;
r1.w = -r1.w * r1.w + 1;
r1.w = max(9.99999982e-015, r1.w);
r1.w = r1.w * r1.w;
r1.w = r1.w * r1.w;
r2.x = saturate(r1.w * r1.w + lightAttenuation3.y);
r2.y = max(9.99999975e-005, r0.w);
r0.w = rsqrt(r0.w);
r2.y = 1 / r2.y;
r2.x = r2.y * r2.x;
r4.xyz = r1.xyz * r0.www;
r2.z = dot(-lightDirection3.xyz, r4.xyz);
r2.z = saturate(r2.z * lightAttenuation3.z + lightAttenuation3.w);
r2.z = r2.z * r2.z;
r2.x = r2.x * r2.z;
r2.z = -1 + lightAttenuation3.y;
r1.w = saturate(r1.w * r1.w + r2.z);
r1.w = r2.y * r1.w;
r2.y = cmp(1 < lightAttenuation3.y);
r1.w = r2.y ? r1.w : r2.x;
r2.xyz = lightPosition2.xyz + -r0.xyz;
r2.w = dot(r2.xyz, r2.xyz);
r3.w = lightAttenuation2.x * r2.w;
r3.w = -r3.w * r3.w + 1;
r3.w = max(9.99999982e-015, r3.w);
r3.w = r3.w * r3.w;
r3.w = r3.w * r3.w;
r4.x = saturate(r3.w * r3.w + lightAttenuation2.y);
r4.y = max(9.99999975e-005, r2.w);
r2.w = rsqrt(r2.w);
r4.y = 1 / r4.y;
r4.x = r4.y * r4.x;
r5.xyz = r2.xyz * r2.www;
r4.z = dot(-lightDirection2.xyz, r5.xyz);
r4.z = saturate(r4.z * lightAttenuation2.z + lightAttenuation2.w);
r4.z = r4.z * r4.z;
r4.x = r4.x * r4.z;
r4.z = -1 + lightAttenuation2.y;
r3.w = saturate(r3.w * r3.w + r4.z);
r3.w = r4.y * r3.w;
r4.y = cmp(1 < lightAttenuation2.y);
r3.w = r4.y ? r3.w : r4.x;
r4.xyz = lightPosition1.xyz + -r0.xyz;
r4.w = dot(r4.xyz, r4.xyz);
r5.x = lightAttenuation1.x * r4.w;
r5.x = -r5.x * r5.x + 1;
r5.x = max(9.99999982e-015, r5.x);
r5.x = r5.x * r5.x;
r5.x = r5.x * r5.x;
r5.y = saturate(r5.x * r5.x + lightAttenuation1.y);
r5.z = max(9.99999975e-005, r4.w);
r4.w = rsqrt(r4.w);
r5.z = 1 / r5.z;
r5.y = r5.z * r5.y;
r6.xyz = r4.xyz * r4.www;
r5.w = dot(-lightDirection1.xyz, r6.xyz);
r5.w = saturate(r5.w * lightAttenuation1.z + lightAttenuation1.w);
r5.w = r5.w * r5.w;
r5.y = r5.y * r5.w;
r5.w = -1 + lightAttenuation1.y;
r5.x = saturate(r5.x * r5.x + r5.w);
r5.x = r5.z * r5.x;
r5.z = cmp(1 < lightAttenuation1.y);
r5.x = r5.z ? r5.x : r5.y;
r5.y = forwarddirlightscaler * additionaldirLightingScaler;
r5.yzw = lightColour0.xyz * r5.yyy;
r6.x = additionalspotLightingScaler * forwardspotlightscaler;
r6.yzw = lightColour1.xyz * r6.xxx;
r7.xyz = r6.yzw * r5.xxx + r5.yzw;
r8.xyz = lightColour2.xyz * r6.xxx;
r7.xyz = r8.xyz * r3.www + r7.xyz;
r9.xyz = lightColour3.xyz * r6.xxx;
r7.xyz = r9.xyz * r1.www + r7.xyz;
r10.xyz = lightPosition4.xyz + -r0.xyz;
r7.w = dot(r10.xyz, r10.xyz);
r8.w = lightAttenuation4.x * r7.w;
r8.w = -r8.w * r8.w + 1;
r8.w = max(9.99999982e-015, r8.w);
r8.w = r8.w * r8.w;
r8.w = r8.w * r8.w;
r9.w = saturate(r8.w * r8.w + lightAttenuation4.y);
r10.w = max(9.99999975e-005, r7.w);
r7.w = rsqrt(r7.w);
r10.w = 1 / r10.w;
r9.w = r10.w * r9.w;
r11.xyz = r10.xyz * r7.www;
r11.x = dot(-lightDirection4.xyz, r11.xyz);
r11.x = saturate(r11.x * lightAttenuation4.z + lightAttenuation4.w);
r11.x = r11.x * r11.x;
r9.w = r11.x * r9.w;
r11.x = -1 + lightAttenuation4.y;
r8.w = saturate(r8.w * r8.w + r11.x);
r8.w = r10.w * r8.w;
r10.w = cmp(1 < lightAttenuation4.y);
r8.w = r10.w ? r8.w : r9.w;
r11.xyz = lightColour4.xyz * r6.xxx;
r7.xyz = r11.xyz * r8.www + r7.xyz;
r12.xyz = lightPosition5.xyz + -r0.xyz;
r9.w = dot(r12.xyz, r12.xyz);
r10.w = lightAttenuation5.x * r9.w;
r10.w = -r10.w * r10.w + 1;
r10.w = max(9.99999982e-015, r10.w);
r10.w = r10.w * r10.w;
r10.w = r10.w * r10.w;
r11.w = saturate(r10.w * r10.w + lightAttenuation5.y);
r12.w = max(9.99999975e-005, r9.w);
r9.w = rsqrt(r9.w);
r12.w = 1 / r12.w;
r11.w = r12.w * r11.w;
r13.xyz = r12.xyz * r9.www;
r13.x = dot(-lightDirection5.xyz, r13.xyz);
r13.x = saturate(r13.x * lightAttenuation5.z + lightAttenuation5.w);
r13.x = r13.x * r13.x;
r11.w = r13.x * r11.w;
r13.x = -1 + lightAttenuation5.y;
r10.w = saturate(r10.w * r10.w + r13.x);
r10.w = r12.w * r10.w;
r12.w = cmp(1 < lightAttenuation5.y);
r10.w = r12.w ? r10.w : r11.w;
r13.xyz = lightColour5.xyz * r6.xxx;
r7.xyz = r13.xyz * r10.www + r7.xyz;
r14.xyz = lightPosition6.xyz + -r0.xyz;
r11.w = dot(r14.xyz, r14.xyz);
r12.w = lightAttenuation6.x * r11.w;
r12.w = -r12.w * r12.w + 1;
r12.w = max(9.99999982e-015, r12.w);
r12.w = r12.w * r12.w;
r12.w = r12.w * r12.w;
r13.w = saturate(r12.w * r12.w + lightAttenuation6.y);
r14.w = max(9.99999975e-005, r11.w);
r11.w = rsqrt(r11.w);
r14.w = 1 / r14.w;
r13.w = r14.w * r13.w;
r15.xyz = r14.xyz * r11.www;
r15.x = dot(-lightDirection6.xyz, r15.xyz);
r15.x = saturate(r15.x * lightAttenuation6.z + lightAttenuation6.w);
r15.x = r15.x * r15.x;
r13.w = r15.x * r13.w;
r15.x = -1 + lightAttenuation6.y;
r12.w = saturate(r12.w * r12.w + r15.x);
r12.w = r14.w * r12.w;
r14.w = cmp(1 < lightAttenuation6.y);
r12.w = r14.w ? r12.w : r13.w;
r15.xyz = lightColour6.xyz * r6.xxx;
r7.xyz = r15.xyz * r12.www + r7.xyz;
r16.xyz = lightPosition7.xyz + -r0.xyz;
r0.xyz = lightPosition8.xyz + -r0.xyz;
r13.w = dot(r16.xyz, r16.xyz);
r14.w = rsqrt(r13.w);
r17.xyz = r16.xyz * r14.www;
r15.w = dot(-lightDirection7.xyz, r17.xyz);
r15.w = saturate(r15.w * lightAttenuation7.z + lightAttenuation7.w);
r15.w = r15.w * r15.w;
r16.w = lightAttenuation7.x * r13.w;
r13.w = max(9.99999975e-005, r13.w);
r13.w = 1 / r13.w;
r16.w = -r16.w * r16.w + 1;
r16.w = max(9.99999982e-015, r16.w);
r16.w = r16.w * r16.w;
r16.w = r16.w * r16.w;
r17.x = saturate(r16.w * r16.w + lightAttenuation7.y);
r17.x = r17.x * r13.w;
r15.w = r17.x * r15.w;
r17.x = -1 + lightAttenuation7.y;
r16.w = saturate(r16.w * r16.w + r17.x);
r13.w = r16.w * r13.w;
r16.w = cmp(1 < lightAttenuation7.y);
r13.w = r16.w ? r13.w : r15.w;
r17.xyz = lightColour7.xyz * r6.xxx;
r18.xyz = lightColour8.xyz * r6.xxx;
r7.xyz = r17.xyz * r13.www + r7.xyz;
r6.x = dot(r0.xyz, r0.xyz);
r15.w = rsqrt(r6.x);
r19.xyz = r15.www * r0.xyz;
r16.w = dot(-lightDirection8.xyz, r19.xyz);
r16.w = saturate(r16.w * lightAttenuation8.z + lightAttenuation8.w);
r16.w = r16.w * r16.w;
r17.w = lightAttenuation8.x * r6.x;
r6.x = max(9.99999975e-005, r6.x);
r6.x = 1 / r6.x;
r17.w = -r17.w * r17.w + 1;
r17.w = max(9.99999982e-015, r17.w);
r17.w = r17.w * r17.w;
r17.w = r17.w * r17.w;
r18.w = saturate(r17.w * r17.w + lightAttenuation8.y);
r18.w = r18.w * r6.x;
r16.w = r18.w * r16.w;
r18.w = -1 + lightAttenuation8.y;
r17.w = saturate(r17.w * r17.w + r18.w);
r6.x = r17.w * r6.x;
r17.w = cmp(1 < lightAttenuation8.y);
r6.x = r17.w ? r6.x : r16.w;
o8.xyz = r18.xyz * r6.xxx + r7.xyz;
r7.x = cmp(0 < r5.x);
r7.y = dot(r3.xyz, r3.xyz);
r7.y = rsqrt(r7.y);
r19.xyz = r7.yyy * r3.xyz;
r3.xyz = r3.xyz * r7.yyy + lightDirection0.xyz;
r4.xyz = r4.xyz * r4.www + r19.xyz;
r4.w = dot(r4.xyz, r4.xyz);
r4.w = rsqrt(r4.w);
r4.xyz = r4.xyz * r4.www;
r4.x = saturate(dot(r19.xyz, r4.xyz));
r4.x = max(9.99999982e-015, r4.x);
r4.x = maxSpecularCoef * r4.x;
r4.x = 0.409255564 * r4.x;
r4.xyz = r4.xxx * r6.yzw;
r4.w = dot(r3.xyz, r3.xyz);
r4.w = rsqrt(r4.w);
r3.xyz = r4.www * r3.xyz;
r3.x = saturate(dot(-r19.xyz, r3.xyz));
r3.x = max(9.99999982e-015, r3.x);
r3.x = maxSpecularCoef * r3.x;
r3.x = 0.409255564 * r3.x;
r3.xyz = r3.xxx * r5.yzw;
r4.xyz = r4.xyz * r5.xxx + r3.xyz;
r3.xyz = r7.xxx ? r4.xyz : r3.xyz;
r2.xyz = r2.xyz * r2.www + r19.xyz;
r2.w = dot(r2.xyz, r2.xyz);
r2.w = rsqrt(r2.w);
r2.xyz = r2.xyz * r2.www;
r2.x = saturate(dot(r19.xyz, r2.xyz));
r2.x = max(9.99999982e-015, r2.x);
r2.x = maxSpecularCoef * r2.x;
r2.x = 0.409255564 * r2.x;
r2.xyz = r2.xxx * r8.xyz;
r2.xyz = r2.xyz * r3.www + r3.xyz;
r2.w = cmp(0 < r3.w);
r2.xyz = r2.www ? r2.xyz : r3.xyz;
r1.xyz = r1.xyz * r0.www + r19.xyz;
r0.w = dot(r1.xyz, r1.xyz);
r0.w = rsqrt(r0.w);
r1.xyz = r1.xyz * r0.www;
r0.w = saturate(dot(r19.xyz, r1.xyz));
r0.w = max(9.99999982e-015, r0.w);
r0.w = maxSpecularCoef * r0.w;
r0.w = 0.409255564 * r0.w;
r1.xyz = r0.www * r9.xyz;
r1.xyz = r1.xyz * r1.www + r2.xyz;
r0.w = cmp(0 < r1.w);
r1.xyz = r0.www ? r1.xyz : r2.xyz;
r2.xyz = r10.xyz * r7.www + r19.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = rsqrt(r0.w);
r2.xyz = r2.xyz * r0.www;
r0.w = saturate(dot(r19.xyz, r2.xyz));
r0.w = max(9.99999982e-015, r0.w);
r0.w = maxSpecularCoef * r0.w;
r0.w = 0.409255564 * r0.w;
r2.xyz = r0.www * r11.xyz;
r2.xyz = r2.xyz * r8.www + r1.xyz;
r0.w = cmp(0 < r8.w);
r1.xyz = r0.www ? r2.xyz : r1.xyz;
r2.xyz = r12.xyz * r9.www + r19.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = rsqrt(r0.w);
r2.xyz = r2.xyz * r0.www;
r0.w = saturate(dot(r19.xyz, r2.xyz));
r0.w = max(9.99999982e-015, r0.w);
r0.w = maxSpecularCoef * r0.w;
r0.w = 0.409255564 * r0.w;
r2.xyz = r0.www * r13.xyz;
r2.xyz = r2.xyz * r10.www + r1.xyz;
r0.w = cmp(0 < r10.w);
r1.xyz = r0.www ? r2.xyz : r1.xyz;
r2.xyz = r14.xyz * r11.www + r19.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = rsqrt(r0.w);
r2.xyz = r2.xyz * r0.www;
r0.w = saturate(dot(r19.xyz, r2.xyz));
r0.w = max(9.99999982e-015, r0.w);
r0.w = maxSpecularCoef * r0.w;
r0.w = 0.409255564 * r0.w;
r2.xyz = r0.www * r15.xyz;
r2.xyz = r2.xyz * r12.www + r1.xyz;
r0.w = cmp(0 < r12.w);
r1.xyz = r0.www ? r2.xyz : r1.xyz;
r2.xyz = r16.xyz * r14.www + r19.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = rsqrt(r0.w);
r2.xyz = r2.xyz * r0.www;
r0.w = saturate(dot(r19.xyz, r2.xyz));
r0.w = max(9.99999982e-015, r0.w);
r0.w = maxSpecularCoef * r0.w;
r0.w = 0.409255564 * r0.w;
r2.xyz = r0.www * r17.xyz;
r2.xyz = r2.xyz * r13.www + r1.xyz;
r0.w = cmp(0 < r13.w);
r1.xyz = r0.www ? r2.xyz : r1.xyz;
r0.xyz = r0.xyz * r15.www + r19.xyz;
r0.w = dot(r0.xyz, r0.xyz);
r0.w = rsqrt(r0.w);
r0.xyz = r0.xyz * r0.www;
r0.x = saturate(dot(r19.xyz, r0.xyz));
r0.x = max(9.99999982e-015, r0.x);
r0.x = maxSpecularCoef * r0.x;
r0.x = 0.409255564 * r0.x;
r0.xyz = r0.xxx * r18.xyz;
r0.xyz = r0.xyz * r6.xxx + r1.xyz;
r0.w = cmp(0 < r6.x);
o9.xyz = r0.www ? r0.xyz : r1.xyz;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384
//
// using 3Dmigoto v1.3.10 on Thu May 03 19:49:08 2018
//
//
// Buffer Definitions:
//
// cbuffer COMMON_BUFFER1
// {
//
// row_major float4x4 worldViewProj; // Offset: 0 Size: 64 [unused]
// float4 encryptionKey; // Offset: 64 Size: 16 [unused]
// row_major float4x4 world; // Offset: 80 Size: 64 [unused]
// row_major float4x4 worldView; // Offset: 144 Size: 64
// row_major float4x4 worldI; // Offset: 208 Size: 64 [unused]
//
// }
//
// cbuffer COMMON_BUFFER2
// {
//
// row_major float4x4 view; // Offset: 0 Size: 64
// row_major float4x4 viewI; // Offset: 64 Size: 64
// row_major float4x4 projMatrix; // Offset: 128 Size: 64
// row_major float4x4 viewProj; // Offset: 192 Size: 64 [unused]
// row_major float4x4 viewProjI; // Offset: 256 Size: 64 [unused]
// row_major float4x4 globalMatrix0; // Offset: 320 Size: 64 [unused]
// float4 screenSpaceDimensions; // Offset: 384 Size: 16 [unused]
// float4 frustumDimensions; // Offset: 400 Size: 16 [unused]
// float4 depthTranslation; // Offset: 416 Size: 16 [unused]
// float4 cLightingTransitionValues; // Offset: 432 Size: 16 [unused]
// float4 treeAmbientBoost; // Offset: 448 Size: 16 [unused]
// float4 viewportPixelDimensions; // Offset: 464 Size: 16 [unused]
// float4 globalVector4; // Offset: 480 Size: 16 [unused]
// float4 globalVector6; // Offset: 496 Size: 16 [unused]
// float4 globalVector7; // Offset: 512 Size: 16 [unused]
// float4 globalVector8; // Offset: 528 Size: 16 [unused]
// float4 fog_colour_towards; // Offset: 544 Size: 16
// float4 fog_colour_away; // Offset: 560 Size: 16
// float4 fogLightDir; // Offset: 576 Size: 16
// float4 keyLightDir; // Offset: 592 Size: 16 [unused]
// float4 fog_min_inv_fog1_fog2; // Offset: 608 Size: 16
// float4 keyLightColour; // Offset: 624 Size: 16 [unused]
// float4 msaaMode; // Offset: 640 Size: 16 [unused]
// float4 heightFogVector0; // Offset: 656 Size: 16 [unused]
// float4 heightFogVector1; // Offset: 672 Size: 16 [unused]
// float4 bonnetReflectionAndClamp; // Offset: 688 Size: 16 [unused]
// float4 miscPhase2Flags; // Offset: 704 Size: 16 [unused]
// float3 keyLightDirVS; // Offset: 720 Size: 12 [unused]
// float3 worldCameraPos; // Offset: 736 Size: 12
// float emissiveTextureControl; // Offset: 748 Size: 4 [unused]
//
// }
//
// cbuffer COMMON_BUFFER4
// {
//
// float3 lightPosition0; // Offset: 0 Size: 12 [unused]
// float3 lightDirection0; // Offset: 16 Size: 12
// float4 lightColour0; // Offset: 32 Size: 16
// float4 lightAttenuation0; // Offset: 48 Size: 16 [unused]
// row_major float4x4 cShadowMatrices0[4];// Offset: 64 Size: 256 [unused]
// float4 cShadowMapDim0; // Offset: 320 Size: 16 [unused]
// float4 cShadowTransitions0; // Offset: 336 Size: 16 [unused]
// float4 cShadowParamsA0; // Offset: 352 Size: 16 [unused]
// row_major float4x4 cShadowViewMatrix0;// Offset: 368 Size: 64 [unused]
// float3 lightPosition1; // Offset: 432 Size: 12
// float3 lightDirection1; // Offset: 448 Size: 12
// float4 lightColour1; // Offset: 464 Size: 16
// float4 lightAttenuation1; // Offset: 480 Size: 16
// row_major float4x4 cShadowMatrices1[4];// Offset: 496 Size: 256 [unused]
// float4 cShadowMapDim1; // Offset: 752 Size: 16 [unused]
// float4 cShadowTransitions1; // Offset: 768 Size: 16 [unused]
// float4 cShadowParamsA1; // Offset: 784 Size: 16 [unused]
// row_major float4x4 cShadowViewMatrix1;// Offset: 800 Size: 64 [unused]
// float3 lightPosition2; // Offset: 864 Size: 12
// float3 lightDirection2; // Offset: 880 Size: 12
// float4 lightColour2; // Offset: 896 Size: 16
// float4 lightAttenuation2; // Offset: 912 Size: 16
// row_major float4x4 cShadowMatrices2[4];// Offset: 928 Size: 256 [unused]
// float4 cShadowMapDim2; // Offset: 1184 Size: 16 [unused]
// float4 cShadowTransitions2; // Offset: 1200 Size: 16 [unused]
// float4 cShadowParamsA2; // Offset: 1216 Size: 16 [unused]
// row_major float4x4 cShadowViewMatrix2;// Offset: 1232 Size: 64 [unused]
// float3 lightPosition3; // Offset: 1296 Size: 12
// float3 lightDirection3; // Offset: 1312 Size: 12
// float4 lightColour3; // Offset: 1328 Size: 16
// float4 lightAttenuation3; // Offset: 1344 Size: 16
// row_major float4x4 cShadowMatrices3[4];// Offset: 1360 Size: 256 [unused]
// float4 cShadowMapDim3; // Offset: 1616 Size: 16 [unused]
// float4 cShadowTransitions3; // Offset: 1632 Size: 16 [unused]
// float4 cShadowParamsA3; // Offset: 1648 Size: 16 [unused]
// row_major float4x4 cShadowViewMatrix3;// Offset: 1664 Size: 64 [unused]
// float3 lightPosition4; // Offset: 1728 Size: 12
// float3 lightDirection4; // Offset: 1744 Size: 12
// float4 lightColour4; // Offset: 1760 Size: 16
// float4 lightAttenuation4; // Offset: 1776 Size: 16
// row_major float4x4 cShadowMatrices4[4];// Offset: 1792 Size: 256 [unused]
// float4 cShadowMapDim4; // Offset: 2048 Size: 16 [unused]
// float4 cShadowTransitions4; // Offset: 2064 Size: 16 [unused]
// float4 cShadowParamsA4; // Offset: 2080 Size: 16 [unused]
// row_major float4x4 cShadowViewMatrix4;// Offset: 2096 Size: 64 [unused]
// float3 lightPosition5; // Offset: 2160 Size: 12
// float3 lightDirection5; // Offset: 2176 Size: 12
// float4 lightColour5; // Offset: 2192 Size: 16
// float4 lightAttenuation5; // Offset: 2208 Size: 16
// row_major float4x4 cShadowMatrices5[4];// Offset: 2224 Size: 256 [unused]
// float4 cShadowMapDim5; // Offset: 2480 Size: 16 [unused]
// float4 cShadowTransitions5; // Offset: 2496 Size: 16 [unused]
// float4 cShadowParamsA5; // Offset: 2512 Size: 16 [unused]
// row_major float4x4 cShadowViewMatrix5;// Offset: 2528 Size: 64 [unused]
// float3 lightPosition6; // Offset: 2592 Size: 12
// float3 lightDirection6; // Offset: 2608 Size: 12
// float4 lightColour6; // Offset: 2624 Size: 16
// float4 lightAttenuation6; // Offset: 2640 Size: 16
// row_major float4x4 cShadowMatrices6[4];// Offset: 2656 Size: 256 [unused]
// float4 cShadowMapDim6; // Offset: 2912 Size: 16 [unused]
// float4 cShadowTransitions6; // Offset: 2928 Size: 16 [unused]
// float4 cShadowParamsA6; // Offset: 2944 Size: 16 [unused]
// row_major float4x4 cShadowViewMatrix6;// Offset: 2960 Size: 64 [unused]
// float3 lightPosition7; // Offset: 3024 Size: 12
// float3 lightDirection7; // Offset: 3040 Size: 12
// float4 lightColour7; // Offset: 3056 Size: 16
// float4 lightAttenuation7; // Offset: 3072 Size: 16
// row_major float4x4 cShadowMatrices7[4];// Offset: 3088 Size: 256 [unused]
// float4 cShadowMapDim7; // Offset: 3344 Size: 16 [unused]
// float4 cShadowTransitions7; // Offset: 3360 Size: 16 [unused]
// float4 cShadowParamsA7; // Offset: 3376 Size: 16 [unused]
// row_major float4x4 cShadowViewMatrix7;// Offset: 3392 Size: 64 [unused]
// float3 lightPosition8; // Offset: 3456 Size: 12
// float3 lightDirection8; // Offset: 3472 Size: 12
// float4 lightColour8; // Offset: 3488 Size: 16
// float4 lightAttenuation8; // Offset: 3504 Size: 16
// row_major float4x4 cShadowMatrices8[4];// Offset: 3520 Size: 256 [unused]
// float4 cShadowMapDim8; // Offset: 3776 Size: 16 [unused]
// float4 cShadowTransitions8; // Offset: 3792 Size: 16 [unused]
// float4 cShadowParamsA8; // Offset: 3808 Size: 16 [unused]
// row_major float4x4 cShadowViewMatrix8;// Offset: 3824 Size: 64 [unused]
// float4 upColour; // Offset: 3888 Size: 16 [unused]
// float4 downColour; // Offset: 3904 Size: 16 [unused]
//
// }
//
// cbuffer _GLOBAL_
// {
//
// float forwarddirlightscaler; // Offset: 0 Size: 4
// = 0x3f800000
// float forwardspotlightscaler; // Offset: 4 Size: 4
// = 0x3f800000
// float forwardambientlightingscaler;// Offset: 8 Size: 4 [unused]
// = 0x3f800000
// float additionaldirLightingScaler; // Offset: 12 Size: 4
// = 0x3f800000
// float additionalspotLightingScaler;// Offset: 16 Size: 4
// = 0x3f800000
// float particleAlphaThreshold; // Offset: 20 Size: 4
// = 0x3d4ccccd
// float startCamFadeDistToVertex; // Offset: 24 Size: 4
// = 0x00000000
// float endCamFadeDistToVertex; // Offset: 28 Size: 4
// = 0x00000000
// float maxSpecularCoef; // Offset: 32 Size: 4
// = 0x00000000
// float4 nearFarClip; // Offset: 48 Size: 16
// row_major float4x4 fadePointTransform;// Offset: 64 Size: 64 [unused]
// float4 fadePointInnerBoundsXYZ; // Offset: 128 Size: 16 [unused]
// float4 fadePointRecipBoundsDiffXYZ;// Offset: 144 Size: 16 [unused]
// float4 c_texAnimMatrixScaleTrans; // Offset: 160 Size: 16
// float2 c_numAnimFrames; // Offset: 176 Size: 8
// float c_totalAnimFrames; // Offset: 184 Size: 4
// float2 c_recipNumAnimFrames; // Offset: 192 Size: 8
// row_major float4x4 c_uvArray; // Offset: 208 Size: 64
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// _GLOBAL_ cbuffer NA NA 0 1
// COMMON_BUFFER4 cbuffer NA NA 10 1
// COMMON_BUFFER2 cbuffer NA NA 12 1
// COMMON_BUFFER1 cbuffer NA NA 13 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyzw
// NORMAL 0 xy 1 NONE float xy
// TEXCOORD 0 xy 2 NONE float xy
// COLOR 0 xyzw 3 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// NORMAL 0 xyz 1 NONE float xyz
// TEXCOORD 0 xyzw 2 NONE float xyzw
// TEXCOORD 1 xy 3 NONE float xy
// TEXCOORD 2 xyz 4 NONE float xyz
// TEXCOORD 3 xyzw 5 NONE float xyzw
// TEXCOORD 4 xyzw 6 NONE float xyzw
// TEXCOORD 5 xyzw 7 NONE float xyzw
// TEXCOORD 6 xyz 8 NONE float xyz
// TEXCOORD 8 xyz 9 NONE float xyz
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb13[13], immediateIndexed
dcl_constantbuffer cb12[47], immediateIndexed
dcl_constantbuffer cb10[220], immediateIndexed
dcl_constantbuffer cb0[17], dynamicIndexed
dcl_input v0.xyzw
dcl_input v1.xy
dcl_input v2.xy
dcl_input v3.xyzw
dcl_output_siv o0.xyzw, position
dcl_output o1.xyz
dcl_output o2.xyzw
dcl_output o3.xy
dcl_output o4.xyz
dcl_output o5.xyzw
dcl_output o6.xyzw
dcl_output o7.xyzw
dcl_output o8.xyz
dcl_output o9.xyz
dcl_temps 20
sincos r0.x, r1.x, v2.x
mov r2.z, r0.x
mov r2.y, r1.x
mov r2.x, -r0.x
dp2 r0.y, v1.xyxx, r2.xyxx
dp2 r0.x, v1.xyxx, r2.yzyy
mul r1.xyzw, v0.yyyy, cb13[10].xyzw
mad r1.xyzw, v0.xxxx, cb13[9].xyzw, r1.xyzw
mad r1.xyzw, v0.zzzz, cb13[11].xyzw, r1.xyzw
add r1.xyzw, r1.xyzw, cb13[12].xyzw
add r0.xy, r0.xyxx, r1.xyxx
mul r2.xyzw, r0.yyyy, cb12[9].xyzw
mad r2.xyzw, r0.xxxx, cb12[8].xyzw, r2.xyzw
mad r2.xyzw, r1.zzzz, cb12[10].xyzw, r2.xyzw
mad r2.xyzw, r1.wwww, cb12[11].xyzw, r2.xyzw
add r0.z, |r1.z|, -cb0[1].w
add r0.w, -cb0[1].w, cb0[1].z
div_sat r0.z, r0.z, r0.w
mul r0.z, r0.z, v3.w
lt r0.w, r0.z, cb0[1].y
mov o5.w, r0.z
movc o0.w, r0.w, l(-1.000000), r2.w
mov o0.xyz, r2.xyzx
dp3 r0.z, -cb12[6].xyzx, -cb12[6].xyzx
rsq r0.z, r0.z
mul o1.xyz, r0.zzzz, -cb12[6].xyzx
mad r0.z, v2.y, cb0[11].z, l(1.000000)
lt r0.w, cb0[11].z, r0.z
add r1.x, r0.z, -cb0[11].z
movc r0.z, r0.w, r1.x, r0.z
div r0.w, r0.z, cb0[11].x
ge r1.x, r0.w, -r0.w
frc r0.w, |r0.w|
movc r0.w, r1.x, r0.w, -r0.w
mad r0.z, -r0.w, cb0[11].x, r0.z
mul r0.w, r0.w, cb0[11].x
round_ni r0.w, r0.w
mad r3.y, r0.w, cb0[12].x, cb0[10].z
mul r0.z, r0.z, cb0[12].x
mad r3.w, r0.z, cb0[12].y, cb0[10].w
mov r3.xz, cb0[10].xxyx
ftoi r0.z, v0.w
mov r4.xz, cb0[r0.z + 13].xxyx
mov r4.yw, l(0,1.000000,0,1.000000)
dp2 o2.w, r4.zwzz, r3.zwzz
dp2 o2.z, r4.xyxx, r3.xyxx
mul r0.z, v2.y, cb0[11].z
div r0.w, r0.z, cb0[11].x
frc o3.x, r0.z
ge r0.z, r0.w, -r0.w
frc r0.w, |r0.w|
movc r0.z, r0.z, r0.w, -r0.w
mul r0.z, r0.z, cb0[11].x
mad r0.w, v2.y, cb0[11].z, -r0.z
round_ni r0.z, r0.z
mad r3.y, r0.z, cb0[12].x, cb0[10].z
mul r0.z, r0.w, cb0[12].x
mad r3.w, r0.z, cb0[12].y, cb0[10].w
mov r3.xz, cb0[10].xxyx
dp2 o2.y, r4.zwzz, r3.zwzz
dp2 o2.x, r4.xyxx, r3.xyxx
dp2 r0.z, v1.xyxx, v1.xyxx
sqrt r3.w, r0.z
div o3.y, r3.w, cb0[3].y
div r0.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w
mul r0.w, r0.z, r2.x
mul r0.z, r0.z, -r2.y
mad o4.y, r0.z, l(0.500000), l(0.500000)
mad o4.x, r0.w, l(0.500000), l(0.500000)
mul r2.xyzw, r0.yyyy, cb12[5].xyzw
mad r0.xyzw, r0.xxxx, cb12[4].xyzw, r2.xyzw
mad r0.xyzw, r1.zzzz, cb12[6].xyzw, r0.xyzw
mad r0.xyzw, r1.wwww, cb12[7].xyzw, r0.xyzw
mul r1.x, r0.y, cb12[1].z
mad r1.x, r0.x, cb12[0].z, r1.x
mad r1.x, r0.z, cb12[2].z, r1.x
mad r0.w, r0.w, cb12[3].z, r1.x
div o4.z, r0.w, cb0[3].y
mov o5.xyz, v3.xyzx
dp2 r0.w, cb12[36].xzxx, cb12[36].xzxx
rsq r0.w, r0.w
mul r1.xy, r0.wwww, cb12[36].xzxx
add r2.xyz, r0.xyzx, -cb12[46].xyzx
dp3 r0.w, r2.xyzx, r2.xyzx
sqrt r0.w, r0.w
div r1.zw, r2.xxxz, r0.wwww
add r0.w, r0.w, -cb12[38].x
mul_sat r0.w, r0.w, cb12[38].y
log r0.w, r0.w
mul r0.w, r0.w, cb12[38].w
exp r0.w, r0.w
dp2 r2.x, r1.zwzz, r1.zwzz
rsq r2.x, r2.x
mul r1.zw, r1.zzzw, r2.xxxx
dp2 r1.x, r1.zwzz, r1.xyxx
add r1.x, r1.x, l(1.000000)
mul_sat r1.x, r1.x, l(0.500000)
add r1.yzw, cb12[34].xxyz, -cb12[35].xxyz
mad r1.xyz, r1.xxxx, r1.yzwy, cb12[35].xyzx
mul r1.w, r0.w, cb12[38].z
mad o6.w, -r0.w, cb12[38].z, l(1.000000)
mul o6.xyz, r1.wwww, r1.xyzx
add r3.xyz, -r0.xyzx, cb12[46].xyzx
mov o7.xyzw, r3.xyzw
add r1.xyz, -r0.xyzx, cb10[81].xyzx
dp3 r0.w, r1.xyzx, r1.xyzx
mul r1.w, r0.w, cb10[84].x
mad r1.w, -r1.w, r1.w, l(1.000000)
max r1.w, r1.w, l(9.999999825E-015)
mul r1.w, r1.w, r1.w
mul r1.w, r1.w, r1.w
mad_sat r2.x, r1.w, r1.w, cb10[84].y
max r2.y, r0.w, l(0.000100)
rsq r0.w, r0.w
div r2.y, l(1.000000, 1.000000, 1.000000, 1.000000), r2.y
mul r2.x, r2.x, r2.y
mul r4.xyz, r0.wwww, r1.xyzx
dp3 r2.z, -cb10[82].xyzx, r4.xyzx
mad_sat r2.z, r2.z, cb10[84].z, cb10[84].w
mul r2.z, r2.z, r2.z
mul r2.x, r2.z, r2.x
add r2.z, cb10[84].y, l(-1.000000)
mad_sat r1.w, r1.w, r1.w, r2.z
mul r1.w, r1.w, r2.y
lt r2.y, l(1.000000), cb10[84].y
movc r1.w, r2.y, r1.w, r2.x
add r2.xyz, -r0.xyzx, cb10[54].xyzx
dp3 r2.w, r2.xyzx, r2.xyzx
mul r3.w, r2.w, cb10[57].x
mad r3.w, -r3.w, r3.w, l(1.000000)
max r3.w, r3.w, l(9.999999825E-015)
mul r3.w, r3.w, r3.w
mul r3.w, r3.w, r3.w
mad_sat r4.x, r3.w, r3.w, cb10[57].y
max r4.y, r2.w, l(0.000100)
rsq r2.w, r2.w
div r4.y, l(1.000000, 1.000000, 1.000000, 1.000000), r4.y
mul r4.x, r4.x, r4.y
mul r5.xyz, r2.wwww, r2.xyzx
dp3 r4.z, -cb10[55].xyzx, r5.xyzx
mad_sat r4.z, r4.z, cb10[57].z, cb10[57].w
mul r4.z, r4.z, r4.z
mul r4.x, r4.z, r4.x
add r4.z, cb10[57].y, l(-1.000000)
mad_sat r3.w, r3.w, r3.w, r4.z
mul r3.w, r3.w, r4.y
lt r4.y, l(1.000000), cb10[57].y
movc r3.w, r4.y, r3.w, r4.x
add r4.xyz, -r0.xyzx, cb10[27].xyzx
dp3 r4.w, r4.xyzx, r4.xyzx
mul r5.x, r4.w, cb10[30].x
mad r5.x, -r5.x, r5.x, l(1.000000)
max r5.x, r5.x, l(9.999999825E-015)
mul r5.x, r5.x, r5.x
mul r5.x, r5.x, r5.x
mad_sat r5.y, r5.x, r5.x, cb10[30].y
max r5.z, r4.w, l(0.000100)
rsq r4.w, r4.w
div r5.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z
mul r5.y, r5.y, r5.z
mul r6.xyz, r4.wwww, r4.xyzx
dp3 r5.w, -cb10[28].xyzx, r6.xyzx
mad_sat r5.w, r5.w, cb10[30].z, cb10[30].w
mul r5.w, r5.w, r5.w
mul r5.y, r5.w, r5.y
add r5.w, cb10[30].y, l(-1.000000)
mad_sat r5.x, r5.x, r5.x, r5.w
mul r5.x, r5.x, r5.z
lt r5.z, l(1.000000), cb10[30].y
movc r5.x, r5.z, r5.x, r5.y
mul r5.y, cb0[0].w, cb0[0].x
mul r5.yzw, r5.yyyy, cb10[2].xxyz
mul r6.x, cb0[0].y, cb0[1].x
mul r6.yzw, r6.xxxx, cb10[29].xxyz
mad r7.xyz, r6.yzwy, r5.xxxx, r5.yzwy
mul r8.xyz, r6.xxxx, cb10[56].xyzx
mad r7.xyz, r8.xyzx, r3.wwww, r7.xyzx
mul r9.xyz, r6.xxxx, cb10[83].xyzx
mad r7.xyz, r9.xyzx, r1.wwww, r7.xyzx
add r10.xyz, -r0.xyzx, cb10[108].xyzx
dp3 r7.w, r10.xyzx, r10.xyzx
mul r8.w, r7.w, cb10[111].x
mad r8.w, -r8.w, r8.w, l(1.000000)
max r8.w, r8.w, l(9.999999825E-015)
mul r8.w, r8.w, r8.w
mul r8.w, r8.w, r8.w
mad_sat r9.w, r8.w, r8.w, cb10[111].y
max r10.w, r7.w, l(0.000100)
rsq r7.w, r7.w
div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r10.w
mul r9.w, r9.w, r10.w
mul r11.xyz, r7.wwww, r10.xyzx
dp3 r11.x, -cb10[109].xyzx, r11.xyzx
mad_sat r11.x, r11.x, cb10[111].z, cb10[111].w
mul r11.x, r11.x, r11.x
mul r9.w, r9.w, r11.x
add r11.x, cb10[111].y, l(-1.000000)
mad_sat r8.w, r8.w, r8.w, r11.x
mul r8.w, r8.w, r10.w
lt r10.w, l(1.000000), cb10[111].y
movc r8.w, r10.w, r8.w, r9.w
mul r11.xyz, r6.xxxx, cb10[110].xyzx
mad r7.xyz, r11.xyzx, r8.wwww, r7.xyzx
add r12.xyz, -r0.xyzx, cb10[135].xyzx
dp3 r9.w, r12.xyzx, r12.xyzx
mul r10.w, r9.w, cb10[138].x
mad r10.w, -r10.w, r10.w, l(1.000000)
max r10.w, r10.w, l(9.999999825E-015)
mul r10.w, r10.w, r10.w
mul r10.w, r10.w, r10.w
mad_sat r11.w, r10.w, r10.w, cb10[138].y
max r12.w, r9.w, l(0.000100)
rsq r9.w, r9.w
div r12.w, l(1.000000, 1.000000, 1.000000, 1.000000), r12.w
mul r11.w, r11.w, r12.w
mul r13.xyz, r9.wwww, r12.xyzx
dp3 r13.x, -cb10[136].xyzx, r13.xyzx
mad_sat r13.x, r13.x, cb10[138].z, cb10[138].w
mul r13.x, r13.x, r13.x
mul r11.w, r11.w, r13.x
add r13.x, cb10[138].y, l(-1.000000)
mad_sat r10.w, r10.w, r10.w, r13.x
mul r10.w, r10.w, r12.w
lt r12.w, l(1.000000), cb10[138].y
movc r10.w, r12.w, r10.w, r11.w
mul r13.xyz, r6.xxxx, cb10[137].xyzx
mad r7.xyz, r13.xyzx, r10.wwww, r7.xyzx
add r14.xyz, -r0.xyzx, cb10[162].xyzx
dp3 r11.w, r14.xyzx, r14.xyzx
mul r12.w, r11.w, cb10[165].x
mad r12.w, -r12.w, r12.w, l(1.000000)
max r12.w, r12.w, l(9.999999825E-015)
mul r12.w, r12.w, r12.w
mul r12.w, r12.w, r12.w
mad_sat r13.w, r12.w, r12.w, cb10[165].y
max r14.w, r11.w, l(0.000100)
rsq r11.w, r11.w
div r14.w, l(1.000000, 1.000000, 1.000000, 1.000000), r14.w
mul r13.w, r13.w, r14.w
mul r15.xyz, r11.wwww, r14.xyzx
dp3 r15.x, -cb10[163].xyzx, r15.xyzx
mad_sat r15.x, r15.x, cb10[165].z, cb10[165].w
mul r15.x, r15.x, r15.x
mul r13.w, r13.w, r15.x
add r15.x, cb10[165].y, l(-1.000000)
mad_sat r12.w, r12.w, r12.w, r15.x
mul r12.w, r12.w, r14.w
lt r14.w, l(1.000000), cb10[165].y
movc r12.w, r14.w, r12.w, r13.w
mul r15.xyz, r6.xxxx, cb10[164].xyzx
mad r7.xyz, r15.xyzx, r12.wwww, r7.xyzx
add r16.xyz, -r0.xyzx, cb10[189].xyzx
add r0.xyz, -r0.xyzx, cb10[216].xyzx
dp3 r13.w, r16.xyzx, r16.xyzx
rsq r14.w, r13.w
mul r17.xyz, r14.wwww, r16.xyzx
dp3 r15.w, -cb10[190].xyzx, r17.xyzx
mad_sat r15.w, r15.w, cb10[192].z, cb10[192].w
mul r15.w, r15.w, r15.w
mul r16.w, r13.w, cb10[192].x
max r13.w, r13.w, l(0.000100)
div r13.w, l(1.000000, 1.000000, 1.000000, 1.000000), r13.w
mad r16.w, -r16.w, r16.w, l(1.000000)
max r16.w, r16.w, l(9.999999825E-015)
mul r16.w, r16.w, r16.w
mul r16.w, r16.w, r16.w
mad_sat r17.x, r16.w, r16.w, cb10[192].y
mul r17.x, r13.w, r17.x
mul r15.w, r15.w, r17.x
add r17.x, cb10[192].y, l(-1.000000)
mad_sat r16.w, r16.w, r16.w, r17.x
mul r13.w, r13.w, r16.w
lt r16.w, l(1.000000), cb10[192].y
movc r13.w, r16.w, r13.w, r15.w
mul r17.xyz, r6.xxxx, cb10[191].xyzx
mul r18.xyz, r6.xxxx, cb10[218].xyzx
mad r7.xyz, r17.xyzx, r13.wwww, r7.xyzx
dp3 r6.x, r0.xyzx, r0.xyzx
rsq r15.w, r6.x
mul r19.xyz, r0.xyzx, r15.wwww
dp3 r16.w, -cb10[217].xyzx, r19.xyzx
mad_sat r16.w, r16.w, cb10[219].z, cb10[219].w
mul r16.w, r16.w, r16.w
mul r17.w, r6.x, cb10[219].x
max r6.x, r6.x, l(0.000100)
div r6.x, l(1.000000, 1.000000, 1.000000, 1.000000), r6.x
mad r17.w, -r17.w, r17.w, l(1.000000)
max r17.w, r17.w, l(9.999999825E-015)
mul r17.w, r17.w, r17.w
mul r17.w, r17.w, r17.w
mad_sat r18.w, r17.w, r17.w, cb10[219].y
mul r18.w, r6.x, r18.w
mul r16.w, r16.w, r18.w
add r18.w, cb10[219].y, l(-1.000000)
mad_sat r17.w, r17.w, r17.w, r18.w
mul r6.x, r6.x, r17.w
lt r17.w, l(1.000000), cb10[219].y
movc r6.x, r17.w, r6.x, r16.w
mad o8.xyz, r18.xyzx, r6.xxxx, r7.xyzx
lt r7.x, l(0.000000), r5.x
dp3 r7.y, r3.xyzx, r3.xyzx
rsq r7.y, r7.y
mul r19.xyz, r3.xyzx, r7.yyyy
mad r3.xyz, r3.xyzx, r7.yyyy, cb10[1].xyzx
mad r4.xyz, r4.xyzx, r4.wwww, r19.xyzx
dp3 r4.w, r4.xyzx, r4.xyzx
rsq r4.w, r4.w
mul r4.xyz, r4.wwww, r4.xyzx
dp3_sat r4.x, r19.xyzx, r4.xyzx
max r4.x, r4.x, l(9.999999825E-015)
mul r4.x, r4.x, cb0[2].x
mul r4.x, r4.x, l(0.409255564)
mul r4.xyz, r6.yzwy, r4.xxxx
dp3 r4.w, r3.xyzx, r3.xyzx
rsq r4.w, r4.w
mul r3.xyz, r3.xyzx, r4.wwww
dp3_sat r3.x, -r19.xyzx, r3.xyzx
max r3.x, r3.x, l(9.999999825E-015)
mul r3.x, r3.x, cb0[2].x
mul r3.x, r3.x, l(0.409255564)
mul r3.xyz, r5.yzwy, r3.xxxx
mad r4.xyz, r4.xyzx, r5.xxxx, r3.xyzx
movc r3.xyz, r7.xxxx, r4.xyzx, r3.xyzx
mad r2.xyz, r2.xyzx, r2.wwww, r19.xyzx
dp3 r2.w, r2.xyzx, r2.xyzx
rsq r2.w, r2.w
mul r2.xyz, r2.wwww, r2.xyzx
dp3_sat r2.x, r19.xyzx, r2.xyzx
max r2.x, r2.x, l(9.999999825E-015)
mul r2.x, r2.x, cb0[2].x
mul r2.x, r2.x, l(0.409255564)
mul r2.xyz, r8.xyzx, r2.xxxx
mad r2.xyz, r2.xyzx, r3.wwww, r3.xyzx
lt r2.w, l(0.000000), r3.w
movc r2.xyz, r2.wwww, r2.xyzx, r3.xyzx
mad r1.xyz, r1.xyzx, r0.wwww, r19.xyzx
dp3 r0.w, r1.xyzx, r1.xyzx
rsq r0.w, r0.w
mul r1.xyz, r0.wwww, r1.xyzx
dp3_sat r0.w, r19.xyzx, r1.xyzx
max r0.w, r0.w, l(9.999999825E-015)
mul r0.w, r0.w, cb0[2].x
mul r0.w, r0.w, l(0.409255564)
mul r1.xyz, r9.xyzx, r0.wwww
mad r1.xyz, r1.xyzx, r1.wwww, r2.xyzx
lt r0.w, l(0.000000), r1.w
movc r1.xyz, r0.wwww, r1.xyzx, r2.xyzx
mad r2.xyz, r10.xyzx, r7.wwww, r19.xyzx
dp3 r0.w, r2.xyzx, r2.xyzx
rsq r0.w, r0.w
mul r2.xyz, r0.wwww, r2.xyzx
dp3_sat r0.w, r19.xyzx, r2.xyzx
max r0.w, r0.w, l(9.999999825E-015)
mul r0.w, r0.w, cb0[2].x
mul r0.w, r0.w, l(0.409255564)
mul r2.xyz, r11.xyzx, r0.wwww
mad r2.xyz, r2.xyzx, r8.wwww, r1.xyzx
lt r0.w, l(0.000000), r8.w
movc r1.xyz, r0.wwww, r2.xyzx, r1.xyzx
mad r2.xyz, r12.xyzx, r9.wwww, r19.xyzx
dp3 r0.w, r2.xyzx, r2.xyzx
rsq r0.w, r0.w
mul r2.xyz, r0.wwww, r2.xyzx
dp3_sat r0.w, r19.xyzx, r2.xyzx
max r0.w, r0.w, l(9.999999825E-015)
mul r0.w, r0.w, cb0[2].x
mul r0.w, r0.w, l(0.409255564)
mul r2.xyz, r13.xyzx, r0.wwww
mad r2.xyz, r2.xyzx, r10.wwww, r1.xyzx
lt r0.w, l(0.000000), r10.w
movc r1.xyz, r0.wwww, r2.xyzx, r1.xyzx
mad r2.xyz, r14.xyzx, r11.wwww, r19.xyzx
dp3 r0.w, r2.xyzx, r2.xyzx
rsq r0.w, r0.w
mul r2.xyz, r0.wwww, r2.xyzx
dp3_sat r0.w, r19.xyzx, r2.xyzx
max r0.w, r0.w, l(9.999999825E-015)
mul r0.w, r0.w, cb0[2].x
mul r0.w, r0.w, l(0.409255564)
mul r2.xyz, r15.xyzx, r0.wwww
mad r2.xyz, r2.xyzx, r12.wwww, r1.xyzx
lt r0.w, l(0.000000), r12.w
movc r1.xyz, r0.wwww, r2.xyzx, r1.xyzx
mad r2.xyz, r16.xyzx, r14.wwww, r19.xyzx
dp3 r0.w, r2.xyzx, r2.xyzx
rsq r0.w, r0.w
mul r2.xyz, r0.wwww, r2.xyzx
dp3_sat r0.w, r19.xyzx, r2.xyzx
max r0.w, r0.w, l(9.999999825E-015)
mul r0.w, r0.w, cb0[2].x
mul r0.w, r0.w, l(0.409255564)
mul r2.xyz, r17.xyzx, r0.wwww
mad r2.xyz, r2.xyzx, r13.wwww, r1.xyzx
lt r0.w, l(0.000000), r13.w
movc r1.xyz, r0.wwww, r2.xyzx, r1.xyzx
mad r0.xyz, r0.xyzx, r15.wwww, r19.xyzx
dp3 r0.w, r0.xyzx, r0.xyzx
rsq r0.w, r0.w
mul r0.xyz, r0.wwww, r0.xyzx
dp3_sat r0.x, r19.xyzx, r0.xyzx
max r0.x, r0.x, l(9.999999825E-015)
mul r0.x, r0.x, cb0[2].x
mul r0.x, r0.x, l(0.409255564)
mul r0.xyz, r18.xyzx, r0.xxxx
mad r0.xyz, r0.xyzx, r6.xxxx, r1.xyzx
lt r0.w, l(0.000000), r6.x
movc o9.xyz, r0.wwww, r0.xyzx, r1.xyzx
ret
// Approximately 408 instruction slots used

#70
Posted 05/04/2018 04:13 PM   
Refer to post #67 There is also links to 2 guides in this post https://forums.geforce.com/default/topic/1043065/
Refer to post #67

There is also links to 2 guides in this post
https://forums.geforce.com/default/topic/1043065/

#71
Posted 05/04/2018 04:26 PM   
thanks D-man11, I should have caught that. I edited my previous post with the info and screen shots (sorry for the TaB and SBS mash up).
thanks D-man11, I should have caught that. I edited my previous post with the info and screen shots (sorry for the TaB and SBS mash up).

#72
Posted 05/04/2018 06:51 PM   
@Shift-E Yep..that issue is an Halo issue.,,,BUT like i say that 76599b57e72f8646-vs_replace is not the one responsable for that issue....you need to found another VS that also remove the effect or make the effect totally white or totally black....in the shader you will see this line: "o0.xyzw = r0.xyzw;" or any other rX value.
@Shift-E
Yep..that issue is an Halo issue.,,,BUT like i say that 76599b57e72f8646-vs_replace is not the one responsable for that issue....you need to found another VS that also remove the effect or make the effect totally white or totally black....in the shader you will see this line: "o0.xyzw = r0.xyzw;" or any other rX value.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

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

#73
Posted 05/04/2018 07:07 PM   
ok, I paid attention to each shader and saw no change in halo appearance (solid back or white). I will try using the hot pink option in the ini to see if that helps point out the shader causing the halo. thanks
ok, I paid attention to each shader and saw no change in halo appearance (solid back or white). I will try using the hot pink option in the ini to see if that helps point out the shader causing the halo. thanks

#74
Posted 05/04/2018 07:14 PM   
Can you please try this fix in the 76599b57e72f8646-vs_replace The r2.w is in the upper line...so this should work if is the correct shader. And also this will explain why the Regex don't catch this shader. Put the fix just below the o0 line [code] . . r2.xyzw = r0.xxxx * projMatrix._m00_m01_m02_m03 + r2.xyzw; r2.xyzw = r1.zzzz * projMatrix._m20_m21_m22_m23 + r2.xyzw; r2.xyzw = r1.wwww * projMatrix._m30_m31_m32_m33 + r2.xyzw; r0.z = -endCamFadeDistToVertex + abs(r1.z); r0.w = startCamFadeDistToVertex + -endCamFadeDistToVertex; r0.z = saturate(r0.z / r0.w); r0.z = v3.w * r0.z; r0.w = cmp(r0.z < particleAlphaThreshold); o5.w = r0.z; o0.w = r0.w ? -1 : r2.w; o0.xyz = r2.xyz; //Fix float4 stereo = StereoParams.Load(0); r2.x += stereo.x * (r2.w - stereo.y); r0.z = dot(-viewI._m20_m21_m22, -viewI._m20_m21_m22); r0.z = rsqrt(r0.z); o1.xyz = -viewI._m20_m21_m22 * r0.zzz; r0.z = v2.y * c_totalAnimFrames + 1; r0.w = cmp(c_totalAnimFrames < r0.z); . .[/code]
Can you please try this fix in the 76599b57e72f8646-vs_replace
The r2.w is in the upper line...so this should work if is the correct shader. And also this will explain why the Regex don't catch this shader.

Put the fix just below the o0 line

.
.
r2.xyzw = r0.xxxx * projMatrix._m00_m01_m02_m03 + r2.xyzw;
r2.xyzw = r1.zzzz * projMatrix._m20_m21_m22_m23 + r2.xyzw;
r2.xyzw = r1.wwww * projMatrix._m30_m31_m32_m33 + r2.xyzw;
r0.z = -endCamFadeDistToVertex + abs(r1.z);
r0.w = startCamFadeDistToVertex + -endCamFadeDistToVertex;
r0.z = saturate(r0.z / r0.w);
r0.z = v3.w * r0.z;
r0.w = cmp(r0.z < particleAlphaThreshold);
o5.w = r0.z;
o0.w = r0.w ? -1 : r2.w;
o0.xyz = r2.xyz;

//Fix
float4 stereo = StereoParams.Load(0);
r2.x += stereo.x * (r2.w - stereo.y);

r0.z = dot(-viewI._m20_m21_m22, -viewI._m20_m21_m22);
r0.z = rsqrt(r0.z);
o1.xyz = -viewI._m20_m21_m22 * r0.zzz;
r0.z = v2.y * c_totalAnimFrames + 1;
r0.w = cmp(c_totalAnimFrames < r0.z);
.
.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

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

#75
Posted 05/04/2018 07:24 PM   
  5 / 6    
Scroll To Top