Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //!HOOK something
- //!BIND HOOKED
- vec4 hook() {
- int x = 0;
- vec4 c[21];
- for (int i=-2; i<=2; i++){
- int min=-2, max=2;
- if(i==-2 || i==2){ min=-1; max=1; }
- for (int j=min; j<=max; j++){
- c[x++] = HOOKED_texOff(vec2(i, j));
- }
- }
- vec2 g[21] = vec2[](vec2(0.000088, 0.015019), vec2(0.000451, 0.023792), vec2(0.000088, 0.015019),
- vec2(0.000088, 0.015019), vec2(0.019740, 0.059912), vec2(0.100843, 0.094907), vec2(0.019740, 0.059912), vec2(0.000088, 0.015019),
- vec2(0.000451, 0.023792), vec2(0.100843, 0.094907), vec2(0.0, 0.0), vec2(0.100843, 0.094907), vec2(0.000451, 0.023792),
- vec2(0.000088, 0.015019), vec2(0.019740, 0.059912), vec2(0.100843, 0.094907), vec2(0.019740, 0.059912), vec2(0.000088, 0.015019),
- vec2(0.000088, 0.015019), vec2(0.000451, 0.023792), vec2(0.000088, 0.015019));
- for (x=0; x<21; x++){
- if(x==10) continue;
- vec3 t2 = vec3(0);
- for (int i = 5; i>0; i--){
- t2.yz = vec2(t2.z) + vec2(-2.0,1.0);
- t2.x = 0.0;
- for (int j = 5; j>0; j--){
- t2.xw = vec2(t2.x) + vec2(1.0,-2.0);
- vec2 pos = t2.yw * HOOKED_pt + HOOKED_pos;
- c[x] = c[x] * textureLod(Weight?_raw, pos, 0.0);
- }
- }
- }
- vec2 r[21];
- r[10] = c[10].zw - vec2(0.5);
- vec2 w = (r[10].x>=0.0) ? vec2(r[10].x, 1.0) : vec2(c[10].z, 0.0);
- w.x = w.x * 64.0 + 0.5;
- float f = w.x - fract(w.x);
- w.x = (-abs(f) >= 0) ? 1.0 : 0.0;
- vec2 w2;
- for (x=0; x<21; x++){
- if(x==10) continue;
- r[x].x = c[x].z - 0.5;
- w2 = (r[x].x >= 0) ? vec2(1.0,-0.5) : vec2(0);
- w2.y = w2.y + c[x].z;
- w2.y = w2.y * 64.0 + 0.5;
- w2.y = w2.y - fract(w2.y);
- w2.y = f - w2.y;
- w2.y = (-abs(w2.y) >= 0) ? 1.0 : 0.0;
- w2.xy = w.yx + w2.xy;
- w.y = ((-w2.y) >= 0) ? w.y : w2.x;
- }
- w.y = clamp(w.y*0.25, 0.0, 1.0);
- for (x=0; x<21; x++){
- c[x].xy = (r[x].x >= 0) ? ( (x==10) ? vec2(c[x].y, f) : c[x].yz ) : vec2(mix(c[x].y, c[x].x, w.y), 0.0);
- }
- float sum=0.0;
- for (x=0; x<21; x++)
- sum += c[x].x;
- float ms0 = sum * -0.047619 + c[10].x;
- float ms = pow(ms0, 2.0);
- for (x=1; x<21; x++){
- if(x==10) continue;
- ms += pow(sum * -0.047619 + c[x].x, 2.0);
- }
- ms = sqrt(ms * 0.047619);
- vec3 p = vec3(0.150342, c[10].x * 0.150342, (0.5 - c[10].y >= 0) ? 0.0 : 1.0);
- if(abs(ms0) < ms){
- float h = max(-ms, -0.025490);
- ms = abs(c[0].x-c[10].x) + h;
- vec4 temp;
- temp.wx = (0.5 - c[0].y >= 0) ? vec2(g[0].x, 0.150430) : vec2(g[0].y, 0.165361);
- temp.y = c[0].x * temp.w + p.y;
- temp.z = (0.5 - c[0].y >= 0) ? p.z : (0.5 - c[10].y >= 0) ? 1.0 : 2.0;
- p = (ms >= 0) ? p : temp.xyz;
- for (x=1; x<21; x++){
- if(x==10) continue;
- ms = abs(c[x].x-c[10].x) + h;
- temp.x = (0.5 - c[x].y >= 0) ? g[x].x : g[x].y;
- temp.y = c[x].x * temp.x + p.y;
- temp.x = p.x + temp.x;
- temp.z = (0.5 - c[x].y >= 0) ? p.z : p.z + 1.0;
- p = (ms >= 0) ? p : temp;
- }
- }
- float pr = 6.0 - p.z;
- float l = (pr >= 0) ? c[10].x : (1.0 / p.x) * p.y;
- float dn = (pr >= 0) ? 0.0 : (r[10].y >= 0) ? 0.0 : 1.0;
- if (dn != -dn){
- l = 0.5 * p.x * c[10].w * (texture(Random?_tex, Random?_pos).x - 0.5) + l;
- }
- vec4 Out = vec4(l, texture(Chroma?_tex, Chroma?_pos).yz - vec2(0.5), c[10].w);
- //Output0.x = dot(vec2(1.0, 1.5748), vec2(Out.xzzw)) + 0.0;
- //Output0.y = dot(vec3(1.0, -0.187324, -0.468124), Out.xyz);
- //Output0.z = dot(vec2(1.0, 1.8556), vec2(Out)) + 0.0;
- //Output0.w = 0.0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement