kernel Ripped3 { parameter float time; parameter float coef0; parameter float coef1; parameter float coef2; input image4 source; output pixel4 result; void evaluatePixel() { const float width = 341.0; const float height = 576.0; float2 coords = outCoord(); float2 coords2 = float2(coords.x-1.0, coords.y+1.0); pixel4 pxy; float2 sampleXY = float2(coords.x, time*10.0); float2 sampleWHT = float2(time*width, time*height); float n = cos(coords.x)*coef0; pixel4 nColor2 = sample(source, sampleXY); pixel4 nColor6 = sample(source, sampleWHT); pxy = pixel4(n-nColor6.r+nColor2.r, n-nColor6.g+nColor2.g, n-nColor6.b+nColor2.b, 1.0); float fX = pow(cos(coords.x*5.0)*coef0*10.0, sin(coords.x)*5.0); float fX2 = pow(coords.y, 3.0)*coef0*10.0 + coef1*20.0*pow(coords.y, 2.0) + coef2*40.0*coords.y - 80.0; float fX3 = log(coords.x)*coef0*coef1*coef2; float fZ = fX * fX2 / fX3; float m = sin(coords.x)*coef0 + cos(coords.y)*coef1 + tan(time)*coef2; float j = sin(coords.x)*coef2 + cos(coords.y)*coef0 + tan(time)*coef1; pixel4 fColor = sample(source, coords*j); pixel4 fColor2 = sample(source, coords*m); if(fZ*time > coords.y){ pxy = fColor; }else if(fZ+time*width > coords.x){ pxy = fColor2; }else{ pxy += pxy; } result = pxy; } }