Advertisement
Guest User

Untitled

a guest
Dec 16th, 2018
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #version 150
  2. #extension GL_ARB_explicit_attrib_location : require
  3. #extension GL_ARB_shader_bit_encoding : enable
  4.  
  5. uniform     vec4 _ProjectionParams;
  6. uniform     float M_PI;
  7. uniform     float HR;
  8. uniform     vec3 betaR;
  9. uniform     float HM;
  10. uniform     vec3 betaMEx;
  11. uniform     float mieG;
  12. uniform     float _Exposure;
  13. uniform     float Rg;
  14. uniform     float Rt;
  15. uniform     float RES_R;
  16. uniform     float RES_MU;
  17. uniform     float RES_MU_S;
  18. uniform     float RES_NU;
  19. uniform     vec3 SUN_DIR;
  20. uniform     float SUN_INTENSITY;
  21. uniform     float _experimentalAtmoScale;
  22. uniform     float _global_alpha;
  23. uniform     float _global_depth;
  24. uniform     vec3 _camPos;
  25. uniform     vec3 _camForward;
  26. uniform     float _openglThreshold;
  27. uniform  sampler2D _customDepthTexture;
  28. uniform  sampler2D _Inscatter;
  29. in  vec2 vs_TEXCOORD0;
  30. in  vec3 vs_TEXCOORD1;
  31. layout(location = 0) out vec4 SV_Target0;
  32. vec4 u_xlat0;
  33. vec4 u_xlat10_0;
  34. ivec4 u_xlati0;
  35. bool u_xlatb0;
  36. vec4 u_xlat1;
  37. int u_xlati1;
  38. bvec3 u_xlatb1;
  39. vec4 u_xlat2;
  40. bool u_xlatb2;
  41. vec4 u_xlat3;
  42. vec4 u_xlat10_3;
  43. ivec2 u_xlati3;
  44. bool u_xlatb3;
  45. vec4 u_xlat4;
  46. ivec2 u_xlati4;
  47. vec4 u_xlat5;
  48. vec4 u_xlat10_5;
  49. ivec3 u_xlati5;
  50. vec4 u_xlat6;
  51. vec4 u_xlat10_6;
  52. vec4 u_xlat7;
  53. vec4 u_xlat10_7;
  54. vec3 u_xlat8;
  55. vec4 u_xlat9;
  56. vec4 u_xlat10_9;
  57. vec4 u_xlat10;
  58. vec4 u_xlat10_10;
  59. vec3 u_xlat11;
  60. vec3 u_xlat12;
  61. vec3 u_xlat13;
  62. float u_xlat14;
  63. bool u_xlatb14;
  64. float u_xlat22;
  65. bool u_xlatb22;
  66. vec2 u_xlat23;
  67. bvec2 u_xlatb23;
  68. float u_xlat24;
  69. bool u_xlatb24;
  70. float u_xlat25;
  71. vec2 u_xlat26;
  72. float u_xlat33;
  73. float u_xlat34;
  74. bool u_xlatb34;
  75. float u_xlat35;
  76. bool u_xlatb35;
  77. float u_xlat36;
  78. bool u_xlatb36;
  79.  
  80.  
  81. const float ImmCB_0_0_0[64] = float[64](0,  32,  8, 40,  2, 34, 10, 42,
  82.                48, 16, 56, 24, 50, 18, 58, 26,
  83.                12, 44,  4, 36, 14, 46,  6, 38,
  84.                60, 28, 52, 20, 62, 30, 54, 22,
  85.                3,  35, 11, 43,  1, 33,  9, 41,
  86.                51, 19, 59, 27, 49, 17, 57, 25,
  87.                15, 47,  7, 39, 13, 45,  5, 37,
  88.                63, 31, 55, 23, 61, 29, 53, 21);
  89.  
  90. void main()
  91. {
  92.     u_xlat10_0 = texture(_customDepthTexture, vs_TEXCOORD0.xy);
  93.     u_xlat11.x = dot(vs_TEXCOORD1.xyz, vs_TEXCOORD1.xyz);
  94.     u_xlat11.x = inversesqrt(u_xlat11.x);
  95.     u_xlat11.xyz = u_xlat11.xxx * vs_TEXCOORD1.xyz;
  96.     u_xlat1.x = dot(_camForward.xyz, _camForward.xyz);
  97.     u_xlat1.x = inversesqrt(u_xlat1.x);
  98.     u_xlat1.xyz = u_xlat1.xxx * _camForward.xyz;
  99.     u_xlat1.x = dot(u_xlat11.xyz, u_xlat1.xyz);
  100.     u_xlat12.x = u_xlat10_0.x * 750000.0;
  101.     u_xlat23.x = dot(u_xlat11.xyz, u_xlat11.xyz);
  102.     u_xlat34 = dot(u_xlat11.xyz, _camPos.xyz);
  103.     u_xlat2.x = u_xlat34 + u_xlat34;
  104.     u_xlat13.x = dot(_camPos.xyz, _camPos.xyz);
  105.     u_xlat24 = Rg * Rg;
  106.     u_xlat35 = (-Rg) * Rg + u_xlat13.x;
  107.     u_xlat35 = u_xlat23.x * u_xlat35;
  108.     u_xlat35 = u_xlat35 * 4.0;
  109.     u_xlat2.x = u_xlat2.x * u_xlat2.x + (-u_xlat35);
  110.     u_xlatb35 = u_xlat2.x<0.0;
  111.     u_xlat2.x = sqrt(u_xlat2.x);
  112.     u_xlat12.z = (-u_xlat34) * 2.0 + (-u_xlat2.x);
  113.     u_xlat1.z = u_xlat23.x + u_xlat23.x;
  114.     u_xlat12.xy = u_xlat12.xz / u_xlat1.xz;
  115.     u_xlat23.x = (u_xlatb35) ? -1.0 : u_xlat12.y;
  116.     u_xlatb34 = 0.0<u_xlat23.x;
  117.     u_xlatb2 = u_xlat23.x<u_xlat12.x;
  118.     u_xlatb2 = u_xlatb34 && u_xlatb2;
  119.     u_xlat12.x = (u_xlatb2) ? u_xlat23.x : u_xlat12.x;
  120.     u_xlat1.x = u_xlat1.x * u_xlat12.x;
  121.     u_xlatb23.x = u_xlat1.x>=_ProjectionParams.y;
  122.     u_xlatb1.x = _ProjectionParams.z>=u_xlat1.x;
  123.     u_xlatb1.x = u_xlatb1.x && u_xlatb23.x;
  124.     u_xlatb0 = u_xlat10_0.x!=1.0;
  125.     u_xlatb0 = u_xlatb0 || u_xlatb34;
  126.     u_xlati0.x = int(uint(u_xlatb0) * 0xffffffffu & uint(u_xlatb1.x) * 0xffffffffu);
  127.     u_xlat11.xyz = u_xlat12.xxx * u_xlat11.xyz + _camPos.xyz;
  128.     u_xlat1.x = dot(u_xlat11.xyz, u_xlat11.xyz);
  129.     u_xlat23.x = sqrt(u_xlat1.x);
  130.     u_xlat34 = Rg + _openglThreshold;
  131.     u_xlatb23.x = u_xlat23.x<u_xlat34;
  132.     u_xlat1.x = inversesqrt(u_xlat1.x);
  133.     u_xlat3.xyz = u_xlat11.xyz * u_xlat1.xxx;
  134.     u_xlat3.xyz = vec3(u_xlat34) * u_xlat3.xyz;
  135.     u_xlat3.xyz = (u_xlatb23.x) ? u_xlat3.xyz : u_xlat11.xyz;
  136.     u_xlat11.xyz = u_xlat3.xyz + (-_camPos.xyz);
  137.     u_xlat1.x = dot(u_xlat11.xyz, u_xlat11.xyz);
  138.     u_xlat4.x = sqrt(u_xlat1.x);
  139.     u_xlat11.xyz = u_xlat11.xyz / u_xlat4.xxx;
  140.     u_xlat1.x = (-Rg) + Rt;
  141.     u_xlat5.y = u_xlat1.x * _experimentalAtmoScale + Rg;
  142.     u_xlat1.x = dot(u_xlat11.xyz, u_xlat11.xyz);
  143.     u_xlat1.x = inversesqrt(u_xlat1.x);
  144.     u_xlat11.xyz = u_xlat11.xyz * u_xlat1.xxx;
  145.     u_xlat6.z = sqrt(u_xlat13.x);
  146.     u_xlat1.x = Rg * 0.899999976;
  147.     u_xlatb1.x = u_xlat6.z<u_xlat1.x;
  148.     u_xlat7.y = Rg + _camPos.y;
  149.     u_xlat8.y = u_xlat3.y + Rg;
  150.     u_xlat7.xz = _camPos.xz;
  151.     u_xlat23.x = dot(u_xlat7.xyz, u_xlat7.xyz);
  152.     u_xlat8.z = sqrt(u_xlat23.x);
  153.     u_xlat8.x = u_xlat7.y;
  154.     u_xlat6.x = _camPos.y;
  155.     u_xlat6.y = u_xlat3.y;
  156.     u_xlat1.xzw = (u_xlatb1.x) ? u_xlat8.xyz : u_xlat6.xyz;
  157.     u_xlat6.xz = _camPos.xz;
  158.     u_xlat6.y = u_xlat1.x;
  159.     u_xlat1.x = dot(u_xlat6.xyz, u_xlat11.xyz);
  160.     u_xlat4.z = u_xlat1.x / u_xlat1.w;
  161.     u_xlat2.x = u_xlat1.w * u_xlat1.w;
  162.     u_xlat2.x = u_xlat1.x * u_xlat1.x + (-u_xlat2.x);
  163.     u_xlat2.x = u_xlat5.y * u_xlat5.y + u_xlat2.x;
  164.     u_xlat13.x = sqrt(u_xlat2.x);
  165.     u_xlat13.x = (-u_xlat1.x) + (-u_xlat13.x);
  166.     u_xlat13.x = max(u_xlat13.x, 0.0);
  167.     u_xlatb35 = 0.0<u_xlat13.x;
  168.     u_xlatb14 = u_xlat13.x<u_xlat4.x;
  169.     u_xlatb35 = u_xlatb35 && u_xlatb14;
  170.     u_xlat1.x = u_xlat1.x + u_xlat13.x;
  171.     u_xlat5.z = u_xlat1.x / u_xlat5.y;
  172.     u_xlat5.x = (-u_xlat13.x) + u_xlat4.x;
  173.     u_xlat4.y = u_xlat1.w;
  174.     u_xlat7.xyz = (bool(u_xlatb35)) ? u_xlat5.xyz : u_xlat4.xyz;
  175.     u_xlatb1.x = u_xlat5.y>=u_xlat7.y;
  176.     u_xlatb34 = u_xlat2.x>=0.0;
  177.     u_xlatb1.x = u_xlatb34 && u_xlatb1.x;
  178.     if(u_xlatb1.x){
  179.         u_xlat1.x = min(u_xlat4.x, 1.0);
  180.         u_xlat3.w = u_xlat1.z;
  181.         u_xlat3.xyz = (-u_xlat11.xyz) * u_xlat1.xxx + u_xlat3.xwz;
  182.         u_xlat1.xzw = u_xlat13.xxx * u_xlat11.xyz + u_xlat6.xyz;
  183.         u_xlat1.xzw = (bool(u_xlatb35)) ? u_xlat1.xzw : u_xlat6.xyz;
  184.         u_xlat2.x = dot(u_xlat11.xyz, SUN_DIR.xyz);
  185.         u_xlat1.x = dot(u_xlat1.xzw, SUN_DIR.xyz);
  186.         u_xlat1.z = Rg + 1600.0;
  187.         u_xlatb34 = u_xlat7.y<u_xlat1.z;
  188.         u_xlat1.xz = u_xlat1.xz / u_xlat7.yy;
  189.         u_xlat4.xyz = u_xlat1.zzz * u_xlat3.xyz;
  190.         u_xlat4.w = Rg + 1600.0;
  191.         u_xlat3.w = u_xlat7.y;
  192.         u_xlat3 = (bool(u_xlatb34)) ? u_xlat4 : u_xlat3;
  193.         u_xlat23.x = dot(u_xlat3.xyz, u_xlat3.xyz);
  194.         u_xlat34 = sqrt(u_xlat23.x);
  195.         u_xlat11.x = dot(u_xlat3.xyz, u_xlat11.xyz);
  196.         u_xlat22 = dot(u_xlat3.xyz, SUN_DIR.xyz);
  197.         u_xlat22 = u_xlat22 / u_xlat34;
  198.         u_xlat33 = HR * _experimentalAtmoScale;
  199.         u_xlat34 = 0.5 / u_xlat33;
  200.         u_xlat34 = u_xlat3.w * u_xlat34;
  201.         u_xlat34 = sqrt(u_xlat34);
  202.         u_xlat13.x = u_xlat7.x / u_xlat3.w;
  203.         u_xlat7.w = u_xlat13.x + u_xlat7.z;
  204.         u_xlat13.xz = vec2(u_xlat34) * u_xlat7.zw;
  205.         u_xlati3.xy = ivec2(uvec2(lessThan(vec4(0.0, 0.0, 0.0, 0.0), u_xlat13.xzxx).xy) * 0xFFFFFFFFu);
  206.         u_xlati4.xy = ivec2(uvec2(lessThan(u_xlat13.xzxx, vec4(0.0, 0.0, 0.0, 0.0)).xy) * 0xFFFFFFFFu);
  207.         u_xlati3.xy = (-u_xlati3.xy) + u_xlati4.xy;
  208.         u_xlat3.xy = vec2(u_xlati3.xy);
  209.         u_xlat4.xyz = u_xlat13.xxz * u_xlat13.xxz;
  210.         u_xlatb34 = u_xlat3.x<u_xlat3.y;
  211.         u_xlat25 = u_xlat4.x * 1.44269502;
  212.         u_xlat25 = exp2(u_xlat25);
  213.         u_xlat34 = u_xlatb34 ? u_xlat25 : float(0.0);
  214.         u_xlat4.xy = u_xlat4.yz * vec2(1.51999998, 1.51999998) + vec2(4.0, 4.0);
  215.         u_xlat4.xy = sqrt(u_xlat4.xy);
  216.         u_xlat13.xz = abs(u_xlat13.xz) * vec2(2.31929994, 2.31929994) + u_xlat4.xy;
  217.         u_xlat13.xz = u_xlat3.xy / u_xlat13.xz;
  218.         u_xlat3.x = (-u_xlat7.x) / u_xlat33;
  219.         u_xlat14 = u_xlat3.w + u_xlat3.w;
  220.         u_xlat14 = u_xlat7.x / u_xlat14;
  221.         u_xlat14 = u_xlat7.z + u_xlat14;
  222.         u_xlat3.x = u_xlat14 * u_xlat3.x;
  223.         u_xlat3.x = u_xlat3.x * 1.44269502;
  224.         u_xlat4.y = exp2(u_xlat3.x);
  225.         u_xlat4.x = float(1.0);
  226.         u_xlat26.x = float(1.0);
  227.         u_xlat13.xz = u_xlat13.xz * u_xlat4.xy;
  228.         u_xlat3.x = u_xlat33 * u_xlat3.w;
  229.         u_xlat3.x = u_xlat3.x * 6.28310013;
  230.         u_xlat3.x = sqrt(u_xlat3.x);
  231.         u_xlat25 = (-u_xlat3.w) + Rg;
  232.         u_xlat33 = u_xlat25 / u_xlat33;
  233.         u_xlat33 = u_xlat33 * 1.44269502;
  234.         u_xlat33 = exp2(u_xlat33);
  235.         u_xlat33 = u_xlat33 * u_xlat3.x;
  236.         u_xlat13.x = dot(u_xlat13.xz, vec2(1.0, -1.0));
  237.         u_xlat34 = u_xlat34 + u_xlat13.x;
  238.         u_xlat33 = u_xlat33 * u_xlat34;
  239.         u_xlat34 = HM * _experimentalAtmoScale;
  240.         u_xlat13.x = 0.5 / u_xlat34;
  241.         u_xlat13.x = u_xlat3.w * u_xlat13.x;
  242.         u_xlat13.x = sqrt(u_xlat13.x);
  243.         u_xlat13.xz = u_xlat7.zw * u_xlat13.xx;
  244.         u_xlati4.xy = ivec2(uvec2(lessThan(vec4(0.0, 0.0, 0.0, 0.0), u_xlat13.xzxx).xy) * 0xFFFFFFFFu);
  245.         u_xlati5.xz = ivec2(uvec2(lessThan(u_xlat13.xxzx, vec4(0.0, 0.0, 0.0, 0.0)).xz) * 0xFFFFFFFFu);
  246.         u_xlati4.xy = (-u_xlati4.xy) + u_xlati5.xz;
  247.         u_xlat4.xy = vec2(u_xlati4.xy);
  248.         u_xlat5.xzw = u_xlat13.xxz * u_xlat13.xxz;
  249.         u_xlatb3 = u_xlat4.x<u_xlat4.y;
  250.         u_xlat5.x = u_xlat5.x * 1.44269502;
  251.         u_xlat5.x = exp2(u_xlat5.x);
  252.         u_xlat3.x = u_xlatb3 ? u_xlat5.x : float(0.0);
  253.         u_xlat5.xz = u_xlat5.zw * vec2(1.51999998, 1.51999998) + vec2(4.0, 4.0);
  254.         u_xlat5.xz = sqrt(u_xlat5.xz);
  255.         u_xlat13.xz = abs(u_xlat13.xz) * vec2(2.31929994, 2.31929994) + u_xlat5.xz;
  256.         u_xlat13.xz = u_xlat4.xy / u_xlat13.xz;
  257.         u_xlat4.x = (-u_xlat7.x) / u_xlat34;
  258.         u_xlat14 = u_xlat14 * u_xlat4.x;
  259.         u_xlat14 = u_xlat14 * 1.44269502;
  260.         u_xlat26.y = exp2(u_xlat14);
  261.         u_xlat13.xz = u_xlat13.xz * u_xlat26.xy;
  262.         u_xlat14 = u_xlat34 * u_xlat3.w;
  263.         u_xlat14 = u_xlat14 * 6.28310013;
  264.         u_xlat14 = sqrt(u_xlat14);
  265.         u_xlat34 = u_xlat25 / u_xlat34;
  266.         u_xlat34 = u_xlat34 * 1.44269502;
  267.         u_xlat34 = exp2(u_xlat34);
  268.         u_xlat34 = u_xlat34 * u_xlat14;
  269.         u_xlat13.x = dot(u_xlat13.xz, vec2(1.0, -1.0));
  270.         u_xlat13.x = u_xlat13.x + u_xlat3.x;
  271.         u_xlat34 = u_xlat34 * u_xlat13.x;
  272.         u_xlat4 = vec4(u_xlat34) * betaMEx.xyzx;
  273.         u_xlat4 = (-betaR.xyzx) * vec4(u_xlat33) + (-u_xlat4);
  274.         u_xlat4 = u_xlat4 * vec4(1.44269502, 1.44269502, 1.44269502, 1.44269502);
  275.         u_xlat4 = exp2(u_xlat4);
  276.         u_xlat4 = min(u_xlat4, vec4(1.0, 1.0, 1.0, 1.0));
  277.         u_xlat33 = u_xlat5.y * u_xlat5.y + (-u_xlat24);
  278.         u_xlat5.z = sqrt(u_xlat33);
  279.         u_xlat33 = u_xlat3.w * u_xlat3.w;
  280.         u_xlat34 = u_xlat3.w * u_xlat3.w + (-u_xlat24);
  281.         u_xlat34 = sqrt(u_xlat34);
  282.         u_xlat13.x = u_xlat7.z * u_xlat3.w;
  283.         u_xlat33 = u_xlat13.x * u_xlat13.x + (-u_xlat33);
  284.         u_xlat33 = Rg * Rg + u_xlat33;
  285.         u_xlatb24 = u_xlat13.x<0.0;
  286.         u_xlatb35 = 0.0<u_xlat33;
  287.         u_xlatb24 = u_xlatb35 && u_xlatb24;
  288.         u_xlat3.xyz = vec3(0.5, 0.5, 0.5) / vec3(RES_MU, RES_R, RES_MU_S);
  289.         u_xlat6.w = (-u_xlat3.x) + 0.5;
  290.         u_xlat5.y = u_xlat5.z * u_xlat5.z;
  291.         u_xlat5.w = u_xlat3.x + 0.5;
  292.         u_xlat6.x = float(1.0);
  293.         u_xlat6.y = float(0.0);
  294.         u_xlat6.z = float(0.0);
  295.         u_xlat5.x = -1.0;
  296.         u_xlat7 = (bool(u_xlatb24)) ? u_xlat6.xzzw : u_xlat5;
  297.         u_xlat24 = u_xlat34 / u_xlat5.z;
  298.         u_xlat8.xyz = vec3(1.0, 1.0, 1.0) / vec3(RES_R, RES_MU, RES_MU_S);
  299.         u_xlat8.xyz = (-u_xlat8.xyz) + vec3(1.0, 0.5, 1.0);
  300.         u_xlat24 = u_xlat24 * u_xlat8.x + u_xlat3.y;
  301.         u_xlat33 = u_xlat33 + u_xlat7.y;
  302.         u_xlat33 = sqrt(u_xlat33);
  303.         u_xlat33 = u_xlat13.x * u_xlat7.x + u_xlat33;
  304.         u_xlat34 = u_xlat34 + u_xlat7.z;
  305.         u_xlat33 = u_xlat33 / u_xlat34;
  306.         u_xlat33 = u_xlat33 * u_xlat8.y + u_xlat7.w;
  307.         u_xlat34 = max(u_xlat1.x, -0.197500005);
  308.         u_xlat34 = u_xlat34 * 5.34962368;
  309.         u_xlat13.x = min(abs(u_xlat34), 1.0);
  310.         u_xlat35 = max(abs(u_xlat34), 1.0);
  311.         u_xlat35 = float(1.0) / u_xlat35;
  312.         u_xlat13.x = u_xlat35 * u_xlat13.x;
  313.         u_xlat35 = u_xlat13.x * u_xlat13.x;
  314.         u_xlat3.x = u_xlat35 * 0.0208350997 + -0.0851330012;
  315.         u_xlat3.x = u_xlat35 * u_xlat3.x + 0.180141002;
  316.         u_xlat3.x = u_xlat35 * u_xlat3.x + -0.330299497;
  317.         u_xlat35 = u_xlat35 * u_xlat3.x + 0.999866009;
  318.         u_xlat3.x = u_xlat35 * u_xlat13.x;
  319.         u_xlatb36 = 1.0<abs(u_xlat34);
  320.         u_xlat3.x = u_xlat3.x * -2.0 + 1.57079637;
  321.         u_xlat3.x = u_xlatb36 ? u_xlat3.x : float(0.0);
  322.         u_xlat13.x = u_xlat13.x * u_xlat35 + u_xlat3.x;
  323.         u_xlat34 = min(u_xlat34, 1.0);
  324.         u_xlatb34 = u_xlat34<(-u_xlat34);
  325.         u_xlat34 = (u_xlatb34) ? (-u_xlat13.x) : u_xlat13.x;
  326.         u_xlat34 = u_xlat34 * 0.909090877 + 0.74000001;
  327.         u_xlat34 = u_xlat34 * 0.5;
  328.         u_xlat34 = u_xlat34 * u_xlat8.z + u_xlat3.z;
  329.         u_xlat13.x = u_xlat2.x + 1.0;
  330.         u_xlat13.x = u_xlat13.x * 0.5;
  331.         u_xlat35 = RES_NU + -1.0;
  332.         u_xlat3.x = u_xlat35 * u_xlat13.x;
  333.         u_xlat3.x = floor(u_xlat3.x);
  334.         u_xlat13.x = u_xlat13.x * u_xlat35 + (-u_xlat3.x);
  335.         u_xlat35 = u_xlat24 * RES_R;
  336.         u_xlat24 = u_xlat24 * RES_R + -1.0;
  337.         u_xlat24 = floor(u_xlat24);
  338.         u_xlat24 = u_xlat24 / RES_R;
  339.         u_xlat36 = floor(u_xlat35);
  340.         u_xlat36 = u_xlat36 / RES_R;
  341.         u_xlat35 = fract(u_xlat35);
  342.         u_xlat34 = u_xlat34 + u_xlat3.x;
  343.         u_xlat7.y = u_xlat34 / RES_NU;
  344.         u_xlat33 = u_xlat33 / RES_R;
  345.         u_xlat7.z = u_xlat24 + u_xlat33;
  346.         u_xlat10_9 = textureLod(_Inscatter, u_xlat7.yz, 0.0);
  347.         u_xlat24 = (-u_xlat13.x) + 1.0;
  348.         u_xlat34 = u_xlat34 + 1.0;
  349.         u_xlat7.x = u_xlat34 / RES_NU;
  350.         u_xlat10_10 = textureLod(_Inscatter, u_xlat7.xz, 0.0);
  351.         u_xlat10 = u_xlat13.xxxx * u_xlat10_10;
  352.         u_xlat9 = u_xlat10_9 * vec4(u_xlat24) + u_xlat10;
  353.         u_xlat7.w = u_xlat36 + u_xlat33;
  354.         u_xlat10_10 = textureLod(_Inscatter, u_xlat7.yw, 0.0);
  355.         u_xlat10_7 = textureLod(_Inscatter, u_xlat7.xw, 0.0);
  356.         u_xlat7 = u_xlat13.xxxx * u_xlat10_7;
  357.         u_xlat7 = u_xlat10_10 * vec4(u_xlat24) + u_xlat7;
  358.         u_xlat33 = (-u_xlat35) + 1.0;
  359.         u_xlat7 = vec4(u_xlat35) * u_xlat7;
  360.         u_xlat7 = u_xlat9 * vec4(u_xlat33) + u_xlat7;
  361.         u_xlat33 = (-Rg) * Rg + u_xlat23.x;
  362.         u_xlat33 = sqrt(u_xlat33);
  363.         u_xlat23.x = u_xlat11.x * u_xlat11.x + (-u_xlat23.x);
  364.         u_xlat23.x = Rg * Rg + u_xlat23.x;
  365.         u_xlatb34 = u_xlat11.x<0.0;
  366.         u_xlatb35 = 0.0<u_xlat23.x;
  367.         u_xlatb34 = u_xlatb34 && u_xlatb35;
  368.         u_xlat6 = (bool(u_xlatb34)) ? u_xlat6 : u_xlat5;
  369.         u_xlat34 = u_xlat33 / u_xlat5.z;
  370.         u_xlat34 = u_xlat34 * u_xlat8.x + u_xlat3.y;
  371.         u_xlat23.x = u_xlat23.x + u_xlat6.y;
  372.         u_xlat23.x = sqrt(u_xlat23.x);
  373.         u_xlat11.x = u_xlat11.x * u_xlat6.x + u_xlat23.x;
  374.         u_xlat33 = u_xlat33 + u_xlat6.z;
  375.         u_xlat11.x = u_xlat11.x / u_xlat33;
  376.         u_xlat11.x = u_xlat11.x * u_xlat8.y + u_xlat6.w;
  377.         u_xlat22 = max(u_xlat22, -0.197500005);
  378.         u_xlat22 = u_xlat22 * 5.34962368;
  379.         u_xlat33 = min(abs(u_xlat22), 1.0);
  380.         u_xlat23.x = max(abs(u_xlat22), 1.0);
  381.         u_xlat23.x = float(1.0) / u_xlat23.x;
  382.         u_xlat33 = u_xlat33 * u_xlat23.x;
  383.         u_xlat23.x = u_xlat33 * u_xlat33;
  384.         u_xlat35 = u_xlat23.x * 0.0208350997 + -0.0851330012;
  385.         u_xlat35 = u_xlat23.x * u_xlat35 + 0.180141002;
  386.         u_xlat35 = u_xlat23.x * u_xlat35 + -0.330299497;
  387.         u_xlat23.x = u_xlat23.x * u_xlat35 + 0.999866009;
  388.         u_xlat35 = u_xlat33 * u_xlat23.x;
  389.         u_xlatb14 = 1.0<abs(u_xlat22);
  390.         u_xlat35 = u_xlat35 * -2.0 + 1.57079637;
  391.         u_xlat35 = u_xlatb14 ? u_xlat35 : float(0.0);
  392.         u_xlat33 = u_xlat33 * u_xlat23.x + u_xlat35;
  393.         u_xlat22 = min(u_xlat22, 1.0);
  394.         u_xlatb22 = u_xlat22<(-u_xlat22);
  395.         u_xlat22 = (u_xlatb22) ? (-u_xlat33) : u_xlat33;
  396.         u_xlat22 = u_xlat22 * 0.909090877 + 0.74000001;
  397.         u_xlat22 = u_xlat8.z * u_xlat22;
  398.         u_xlat22 = u_xlat22 * 0.5 + u_xlat3.z;
  399.         u_xlat33 = u_xlat34 * RES_R;
  400.         u_xlat23.x = u_xlat34 * RES_R + -1.0;
  401.         u_xlat23.x = floor(u_xlat23.x);
  402.         u_xlat23.y = floor(u_xlat33);
  403.         u_xlat23.xy = u_xlat23.xy / vec2(RES_R);
  404.         u_xlat33 = fract(u_xlat33);
  405.         u_xlat22 = u_xlat22 + u_xlat3.x;
  406.         u_xlat3.y = u_xlat22 / RES_NU;
  407.         u_xlat11.x = u_xlat11.x / RES_R;
  408.         u_xlat3.zw = u_xlat23.xy + u_xlat11.xx;
  409.         u_xlat10_5 = textureLod(_Inscatter, u_xlat3.yz, 0.0);
  410.         u_xlat22 = u_xlat22 + 1.0;
  411.         u_xlat3.x = u_xlat22 / RES_NU;
  412.         u_xlat10_6 = textureLod(_Inscatter, u_xlat3.xz, 0.0);
  413.         u_xlat6 = u_xlat13.xxxx * u_xlat10_6;
  414.         u_xlat5 = u_xlat10_5 * vec4(u_xlat24) + u_xlat6;
  415.         u_xlat10_6 = textureLod(_Inscatter, u_xlat3.yw, 0.0);
  416.         u_xlat10_3 = textureLod(_Inscatter, u_xlat3.xw, 0.0);
  417.         u_xlat3 = u_xlat13.xxxx * u_xlat10_3;
  418.         u_xlat3 = u_xlat10_6 * vec4(u_xlat24) + u_xlat3;
  419.         u_xlat11.x = (-u_xlat33) + 1.0;
  420.         u_xlat3 = vec4(u_xlat33) * u_xlat3;
  421.         u_xlat3 = u_xlat5 * u_xlat11.xxxx + u_xlat3;
  422.         u_xlat3 = (-u_xlat3) * u_xlat4 + u_xlat7;
  423.         u_xlat4 = max(u_xlat3, vec4(0.0, 0.0, 0.0, 0.0));
  424.         u_xlat11.x = u_xlat1.x * 50.0;
  425.         u_xlat11.x = clamp(u_xlat11.x, 0.0, 1.0);
  426.         u_xlat22 = u_xlat11.x * -2.0 + 3.0;
  427.         u_xlat11.x = u_xlat11.x * u_xlat11.x;
  428.         u_xlat11.x = u_xlat11.x * u_xlat22;
  429.         u_xlat11.x = u_xlat11.x * u_xlat4.w;
  430.         u_xlat11.xyz = u_xlat11.xxx * u_xlat4.xyz;
  431.         u_xlat1.x = max(u_xlat3.x, 9.99999975e-005);
  432.         u_xlat11.xyz = u_xlat11.xyz / u_xlat1.xxx;
  433.         u_xlat1.xzw = betaR.xxx / betaR.xyz;
  434.         u_xlat11.xyz = u_xlat11.xyz * u_xlat1.xzw;
  435.         u_xlat1.xz = vec2(M_PI) * vec2(16.0, 4.0);
  436.         u_xlat1.xz = vec2(3.0, 1.5) / u_xlat1.xz;
  437.         u_xlat34 = u_xlat2.x * u_xlat2.x + 1.0;
  438.         u_xlat13.x = (-mieG) * mieG + 1.0;
  439.         u_xlat23.x = u_xlat1.z * u_xlat13.x;
  440.         u_xlat13.xy = vec2(vec2(mieG, mieG)) * vec2(vec2(mieG, mieG)) + vec2(1.0, 2.0);
  441.         u_xlat2.x = dot(u_xlat2.xx, vec2(vec2(mieG, mieG)));
  442.         u_xlat2.x = (-u_xlat2.x) + u_xlat13.x;
  443.         u_xlat2.x = log2(u_xlat2.x);
  444.         u_xlat2.x = u_xlat2.x * -1.5;
  445.         u_xlat2.x = exp2(u_xlat2.x);
  446.         u_xlat1.z = u_xlat23.x * u_xlat2.x;
  447.         u_xlat1.xz = vec2(u_xlat34) * u_xlat1.xz;
  448.         u_xlat23.x = u_xlat1.z / u_xlat13.y;
  449.         u_xlat11.xyz = u_xlat11.xyz * u_xlat23.xxx;
  450.         u_xlat11.xyz = u_xlat4.xyz * u_xlat1.xxx + u_xlat11.xyz;
  451.     } else {
  452.         u_xlat11.x = float(0.0);
  453.         u_xlat11.y = float(0.0);
  454.         u_xlat11.z = float(0.0);
  455.     //ENDIF
  456.     }
  457.     u_xlat11.xyz = u_xlat11.xyz * vec3(vec3(SUN_INTENSITY, SUN_INTENSITY, SUN_INTENSITY));
  458.     u_xlatb1.x = _global_depth>=u_xlat12.x;
  459.     u_xlat12.x = u_xlat12.x * 4.0;
  460.     u_xlat12.x = u_xlat12.x / _global_depth;
  461.     u_xlat12.x = u_xlat12.x * -1.44269502;
  462.     u_xlat12.x = exp2(u_xlat12.x);
  463.     u_xlat12.x = (-u_xlat12.x) + 1.0;
  464.     u_xlat1.x = (u_xlatb1.x) ? u_xlat12.x : 1.0;
  465.     u_xlat11.xyz = u_xlat11.xyz * u_xlat1.xxx;
  466.     u_xlat11.xyz = u_xlat11.xyz * vec3(_Exposure);
  467.     u_xlatb1.xyz = lessThan(u_xlat11.xyzx, vec4(1.41299999, 1.41299999, 1.41299999, 0.0)).xyz;
  468.     u_xlat2 = u_xlat11.xxyy * vec4(0.383170009, -1.44269502, 0.383170009, -1.44269502);
  469.     u_xlat11.xy = log2(u_xlat2.xz);
  470.     u_xlat11.xy = u_xlat11.xy * vec2(0.454545468, 0.454545468);
  471.     u_xlat11.xy = exp2(u_xlat11.xy);
  472.     u_xlat2.xy = exp2(u_xlat2.yw);
  473.     u_xlat2.xy = (-u_xlat2.xy) + vec2(1.0, 1.0);
  474.     u_xlat2.x = (u_xlatb1.x) ? u_xlat11.x : u_xlat2.x;
  475.     u_xlat2.y = (u_xlatb1.y) ? u_xlat11.y : u_xlat2.y;
  476.     u_xlat11.xy = u_xlat11.zz * vec2(0.383170009, -1.44269502);
  477.     u_xlat11.x = log2(u_xlat11.x);
  478.     u_xlat11.x = u_xlat11.x * 0.454545468;
  479.     u_xlat11.x = exp2(u_xlat11.x);
  480.     u_xlat22 = exp2(u_xlat11.y);
  481.     u_xlat22 = (-u_xlat22) + 1.0;
  482.     u_xlat2.z = (u_xlatb1.z) ? u_xlat11.x : u_xlat22;
  483.     u_xlat11.xyz = u_xlat2.xyz * vec3(vec3(_global_alpha, _global_alpha, _global_alpha));
  484.     u_xlat1.xy = trunc(gl_FragCoord.xy);
  485.     u_xlat1.xy = u_xlat1.xy * vec2(0.125, 0.125);
  486.     u_xlatb23.xy = greaterThanEqual(u_xlat1.xyxy, (-u_xlat1.xyxy)).xy;
  487.     u_xlat1.xy = fract(abs(u_xlat1.xy));
  488.     u_xlat1.x = (u_xlatb23.x) ? u_xlat1.x : (-u_xlat1.x);
  489.     u_xlat1.y = (u_xlatb23.y) ? u_xlat1.y : (-u_xlat1.y);
  490.     u_xlat1.xy = u_xlat1.xy * vec2(8.0, 64.0);
  491.     u_xlat1.x = u_xlat1.y + u_xlat1.x;
  492.     u_xlati1 = int(u_xlat1.x);
  493.     u_xlat1.x = 0.015625 * ImmCB_0_0_0[u_xlati1];
  494.     u_xlat11.xyz = u_xlat11.xyz * vec3(255.0, 255.0, 255.0);
  495.     u_xlat12.xyz = floor(u_xlat11.xyz);
  496.     u_xlat11.xyz = fract(u_xlat11.xyz);
  497.     u_xlati0.yzw = ivec3(uvec3(greaterThanEqual(u_xlat11.xxyz, u_xlat1.xxxx).yzw) * 0xFFFFFFFFu);
  498.     u_xlat0 = uintBitsToFloat(uvec4(u_xlati0) & uvec4(1065353216u, 1065353216u, 1065353216u, 1065353216u));
  499.     u_xlat11.xyz = u_xlat0.yzw + u_xlat12.xyz;
  500.     u_xlat11.xyz = u_xlat11.xyz * vec3(0.00392156886, 0.00392156886, 0.00392156886);
  501.     SV_Target0.xyz = u_xlat0.xxx * u_xlat11.xyz;
  502.     SV_Target0.w = 1.0;
  503.     return;
  504. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement