// gray offset // (c) 2005 Holger Grahn float time=0; float sampleDist = 1.0f/512.0f; // distance one pixel in u/v float displaceAmount=0.2; sampler2D image : register(s0); float4 main( float4 Pos : POSITION, float2 texCoord: TEXCOORD0) : COLOR { float4 img = tex2D(image, texCoord); // convert to gray float2 sum; sum.x = dot(img, float4(0.90f, 0.4, 0.2f, 0.0f))-0.5; sum.y = dot(img, float4(0.2f, 0.4f, 0.9f, 1.0f))-0.5; float fac=displaceAmount; //fac *= pow(sin(time*3.1414)-0.5,1.7); fac *= pow(time,1.7); //img = tex2D(image, float2(texCoord.x+exp(fac*sum.x),texCoord.y+fac*sum.y)); img = tex2D(image, float2(texCoord.x+(fac*sum.x),texCoord.y+fac*sum.y)); return img; }