Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #version 440
- #extension GL_ARB_cull_distance : enable
- #extension GL_ARB_gpu_shader5 : enable
- #extension GL_ARB_shader_atomic_counters : enable
- #extension GL_ARB_shader_bit_encoding : enable
- #extension GL_ARB_shader_image_load_store : enable
- #extension GL_ARB_shader_image_size : enable
- #extension GL_ARB_shader_storage_buffer_object : enable
- #extension GL_ARB_shader_texture_image_samples : enable
- #extension GL_ARB_shading_language_420pack : enable
- #extension GL_ARB_shading_language_packing : enable
- #extension GL_ARB_texture_cube_map_array : enable
- #extension GL_ARB_texture_gather : enable
- #extension GL_ARB_texture_query_levels : enable
- #extension GL_ARB_uniform_buffer_object : enable
- #extension GL_ARB_viewport_array : enable
- #extension GL_EXT_gpu_shader4 : enable
- #extension GL_EXT_texture_array : enable
- #extension GL_ARB_draw_instanced : enable
- #extension GL_ARB_explicit_attrib_location : enable
- uniform vec4 vs_c[256];
- vec4 vs_out[12];
- vec4 R0;
- vec4 R1;
- vec4 R2;
- vec4 R3;
- vec4 R4;
- vec4 R5;
- vec4 R6;
- vec4 R7;
- vec4 R30;
- vec4 R31;
- vec4 tmp0;
- vec4 tmp1;
- const vec4 vs_lc8 = vec4(-1.50000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00);
- const vec4 vs_lc6 = vec4(0.00000000e+00, 3.17500000e+01, 1.44269502e+00, 1.00000005e-03);
- const vec4 vs_lc5 = vec4(5.52486209e-03, 3.05240974e-05, 1.01117313e+00, 1.00555551e+00);
- const vec4 vs_lc4 = vec4(2.00000000e+00, -1.00000000e+00, 3.27670000e+04, 1.00000000e+00);
- layout(location = 0) in vec4 vs_in0; /* position */
- layout(location = 1) in vec4 vs_in1; /* texcoord */
- layout(location = 2) in vec4 vs_in2; /* Tangent */
- layout(location = 3) in vec4 vs_in3; /* texcoord3 */
- layout(location = 4) in vec4 vs_in4; /* texcoord4 */
- layout(location = 5) in vec4 vs_in5; /* texcoord5 */
- layout(location = 6) in vec4 vs_in6; /* texcoord6 */
- layout(location = 7) in vec4 vs_in7; /* texcoord7 */
- layout(location = 8) in vec4 vs_in8; /* binormal */
- void setup_vs_output(in vec4[12]);
- uniform vec4 pos_fixup;
- void main()
- {
- R0.xyzw = ((vs_in3.xyzw * vs_lc4.xxxx) + vs_lc4.yyyy);
- R0.w = (R0.w * vs_lc6.y);
- R0.w = (exp2(R0.w));
- vs_out[9].xyz = (R0.www * R0.xyz);
- R0.x = ((-vs_in8.x < vs_in8.x) ? 1.0 : 0.0);
- R0.y = ((vs_in8.x < -vs_in8.x) ? 1.0 : 0.0);
- R0.x = (-R0.y + R0.x);
- R0.y = (vs_lc4.z * vs_in8.x);
- R0.yz = (abs(R0.yy) * vs_lc5.xy);
- R0.yz = (fract(R0.yz));
- R0.yz = ((R0.yz * vs_lc4.xx) + vs_lc4.yy);
- R1.xz = (R0.yz * vs_lc5.zw);
- R0.yz = (R1.xz * R1.xz);
- R0.y = (R0.z + R0.y);
- R0.y = (-R0.y + vs_lc4.w);
- R0.y = (max(R0.y, vs_lc6.x));
- R0.y = (inversesqrt(abs(R0.y)));
- R0.y = (1.0 / R0.y);
- R1.y = (R0.y * R0.x);
- R0.z = (dot(R1.xyz, vs_c[18].xyz));
- R0.x = (dot(R1.xyz, vs_c[16].xyz));
- R0.y = (dot(R1.xyz, vs_c[17].xyz));
- R0.w = (dot(R0.xyz, R0.xyz));
- R0.w = (inversesqrt(abs(R0.w)));
- vs_out[4].xyz = (R0.www * R0.xyz);
- R0.xyz = (vs_in2.xyz);
- R0.w = (vs_in8.y);
- R2.z = (dot(R0.xyz, vs_c[18].xyz));
- R3.xyz = (R1.yzx * R0.zxy);
- R1.xyz = ((R0.yzx * R1.zxy) + -R3.xyz);
- R1.xyz = (R0.www * R1.xyz);
- R3.z = (dot(R1.xyz, vs_c[18].xyz));
- R3.x = (dot(R1.xyz, vs_c[16].xyz));
- R3.y = (dot(R1.xyz, vs_c[17].xyz));
- R0.w = (dot(R3.xyz, R3.xyz));
- R0.w = (inversesqrt(abs(R0.w)));
- vs_out[5].xyz = (R0.www * R3.xyz);
- R2.x = (dot(R0.xyz, vs_c[16].xyz));
- R2.y = (dot(R0.xyz, vs_c[17].xyz));
- R0.x = (dot(R2.xyz, R2.xyz));
- R0.x = (inversesqrt(abs(R0.x)));
- vs_out[3].xyz = (R0.xxx * R2.xyz);
- R0.xyzw = ((vs_in4.xyzw * vs_lc4.xxxx) + vs_lc4.yyyy);
- R0.w = (R0.w * vs_lc6.y);
- R0.w = (exp2(R0.w));
- R0.xyz = (R0.www * R0.xyz);
- vs_out[6].x = (R0.x);
- vs_out[7].x = (R0.y);
- vs_out[8].x = (R0.z);
- R0.w = (vs_lc4.w);
- R1.w = (vs_lc4.w);
- R2.xyz = (vs_c[12].xyz);
- R1.xyz = ((vs_in0.xyz * R2.xyz) + vs_c[13].xyz);
- R0.z = (dot(R1.xyzw, vs_c[18].xyzw));
- R0.x = (dot(R1.xyzw, vs_c[16].xyzw));
- R0.y = (dot(R1.xyzw, vs_c[17].xyzw));
- /* Just commenting out the two calculations that use this variable,
- * vs_c[7] is enough to fix the problem. So this is obviously the main
- * cause of the issue. Now, how this variable interacts with others down
- * the line is what I have to figure out... */
- /* Side note, what if this has to do with the other weird stuff like in
- * narrows where the wall turns black until you face it directly or get close?
- * Somehow, once the z value turns negative, everything is messed up. */
- R1.xyz = (-R0.xyz + vs_c[7].xyz);
- vs_out[2].xyz = (R1.xyz);
- R1.w = (dot(R0.xyzw, vs_c[3].xyzw));
- vs_out[4].w = (R1.w);
- R2.xy = ((vs_in1.xy * vs_c[14].xy) + vs_c[14].zw);
- R3.x = (vs_lc6.x);
- if (vs_c[234].w < R3.x) {
- R3.xyz = (vs_lc4.www);
- R2.zw = (vs_lc6.xx);
- R3.w = (vs_lc6.x);
- } else {
- R4.x = (R0.z + -vs_c[236].w);
- R4.x = (max(R4.x, vs_lc6.x));
- R4.y = (R4.x * vs_lc6.z);
- R4.z = (1.0 / vs_c[238].w);
- R4.w = (R4.z * -R4.y);
- R4.w = (exp2(R4.w));
- R5.w = (vs_c[236].w);
- R5.x = (-R5.w + vs_c[7].z); // This uses the negative z value directly..
- R5.x = (max(R5.x, vs_lc6.x)); //vs_lc6.x is 0. If R5.x is less than 0..
- //then R5.x will become 0.
- R5.y = (R5.x * vs_lc6.z); //Meaning this is now 0.
- R4.z = (R4.z * -R5.y); //Meaning this too, is 0.
- R4.z = (exp2(R4.z)); // and this is 0.
- R4.w = (-R4.w + R4.z); //
- R5.z = (dot(R1.xyz, R1.xyz));
- R5.z = (inversesqrt(abs(R5.z)));
- R5.w = (1.0 / R5.z);
- R1.xyz = (R1.xyz * R5.zzz);
- R1.x = (dot(R1.xyz, vs_c[233].xyz));
- R1.y = (R5.w + vs_c[233].w);
- R1.y = (max(R1.y, vs_lc6.x));
- R1.y = (min(R1.y, vs_c[234].w));
- R6.y = (R1.y * R4.z);
- R1.z = (R1.y * -R4.w);
- R1.z = (R1.z * vs_c[238].w);
- R4.x = (-R4.x + R5.x);
- R4.z = (1.0 / R4.x);
- R7.y = (R1.z * R4.z);
- R1.z = (1.0 / vs_c[237].w);
- R4.y = (R1.z * -R4.y);
- R4.y = (exp2(R4.y));
- R1.z = (R1.z * -R5.y);
- R1.z = (exp2(R1.z));
- R4.y = (-R4.y + R1.z);
- R4.y = (R1.y * -R4.y);
- R4.y = (R4.y * vs_c[237].w);
- R7.x = (R4.z * R4.y);
- R6.x = (R1.y * R1.z);
- R1.y = (R4.x * R4.x);
- R1.y = ((vs_lc6.w < R1.y) ? 1.0 : 0.0);
- R4.xy = (mix(R6.xy, R7.xy, R1.yy));
- R4.w = (vs_c[235].w);
- R1.y = ((vs_c[15].x * R1.x) + R4.w);
- R4.z = (vs_lc8.x == 0.0 ? 1.0 : pow(abs(R1.y), vs_lc8.x));
- R5.xyz = (R4.xxx * vs_c[236].xyz);
- R4.xyw = ((vs_c[235].xyz * R4.yyy) + R5.xyz);
- R3.x = (exp2(-R4.x));
- R3.y = (exp2(-R4.y));
- R3.z = (exp2(-R4.w));
- R1.x = ((R1.x * R1.x) + vs_lc4.w);
- R4.xyz = (R4.zzz * vs_c[238].xyz);
- R1.xyz = ((vs_c[237].xyz * R1.xxx) + R4.xyz);
- R1.xyz = (R1.xyz * vs_c[234].xyz);
- R4.xyz = (-R3.xyz + vs_lc4.www);
- R1.xyz = (R1.xyz * R4.xyz);
- R2.zw = (R1.xy);
- R3.w = (R1.z);
- }
- vs_out[1].xyzw = (R2.xyzw);
- vs_out[10].xyzw = (R3.xyzw);
- vs_out[0].x = (dot(R0.xyzw, vs_c[0].xyzw));
- vs_out[0].y = (dot(R0.xyzw, vs_c[1].xyzw));
- R31.z = (dot(R0.xyzw, vs_c[2].xyzw));
- R30.w = (R1.w);
- R30.x = ((vs_c[250].x * R30.w) + -vs_c[250].y);
- R30.x = ((R30.x * vs_c[250].z) + -R31.z);
- vs_out[0].z = ((vs_c[250].w * R30.x) + R31.z);
- vs_out[0].w = (R30.w);
- R0.xyzw = ((vs_in5.xyzw * vs_lc4.xxxx) + vs_lc4.yyyy);
- R0.w = (R0.w * vs_lc6.y);
- R0.w = (exp2(R0.w));
- R0.xyz = (R0.www * R0.xyz);
- vs_out[6].y = (R0.x);
- vs_out[7].y = (R0.y);
- vs_out[8].y = (R0.z);
- R0.xyzw = ((vs_in6.xyzw * vs_lc4.xxxx) + vs_lc4.yyyy);
- R0.w = (R0.w * vs_lc6.y);
- R0.w = (exp2(R0.w));
- R0.xyz = (R0.www * R0.xyz);
- vs_out[6].z = (R0.x);
- vs_out[7].z = (R0.y);
- vs_out[8].z = (R0.z);
- R0.xyzw = ((vs_in7.xyzw * vs_lc4.xxxx) + vs_lc4.yyyy);
- R0.w = (R0.w * vs_lc6.y);
- R0.w = (exp2(R0.w));
- R0.xyz = (R0.www * R0.xyz);
- vs_out[6].w = (R0.x);
- vs_out[7].w = (R0.y);
- vs_out[8].w = (R0.z);
- setup_vs_output(vs_out);
- gl_Position.y = gl_Position.y * pos_fixup.y;
- gl_Position.xy += pos_fixup.zw * gl_Position.ww;
- gl_Position.z = gl_Position.z * 2.0 - gl_Position.w;
- }
- #version 440
- out shader_in_out { vec4 reg[10]; } shader_out;
- void setup_vs_output(in vec4 outputs[12])
- {
- gl_Position.xyzw = outputs[0].xyzw;
- shader_out.reg[0].zw = outputs[1].zw;
- shader_out.reg[1].xyz = outputs[2].xyz;
- shader_out.reg[2].xyzw = outputs[6].xyzw;
- shader_out.reg[3].xyzw = outputs[7].xyzw;
- shader_out.reg[4].xyzw = outputs[8].xyzw;
- shader_out.reg[5].xyz = outputs[9].xyz;
- shader_out.reg[6].xyzw = outputs[10].xyzw;
- shader_out.reg[0].xy = vec2(0.0);
- shader_out.reg[1].w = 0.0;
- shader_out.reg[5].w = 0.0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement