@@ -96,14 +96,9 @@ this.createjs = this.createjs||{};
9696 "uniform vec2 pixelAdjustment;" +
9797
9898 "void main(void) {" +
99- "vec4 dispSample = texture2D(" +
100- "uDudvSampler, " +
101- "vTextureCoord" +
102- ");" +
103- "gl_FragColor = texture2D(" +
104- "uSampler, " +
105- "vTextureCoord + (dispSample.xy-0.5)*fPower*pixelAdjustment" +
106- ");" +
99+ "vec4 dudvValue = texture2D(uDudvSampler, vTextureCoord);" +
100+ "vec2 sampleOffset = mix(vec2(0.0), dudvValue.rg-0.5, dudvValue.a) * (fPower*pixelAdjustment);" +
101+ "gl_FragColor = texture2D(uSampler, vTextureCoord + sampleOffset);" +
107102 "}"
108103 ) ;
109104
@@ -166,14 +161,15 @@ this.createjs = this.createjs||{};
166161 var dudvOffset , dudvPixel ;
167162
168163 for ( var i = 0 ; i < height ; i ++ ) {
169- offset = i * width ;
170- dudvOffset = ( ( i * ( width / dudvWidth ) ) * dudvWidth ) | 0 ;
164+ offset = i * width ;
165+ dudvOffset = ( ( i * ( dudvHeight / height ) ) | 0 ) * dudvWidth ;
171166 for ( var j = 0 ; j < width ; j ++ ) {
172- pixel = ( offset + j ) * 4 ;
173- dudvPixel = ( dudvOffset + ( ( j * ( height / dudvHeight ) ) | 0 ) ) * 4 ;
167+ pixel = ( offset + j ) * 4 ;
168+ dudvPixel = ( dudvOffset + ( ( j * ( dudvWidth / width ) ) | 0 ) ) * 4 ;
174169
175- var xDelta = ( ( ( dudvPixels [ dudvPixel ] - 128 ) / 128 ) * this . distance ) | 0 ;
176- var yDelta = ( ( ( dudvPixels [ dudvPixel + 1 ] - 128 ) / 128 ) * this . distance ) | 0 ;
170+ var deltaPower = dudvPixels [ dudvPixel + 3 ] / 255 ;
171+ var xDelta = ( ( ( ( dudvPixels [ dudvPixel ] - 128 ) / 128 ) * deltaPower ) * this . distance ) | 0 ;
172+ var yDelta = ( ( ( ( dudvPixels [ dudvPixel + 1 ] - 128 ) / 128 ) * deltaPower ) * this . distance | 0 ) ;
177173
178174 if ( j + xDelta < 0 ) { xDelta = - j ; }
179175 if ( j + xDelta > width ) { xDelta = width - j ; }
0 commit comments