Advertisement
Conmanx360

Untitled

Jul 4th, 2018
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.46 KB | None | 0 0
  1. #version 440
  2. #extension GL_ARB_cull_distance : enable
  3. #extension GL_ARB_gpu_shader5 : enable
  4. #extension GL_ARB_shader_atomic_counters : enable
  5. #extension GL_ARB_shader_bit_encoding : enable
  6. #extension GL_ARB_shader_image_load_store : enable
  7. #extension GL_ARB_shader_image_size : enable
  8. #extension GL_ARB_shader_storage_buffer_object : enable
  9. #extension GL_ARB_shader_texture_image_samples : enable
  10. #extension GL_ARB_shading_language_420pack : enable
  11. #extension GL_ARB_shading_language_packing : enable
  12. #extension GL_ARB_texture_cube_map_array : enable
  13. #extension GL_ARB_texture_gather : enable
  14. #extension GL_ARB_texture_query_levels : enable
  15. #extension GL_ARB_uniform_buffer_object : enable
  16. #extension GL_ARB_viewport_array : enable
  17. #extension GL_EXT_gpu_shader4 : enable
  18. #extension GL_EXT_texture_array : enable
  19. #extension GL_ARB_draw_instanced : enable
  20. #extension GL_ARB_explicit_attrib_location : enable
  21. uniform vec4 vs_c[256];
  22. vec4 vs_out[12];
  23. vec4 R0;
  24. vec4 R1;
  25. vec4 R2;
  26. vec4 R3;
  27. vec4 R4;
  28. vec4 R5;
  29. vec4 R6;
  30. vec4 R7;
  31. vec4 R30;
  32. vec4 R31;
  33. vec4 tmp0;
  34. vec4 tmp1;
  35. const vec4 vs_lc8 = vec4(-1.50000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00);
  36. const vec4 vs_lc6 = vec4(0.00000000e+00, 3.17500000e+01, 1.44269502e+00, 1.00000005e-03);
  37. const vec4 vs_lc5 = vec4(5.52486209e-03, 3.05240974e-05, 1.01117313e+00, 1.00555551e+00);
  38. const vec4 vs_lc4 = vec4(2.00000000e+00, -1.00000000e+00, 3.27670000e+04, 1.00000000e+00);
  39. layout(location = 0) in vec4 vs_in0; /* position */
  40. layout(location = 1) in vec4 vs_in1; /* texcoord */
  41. layout(location = 2) in vec4 vs_in2; /* Tangent */
  42. layout(location = 3) in vec4 vs_in3; /* texcoord3 */
  43. layout(location = 4) in vec4 vs_in4; /* texcoord4 */
  44. layout(location = 5) in vec4 vs_in5; /* texcoord5 */
  45. layout(location = 6) in vec4 vs_in6; /* texcoord6 */
  46. layout(location = 7) in vec4 vs_in7; /* texcoord7 */
  47. layout(location = 8) in vec4 vs_in8; /* binormal */
  48. void setup_vs_output(in vec4[12]);
  49. uniform vec4 pos_fixup;
  50. void main()
  51. {
  52. R0.xyzw = ((vs_in3.xyzw * vs_lc4.xxxx) + vs_lc4.yyyy);
  53. R0.w = (R0.w * vs_lc6.y);
  54. R0.w = (exp2(R0.w));
  55. vs_out[9].xyz = (R0.www * R0.xyz);
  56. R0.x = ((-vs_in8.x < vs_in8.x) ? 1.0 : 0.0);
  57. R0.y = ((vs_in8.x < -vs_in8.x) ? 1.0 : 0.0);
  58. R0.x = (-R0.y + R0.x);
  59. R0.y = (vs_lc4.z * vs_in8.x);
  60. R0.yz = (abs(R0.yy) * vs_lc5.xy);
  61. R0.yz = (fract(R0.yz));
  62. R0.yz = ((R0.yz * vs_lc4.xx) + vs_lc4.yy);
  63. R1.xz = (R0.yz * vs_lc5.zw);
  64. R0.yz = (R1.xz * R1.xz);
  65. R0.y = (R0.z + R0.y);
  66. R0.y = (-R0.y + vs_lc4.w);
  67. R0.y = (max(R0.y, vs_lc6.x));
  68. R0.y = (inversesqrt(abs(R0.y)));
  69. R0.y = (1.0 / R0.y);
  70. R1.y = (R0.y * R0.x);
  71. R0.z = (dot(R1.xyz, vs_c[18].xyz));
  72. R0.x = (dot(R1.xyz, vs_c[16].xyz));
  73. R0.y = (dot(R1.xyz, vs_c[17].xyz));
  74. R0.w = (dot(R0.xyz, R0.xyz));
  75. R0.w = (inversesqrt(abs(R0.w)));
  76. vs_out[4].xyz = (R0.www * R0.xyz);
  77. R0.xyz = (vs_in2.xyz);
  78. R0.w = (vs_in8.y);
  79. R2.z = (dot(R0.xyz, vs_c[18].xyz));
  80. R3.xyz = (R1.yzx * R0.zxy);
  81. R1.xyz = ((R0.yzx * R1.zxy) + -R3.xyz);
  82. R1.xyz = (R0.www * R1.xyz);
  83. R3.z = (dot(R1.xyz, vs_c[18].xyz));
  84. R3.x = (dot(R1.xyz, vs_c[16].xyz));
  85. R3.y = (dot(R1.xyz, vs_c[17].xyz));
  86. R0.w = (dot(R3.xyz, R3.xyz));
  87. R0.w = (inversesqrt(abs(R0.w)));
  88. vs_out[5].xyz = (R0.www * R3.xyz);
  89. R2.x = (dot(R0.xyz, vs_c[16].xyz));
  90. R2.y = (dot(R0.xyz, vs_c[17].xyz));
  91. R0.x = (dot(R2.xyz, R2.xyz));
  92. R0.x = (inversesqrt(abs(R0.x)));
  93. vs_out[3].xyz = (R0.xxx * R2.xyz);
  94. R0.xyzw = ((vs_in4.xyzw * vs_lc4.xxxx) + vs_lc4.yyyy);
  95. R0.w = (R0.w * vs_lc6.y);
  96. R0.w = (exp2(R0.w));
  97. R0.xyz = (R0.www * R0.xyz);
  98. vs_out[6].x = (R0.x);
  99. vs_out[7].x = (R0.y);
  100. vs_out[8].x = (R0.z);
  101. R0.w = (vs_lc4.w);
  102. R1.w = (vs_lc4.w);
  103. R2.xyz = (vs_c[12].xyz);
  104. R1.xyz = ((vs_in0.xyz * R2.xyz) + vs_c[13].xyz);
  105. R0.z = (dot(R1.xyzw, vs_c[18].xyzw));
  106. R0.x = (dot(R1.xyzw, vs_c[16].xyzw));
  107. R0.y = (dot(R1.xyzw, vs_c[17].xyzw));
  108. /* Just commenting out the two calculations that use this variable,
  109. * vs_c[7] is enough to fix the problem. So this is obviously the main
  110. * cause of the issue. Now, how this variable interacts with others down
  111. * the line is what I have to figure out... */
  112. /* Side note, what if this has to do with the other weird stuff like in
  113. * narrows where the wall turns black until you face it directly or get close?
  114. * Somehow, once the z value turns negative, everything is messed up. */
  115. R1.xyz = (-R0.xyz + vs_c[7].xyz);
  116. vs_out[2].xyz = (R1.xyz);
  117. R1.w = (dot(R0.xyzw, vs_c[3].xyzw));
  118. vs_out[4].w = (R1.w);
  119. R2.xy = ((vs_in1.xy * vs_c[14].xy) + vs_c[14].zw);
  120. R3.x = (vs_lc6.x);
  121. if (vs_c[234].w < R3.x) {
  122. R3.xyz = (vs_lc4.www);
  123. R2.zw = (vs_lc6.xx);
  124. R3.w = (vs_lc6.x);
  125. } else {
  126. R4.x = (R0.z + -vs_c[236].w);
  127. R4.x = (max(R4.x, vs_lc6.x));
  128. R4.y = (R4.x * vs_lc6.z);
  129. R4.z = (1.0 / vs_c[238].w);
  130. R4.w = (R4.z * -R4.y);
  131. R4.w = (exp2(R4.w));
  132. R5.w = (vs_c[236].w);
  133. R5.x = (-R5.w + vs_c[7].z); // This uses the negative z value directly..
  134. R5.x = (max(R5.x, vs_lc6.x)); //vs_lc6.x is 0. If R5.x is less than 0..
  135. //then R5.x will become 0.
  136. R5.y = (R5.x * vs_lc6.z); //Meaning this is now 0.
  137. R4.z = (R4.z * -R5.y); //Meaning this too, is 0.
  138. R4.z = (exp2(R4.z)); // and this is 0.
  139. R4.w = (-R4.w + R4.z); //
  140. R5.z = (dot(R1.xyz, R1.xyz));
  141. R5.z = (inversesqrt(abs(R5.z)));
  142. R5.w = (1.0 / R5.z);
  143. R1.xyz = (R1.xyz * R5.zzz);
  144. R1.x = (dot(R1.xyz, vs_c[233].xyz));
  145. R1.y = (R5.w + vs_c[233].w);
  146. R1.y = (max(R1.y, vs_lc6.x));
  147. R1.y = (min(R1.y, vs_c[234].w));
  148. R6.y = (R1.y * R4.z);
  149. R1.z = (R1.y * -R4.w);
  150. R1.z = (R1.z * vs_c[238].w);
  151. R4.x = (-R4.x + R5.x);
  152. R4.z = (1.0 / R4.x);
  153. R7.y = (R1.z * R4.z);
  154. R1.z = (1.0 / vs_c[237].w);
  155. R4.y = (R1.z * -R4.y);
  156. R4.y = (exp2(R4.y));
  157. R1.z = (R1.z * -R5.y);
  158. R1.z = (exp2(R1.z));
  159. R4.y = (-R4.y + R1.z);
  160. R4.y = (R1.y * -R4.y);
  161. R4.y = (R4.y * vs_c[237].w);
  162. R7.x = (R4.z * R4.y);
  163. R6.x = (R1.y * R1.z);
  164. R1.y = (R4.x * R4.x);
  165. R1.y = ((vs_lc6.w < R1.y) ? 1.0 : 0.0);
  166. R4.xy = (mix(R6.xy, R7.xy, R1.yy));
  167. R4.w = (vs_c[235].w);
  168. R1.y = ((vs_c[15].x * R1.x) + R4.w);
  169. R4.z = (vs_lc8.x == 0.0 ? 1.0 : pow(abs(R1.y), vs_lc8.x));
  170. R5.xyz = (R4.xxx * vs_c[236].xyz);
  171. R4.xyw = ((vs_c[235].xyz * R4.yyy) + R5.xyz);
  172. R3.x = (exp2(-R4.x));
  173. R3.y = (exp2(-R4.y));
  174. R3.z = (exp2(-R4.w));
  175. R1.x = ((R1.x * R1.x) + vs_lc4.w);
  176. R4.xyz = (R4.zzz * vs_c[238].xyz);
  177. R1.xyz = ((vs_c[237].xyz * R1.xxx) + R4.xyz);
  178. R1.xyz = (R1.xyz * vs_c[234].xyz);
  179. R4.xyz = (-R3.xyz + vs_lc4.www);
  180. R1.xyz = (R1.xyz * R4.xyz);
  181. R2.zw = (R1.xy);
  182. R3.w = (R1.z);
  183. }
  184. vs_out[1].xyzw = (R2.xyzw);
  185. vs_out[10].xyzw = (R3.xyzw);
  186. vs_out[0].x = (dot(R0.xyzw, vs_c[0].xyzw));
  187. vs_out[0].y = (dot(R0.xyzw, vs_c[1].xyzw));
  188. R31.z = (dot(R0.xyzw, vs_c[2].xyzw));
  189. R30.w = (R1.w);
  190. R30.x = ((vs_c[250].x * R30.w) + -vs_c[250].y);
  191. R30.x = ((R30.x * vs_c[250].z) + -R31.z);
  192. vs_out[0].z = ((vs_c[250].w * R30.x) + R31.z);
  193. vs_out[0].w = (R30.w);
  194. R0.xyzw = ((vs_in5.xyzw * vs_lc4.xxxx) + vs_lc4.yyyy);
  195. R0.w = (R0.w * vs_lc6.y);
  196. R0.w = (exp2(R0.w));
  197. R0.xyz = (R0.www * R0.xyz);
  198. vs_out[6].y = (R0.x);
  199. vs_out[7].y = (R0.y);
  200. vs_out[8].y = (R0.z);
  201. R0.xyzw = ((vs_in6.xyzw * vs_lc4.xxxx) + vs_lc4.yyyy);
  202. R0.w = (R0.w * vs_lc6.y);
  203. R0.w = (exp2(R0.w));
  204. R0.xyz = (R0.www * R0.xyz);
  205. vs_out[6].z = (R0.x);
  206. vs_out[7].z = (R0.y);
  207. vs_out[8].z = (R0.z);
  208. R0.xyzw = ((vs_in7.xyzw * vs_lc4.xxxx) + vs_lc4.yyyy);
  209. R0.w = (R0.w * vs_lc6.y);
  210. R0.w = (exp2(R0.w));
  211. R0.xyz = (R0.www * R0.xyz);
  212. vs_out[6].w = (R0.x);
  213. vs_out[7].w = (R0.y);
  214. vs_out[8].w = (R0.z);
  215. setup_vs_output(vs_out);
  216. gl_Position.y = gl_Position.y * pos_fixup.y;
  217. gl_Position.xy += pos_fixup.zw * gl_Position.ww;
  218. gl_Position.z = gl_Position.z * 2.0 - gl_Position.w;
  219. }
  220.  
  221. #version 440
  222. out shader_in_out { vec4 reg[10]; } shader_out;
  223. void setup_vs_output(in vec4 outputs[12])
  224. {
  225. gl_Position.xyzw = outputs[0].xyzw;
  226. shader_out.reg[0].zw = outputs[1].zw;
  227. shader_out.reg[1].xyz = outputs[2].xyz;
  228. shader_out.reg[2].xyzw = outputs[6].xyzw;
  229. shader_out.reg[3].xyzw = outputs[7].xyzw;
  230. shader_out.reg[4].xyzw = outputs[8].xyzw;
  231. shader_out.reg[5].xyz = outputs[9].xyz;
  232. shader_out.reg[6].xyzw = outputs[10].xyzw;
  233. shader_out.reg[0].xy = vec2(0.0);
  234. shader_out.reg[1].w = 0.0;
  235. shader_out.reg[5].w = 0.0;
  236. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement