Guest User

Mureru VS

a guest
Oct 24th, 2016
131
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #version 430
  2.  
  3. layout(std140, binding = 0) uniform ScaleOffsetBuffer
  4. {
  5.     mat4 scaleOffsetMat;
  6.     float fog_param0;
  7.     float fog_param1;
  8.     uint alpha_test;
  9.     float alpha_ref;
  10. };
  11. layout(location=1)  uniform samplerBuffer in_pos_buffer;
  12. layout(location=2)  uniform samplerBuffer in_normal_buffer;
  13. layout(location=3)  uniform samplerBuffer in_diff_color_buffer;
  14. layout(location=4)  uniform samplerBuffer in_tc0_buffer;
  15.  
  16. out vec4 back_diff_color;
  17. out vec4 tc0;
  18. out vec4 tc2;
  19. out vec4 tc5;
  20. out vec4 front_diff_color;
  21.  
  22. layout(std140, binding = 1) uniform VertexConstantsBuffer
  23. {
  24.     vec4 vc[468];
  25. };
  26.  
  27.  
  28. vec4 divsq_legacy(vec4 num, vec4 denum)
  29. {
  30.     return num / sqrt(max(denum.xxxx, 1.E-10));
  31. }
  32. vec4 rcp_legacy(vec4 denum)
  33. {
  34.     return 1. / denum;
  35. }
  36. vec4 rsq_legacy(vec4 val)
  37. {
  38.     return float(1.0 / sqrt(max(val.x, 1.E-10))).xxxx;
  39. }
  40.  
  41. vec4 log2_legacy(vec4 val)
  42. {
  43.     return log2(max(val.x, 1.E-10)).xxxx;
  44. }
  45.  
  46. vec4 lit_legacy(vec4 val){
  47.     vec4 clamped_val = val;
  48.     clamped_val.x = max(val.x, 0);
  49.     clamped_val.y = max(val.y, 0);
  50.     vec4 result;
  51.     result.x = 1.0;
  52.     result.w = 1.;
  53.     result.y = clamped_val.x;
  54.     result.z = clamped_val.x > 0.0 ? exp(clamped_val.w * log(max(clamped_val.y, 1.E-10))) : 0.0;
  55.     return result;
  56. }
  57.  
  58. vec4 texture2DReconstruct(sampler2D tex, vec2 coord)
  59. {
  60.     float depth_value = texture(tex, coord.xy).r;
  61.     uint value = uint(depth_value * 16777215);
  62.     uint b = (value & 0xff);
  63.     uint g = (value >> 8) & 0xff;
  64.     uint r = (value >> 16) & 0xff;
  65.     return vec4(float(r)/255., float(g)/255., float(b)/255., 1.);
  66. }
  67.  
  68. void vs_main(inout vec4 dst_reg0, inout vec4 dst_reg1, inout vec4 dst_reg7, inout vec4 dst_reg9, inout vec4 dst_reg12)
  69. {
  70.     vec4 cc0 = vec4(0., 0., 0., 0.);
  71.     vec4 tmp0;
  72.     vec4 tmp2;
  73.     vec4 tmp1;
  74.     vec4 tmp3;
  75.     vec4 tmp4;
  76.     vec4 tmp5;
  77.     vec4 tmp6;
  78.     ivec4 a0 = ivec4(0, 0, 0, 0);
  79.     vec4 in_pos= texelFetch(in_pos_buffer, gl_VertexID);
  80.     vec4 in_normal= texelFetch(in_normal_buffer, gl_VertexID);
  81.     vec4 in_diff_color= texelFetch(in_diff_color_buffer, gl_VertexID);
  82.     vec4 in_tc0= texelFetch(in_tc0_buffer, gl_VertexID);
  83.     int jump_position = 0;
  84.    
  85.     while (true)
  86.     {
  87.         if (jump_position <= 0)
  88.         {
  89.             cc0.y = vc[453].xxxx.y;
  90.             cc0.x = vc[451].xxxx.x;
  91.             tmp0.y = vec4(dot(vec4(in_pos.xyzx.xyz, 1.0), vc[258])).y;
  92.             tmp2.x = vec4(dot(vec4(in_pos.xyzx.xyz, 1.0), vc[256])).x;
  93.             tmp0.z = vc[448].xxxx.z;
  94.             tmp1.z = vec4(dot(in_normal.xyzx.xyz, vc[258].xyzx.xyz)).z;
  95.             tmp1.y = vec4(dot(in_normal.xyzx.xyz, vc[257].xyzx.xyz)).y;
  96.             tmp1.x = vec4(dot(in_normal.xyzx.xyz, vc[256].xyzx.xyz)).x;
  97.             tmp0.x = vec4(dot(vec4(in_pos.xyzx.xyz, 1.0), vc[257])).x;
  98.             tmp0.w = (-vc[257].wwww + tmp0.xxxx).w;
  99.             tmp1.w = vec4(dot(tmp1.xyzx.xyz, tmp1.xyzx.xyz)).w;
  100.             tmp0.z = (tmp2.xxxx * tmp0.zzzz + vc[450].xxxx).z;
  101.             tmp0.w = (-vc[447].xxxx + tmp0.wwww).w;
  102.             tmp2.z = tmp0.yyyy.z;
  103.             tmp2.w = (tmp0.yyyy * vc[448].zzzz + tmp0.zzzz).w;
  104.             tmp2.y = tmp0.xxxx.y;
  105.             tmp3.x = vec4(sin(tmp2.wwww)).x;
  106.             tmp0.xyz = tmp2.xyzx.xyz;
  107.             tmp0.w = clamp((tmp0.wwww * vc[449].xxxx).w, 0.0, 1.0);
  108.             tmp1.w = vec4(rsq_legacy(tmp1.wwww)).w;
  109.             tmp3.xyz = (tmp3.xxxx * vc[452].xyzx).xyz;
  110.             if (notEqual(cc0.xxxx, vec4(0., 0., 0., 0.)).x) tmp0.xyz.x = (tmp3.xyzx * tmp0.wwww + tmp2.xyzx).xyz.x;
  111.             if (notEqual(cc0.xxxx, vec4(0., 0., 0., 0.)).y) tmp0.xyz.y = (tmp3.xyzx * tmp0.wwww + tmp2.xyzx).xyz.y;
  112.             if (notEqual(cc0.xxxx, vec4(0., 0., 0., 0.)).z) tmp0.xyz.z = (tmp3.xyzx * tmp0.wwww + tmp2.xyzx).xyz.z;
  113.             tmp2.xyz = (tmp1.wwww * tmp1.xyzx).xyz;
  114.             tmp1.w = vec4(dot(vec4(tmp0.xyzx.xyz, 1.0), vc[267])).w;
  115.             tmp1.z = vec4(dot(vec4(tmp0.xyzx.xyz, 1.0), vc[266])).z;
  116.             tmp1.y = vec4(dot(vec4(tmp0.xyzx.xyz, 1.0), vc[265])).y;
  117.            
  118.             if(any(lessThanEqual(cc0.yyyy, vec4(0., 0., 0., 0.).yyyy)))
  119.             {
  120.                 jump_position = 5;
  121.                 continue;
  122.             }
  123.        
  124.             tmp1.x = vec4(dot(vec4(tmp0.xyzx.xyz, 1.0), vc[264])).x;
  125.             cc0.x = vec4(lessThan(vc[437].xxxx, vc[437].yyyy)).x;
  126.             tmp3.xyz = vc[437].xxxx.xyz;
  127.             tmp0.w = vc[437].xxxx.w;
  128.        
  129.             if(any(equal(cc0.xxxx, vec4(0., 0., 0., 0.).xxxx)))
  130.             {
  131.                 jump_position = 4;
  132.                 continue;
  133.             }
  134.            
  135.             tmp2.w = vc[437].xxxx.w;
  136.         }
  137.        
  138.         if (jump_position <= 1)
  139.         {
  140.             a0 = ivec4(tmp2.wwww);
  141.             tmp4.xyz = vc[464 + a0.x].xyzx.xyz;
  142.             tmp5.xyz = (-tmp4.xyzx + tmp0.xyzx).xyz;
  143.             tmp3.w = vec4(dot(tmp5.xyzx.xyz, tmp5.xyzx.xyz)).w;
  144.             tmp3.w = vec4(rsq_legacy(tmp3.wwww)).w;
  145.             tmp3.w = vec4((1.0 / tmp3.wwww)).w;
  146.             cc0.x = vec4(lessThan(tmp3.wwww, vc[437].zzzz)).x;
  147.             tmp5.xyz = vc[460 + a0.x].xyzx.xyz;
  148.             tmp6.xyz = vc[456 + a0.x].xyzx.xyz;
  149.            
  150.             if(any(lessThanEqual(cc0.xxxx, vec4(0., 0., 0., 0.).xxxx)))
  151.             {
  152.                 jump_position = 2;
  153.                 continue;
  154.             }
  155.        
  156.             {
  157.                 jump_position = 3;
  158.                 continue;
  159.             }
  160.            
  161.             tmp3.w = vc[437].xxxx.w;
  162.         }
  163.        
  164.         if (jump_position <= 2)
  165.         {
  166.             tmp4.w = (tmp6.yyyy * tmp3.wwww + tmp6.xxxx).w;
  167.             tmp4.xyz = (tmp4.xyzx + -tmp0.xyzx).xyz;
  168.             tmp5.w = (tmp6.zzzz * tmp3.wwww).w;
  169.             tmp3.w = (tmp5.wwww * tmp3.wwww + tmp4.wwww).w;
  170.             tmp4.w = vec4(dot(tmp4.xyzx.xyz, tmp4.xyzx.xyz)).w;
  171.             tmp3.w = vec4((1.0 / tmp3.wwww)).w;
  172.             cc0.x = vc[455].xxxx.x;
  173.             tmp4.w = vec4(rsq_legacy(tmp4.wwww)).w;
  174.             tmp3.w = min(tmp3.wwww, vc[437].wwww).w;
  175.             tmp4.xyz = (tmp4.wwww * tmp4.xyzx).xyz;
  176.             tmp4.x = vec4(dot(tmp4.xyzx.xyz, tmp2.xyzx.xyz)).x;
  177.             tmp4.y = max(tmp3.wwww, vc[437].xxxx).y;
  178.             tmp3.w = tmp4.xxxx.w;
  179.             if (notEqual(cc0.xxxx, vec4(0., 0., 0., 0.)).x) tmp3.w = abs(tmp4.xxxx).w;
  180.             tmp3.w = clamp(tmp3.wwww.w, 0.0, 1.0);
  181.             tmp3.w = (tmp3.wwww * tmp4.yyyy).w;
  182.         }
  183.        
  184.         if (jump_position <= 3)
  185.         {
  186.             cc0.y = vec4(lessThan(tmp2.wwww, vc[453].xxxx)).y;
  187.             tmp2.w = (vc[436].xxxx + tmp2.wwww).w;
  188.             cc0.x = vec4(lessThan(tmp2.wwww, vc[437].yyyy)).x;
  189.             if (equal(cc0.yyyy, vec4(0., 0., 0., 0.)).x) tmp3.w = vc[437].xxxx.w;
  190.             tmp3.xyz = (tmp5.xyzx * tmp3.wwww + tmp3.xyzx).xyz;
  191.        
  192.             if(any(notEqual(cc0.xxxx, vec4(0., 0., 0., 0.).xxxx)))
  193.             {
  194.                 jump_position = 1;
  195.                 continue;
  196.             }
  197.            
  198.             tmp0.w = max(tmp3.wwww, tmp0.wwww).w;
  199.         }
  200.        
  201.         if (jump_position <= 4)
  202.         {
  203.             tmp4.xyz = (vc[454].xyzx + -tmp3.xyzx).xyz;
  204.             tmp0.w = (vc[436].xxxx + -tmp0.wwww).w;
  205.             tmp3.xyz = (tmp0.wwww * tmp4.xyzx + tmp3.xyzx).xyz;
  206.        
  207.             {
  208.                 jump_position = 6;
  209.                 continue;
  210.             }
  211.            
  212.             tmp3.xyz = (tmp3.xyzx * in_diff_color.xyzx).xyz;
  213.         }
  214.        
  215.         if (jump_position <= 5)
  216.         {
  217.             tmp3.xyz = in_diff_color.xyzx.xyz;
  218.         }
  219.        
  220.         if (jump_position <= 6)
  221.         {
  222.             tmp4.xyz = (-vc[446].xyzx + tmp0.xyzx).xyz;
  223.             tmp0.w = vec4(dot(tmp4.xyzx.xyz, tmp4.xyzx.xyz)).w;
  224.             tmp0.w = vec4(rsq_legacy(tmp0.wwww)).w;
  225.             tmp0.w = vec4((1.0 / tmp0.wwww)).w;
  226.             cc0.x = vec4(lessThan(tmp0.wwww, vc[437].zzzz)).x;
  227.        
  228.             if(any(lessThanEqual(cc0.xxxx, vec4(0., 0., 0., 0.).xxxx)))
  229.             {
  230.                 jump_position = 7;
  231.                 continue;
  232.             }
  233.        
  234.             {
  235.                 jump_position = 8;
  236.                 continue;
  237.             }
  238.            
  239.             tmp0.x = vc[437].xxxx.x;
  240.         }
  241.        
  242.         if (jump_position <= 7)
  243.         {
  244.             tmp0.xyz = (vc[446].xyzx + -tmp0.xyzx).xyz;
  245.             tmp2.w = (tmp0.wwww * vc[444].zzzz).w;
  246.             tmp3.w = (tmp0.wwww * vc[444].yyyy + vc[444].xxxx).w;
  247.             tmp0.w = (tmp2.wwww * tmp0.wwww + tmp3.wwww).w;
  248.             tmp2.w = vec4(dot(tmp0.xyzx.xyz, tmp0.xyzx.xyz)).w;
  249.             tmp0.w = vec4((1.0 / tmp0.wwww)).w;
  250.             cc0.x = vc[455].xxxx.x;
  251.             tmp2.w = vec4(rsq_legacy(tmp2.wwww)).w;
  252.             tmp0.w = min(tmp0.wwww, vc[437].wwww).w;
  253.             tmp0.xyz = (tmp2.wwww * tmp0.xyzx).xyz;
  254.             tmp0.x = vec4(dot(tmp0.xyzx.xyz, tmp2.xyzx.xyz)).x;
  255.             tmp0.z = max(tmp0.wwww, vc[437].xxxx).z;
  256.             tmp0.y = tmp0.xxxx.y;
  257.             if (notEqual(cc0.xxxx, vec4(0., 0., 0., 0.)).x) tmp0.y = abs(tmp0.xxxx).y;
  258.             tmp0.x = clamp(tmp0.yyyy.x, 0.0, 1.0);
  259.             tmp0.x = (tmp0.xxxx * tmp0.zzzz).x;
  260.         }
  261.        
  262.         if (jump_position <= 8)
  263.         {
  264.             dst_reg0 = tmp1;
  265.             dst_reg1.xyz = clamp((tmp0.xxxx * vc[445].xyzx + tmp3.xyzx).xyz, 0.0, 1.0);
  266.             dst_reg7.xyz = in_tc0.xyzx.xyz;
  267.             tmp0.zw = vec4(dot(in_pos, vc[262])).zw;
  268.             tmp1.x = vec4(dot(in_pos, vc[257])).x;
  269.             tmp0.y = vec4(dot(in_pos, vc[261])).y;
  270.             tmp0.x = vec4(dot(in_pos, vc[260])).x;
  271.             tmp1.w = vc[439].xxxx.w;
  272.             tmp1.y = vc[443].xxxx.y;
  273.             tmp1.z = (-vc[439].xxxx + -tmp0.zzzz).z;
  274.             tmp1.y = (vc[442].xxxx + -tmp1.yyyy).y;
  275.             tmp1.w = (vc[438].xxxx + -tmp1.wwww).w;
  276.             tmp2.x = vec4((1.0 / vc[440].xxxx)).x;
  277.             tmp0.z = tmp0.wwww.z;
  278.             tmp0.x = vec4(dot(tmp0.xyzx.xyz, tmp0.xyzx.xyz)).x;
  279.             tmp0.y = vec4((1.0 / tmp1.wwww)).y;
  280.             dst_reg12.x = (tmp1.xxxx * tmp2.xxxx).x;
  281.             tmp0.x = vec4(rsq_legacy(tmp0.xxxx)).x;
  282.             tmp1.x = min(tmp1.zzzz, tmp1.wwww).x;
  283.             tmp0.z = max(tmp1.xxxx, vc[437].xxxx).z;
  284.             tmp2.x = vec4((1.0 / tmp0.xxxx)).x;
  285.             tmp1.x = (tmp0.zzzz * tmp0.yyyy).x;
  286.             tmp0.x = (-vc[443].xxxx + tmp2.xxxx).x;
  287.             dst_reg12.y = (vc[436].xxxx + -tmp1.xxxx).y;
  288.             tmp2.x = vec4((1.0 / tmp1.yyyy)).x;
  289.             tmp0.x = min(tmp0.xxxx, tmp1.yyyy).x;
  290.             tmp0.x = max(tmp0.xxxx, vc[437].xxxx).x;
  291.             tmp0.x = (tmp0.xxxx * tmp2.xxxx).x;
  292.             dst_reg9.x = (tmp0.xxxx * vc[441].xxxx).x;
  293.         }
  294.    
  295.         break;
  296.     }
  297. }
  298.  
  299. void main ()
  300. {
  301.     vec4 dst_reg0= vec4(0.0f, 0.0f, 0.0f, 1.0f);
  302.     vec4 dst_reg1= vec4(0.0, 0.0, 0.0, 0.0);
  303.     vec4 dst_reg7= vec4(0.0, 0.0, 0.0, 0.0);
  304.     vec4 dst_reg9= vec4(0.0, 0.0, 0.0, 0.0);
  305.     vec4 dst_reg12= vec4(0.0, 0.0, 0.0, 0.0);
  306.  
  307.     vs_main(dst_reg0, dst_reg1, dst_reg7, dst_reg9, dst_reg12);
  308.  
  309.     gl_Position = dst_reg0;
  310.     back_diff_color = dst_reg1;
  311.     tc0 = dst_reg7;
  312.     tc2 = dst_reg9;
  313.     tc5 = dst_reg12;
  314.     front_diff_color = dst_reg1;
  315.     gl_Position = gl_Position * scaleOffsetMat;
  316. }
RAW Paste Data