in your performance test in Firefox, all seems same for me, little bit blur has slower
but CPU usage on blur: 38-40 % on convo: 34 - 38% my previous tests was in Flash IDE On 1/31/06, Cédric Muller <[EMAIL PROTECTED]> wrote: > Actually, I don't have time to write a small 'performance' reporter .... > but I did upload the files so most of us can see them live ... > > WHAT IS IT ??? pure crazyness .... > > http://www.benga.li/performance/ > > Cedric > > > > > my mails seem to fall before getting to the list... > > I am on OS X 10.4.4 using Flash 8 on a G5 dualcore 2*2ghz > > > > ouch!!!! > > WHAT IS THAT ????? > > > > we are in a bad shape ;) > > and macromedia is the only one to shed some light on 'hardware > > acceleration' > > is it ?? > > > > cedric > > > >> uff, Cedric, i got opposite results > >> > >> blurFilter=shaky and unstable > >> convultionFilter=svery smooth > >> > >> can anybody tell me why? > >> > >> > >> > >> On 1/31/06, Cédric Muller <[EMAIL PROTECTED]> wrote: > >>> ??????? > >>> blurFilter=very smooth > >>> convultionFilter=shaky and unstable > >>> > >>> > >>> > >>>> much better with Convolution filter :) > >>>> > >>>> On 1/31/06, Mike Mountain <[EMAIL PROTECTED]> wrote: > >>>>> OK you'll need a movie 768x768 - copy this code on to frame 1 etc. > >>>>> > >>>>> with blur filter: > >>>>> > >>>>> [/as] > >>>>> import flash.filters.*; > >>>>> import flash.geom.*; > >>>>> import flash.display.*; > >>>>> // > >>>>> //import flash.display.Bitmap; > >>>>> var width:Number = 768; > >>>>> var height:Number = 768; > >>>>> var offScreen1:BitmapData = new BitmapData(width, height, > >>>>> false, 0); > >>>>> var onScreen:BitmapData = new BitmapData(width, height, false, 0); > >>>>> var zeroPoint:Point = new Point(0, 0); > >>>>> var clip:MovieClip = createEmptyMovieClip("clip", 1); > >>>>> clip._x = 0; > >>>>> clip._y = 0; > >>>>> clip.attachBitmap(onScreen, 1); > >>>>> // wire the bitmap to the screen > >>>>> function RGBtoHEX(r, g, b) { > >>>>> return (r << 16 | g << 8 | b); > >>>>> } > >>>>> function spectre(angle) { > >>>>> r = (180-angle)/180*Math.PI; > >>>>> var c_r = Math.sin(r++)*127+128 << 16; > >>>>> var c_g = Math.sin(r)*127+128 << 8; > >>>>> var c_b = Math.cos(r--)*127+128; > >>>>> return (c_r | c_g | c_b); > >>>>> } > >>>>> var filterArray = new Array(); > >>>>> //var filter:GlowFilter = new GlowFilter(color, alpha, blurX, > >>>>> blurY, strength, quality, inner, knockout); > >>>>> //filterArray.push(filter); > >>>>> var blurX = 20; > >>>>> var blurY = 20; > >>>>> var quality = 2; > >>>>> var filter = new BlurFilter(blurX, blurY, quality); > >>>>> filterArray.push(filter); > >>>>> // > >>>>> var plug = _root.createEmptyMovieClip('plug', 10); > >>>>> plug._y = 200; > >>>>> plug._x = 200; > >>>>> createEmptyMovieClip('canvas', 200); > >>>>> t = 0; > >>>>> numsegs = 15; > >>>>> segmentLength = 6; > >>>>> drawCord = function () { > >>>>> t += 2; > >>>>> lw = Math.sin(t)*100; > >>>>> //trace(lw); > >>>>> a = 100; > >>>>> //trace(a) > >>>>> canvas.clear(); > >>>>> var col = spectre(t); > >>>>> canvas.lineStyle(1, col, a); > >>>>> canvas.moveTo(plug._x, plug._y); > >>>>> points[0] = new Object(); > >>>>> points[0].x = plug._x; > >>>>> points[0].y = plug._y; > >>>>> var v1 = 1; > >>>>> while (v1<points.length-1) { > >>>>> v4 = Math.atan2(points[v1].y-points[v1-1].y, > >>>>> points > >>>>> [v1].x-points[v1-1].x); > >>>>> v3 = points[v1-1].x+(segmentLength)*Math.cos(v4) > >>>>> *2; > >>>>> v2 = points[v1-1].y+(segmentLength)*Math.sin(v4) > >>>>> *2; > >>>>> points[v1].x = v3; > >>>>> points[v1].y = v2; > >>>>> canvas.lineStyle((points.length-v1)/2, col); > >>>>> canvas.lineTo(v3, v2); > >>>>> ++v1; > >>>>> } > >>>>> //(points.length-v1)/2 > >>>>> }; > >>>>> var points = new Array(); > >>>>> var i = 0; > >>>>> while (i<numsegs) { > >>>>> points[i] = new Object(); > >>>>> points[i].x=5*i, points[i].y=Math.sin(i/20); > >>>>> ++i; > >>>>> } > >>>>> //drawCord(); > >>>>> plug.xVel = 10+Math.random()*10; > >>>>> plug.yVel = 10+Math.random()*10; > >>>>> plug.xmax = Stage.width; > >>>>> plug.xmin = 0; > >>>>> plug.ymax = Stage.height; > >>>>> plug.ymin = 0; > >>>>> /* > >>>>> var matrixX:Number = 3; > >>>>> var matrixY:Number = 3; > >>>>> var matrix:Array = [1, 1, 1, 0, 0, 0, 0, 1, 0]; > >>>>> var divisor:Number = 4; > >>>>> */ > >>>>> //var sfilter:ConvolutionFilter = new ConvolutionFilter(matrixX, > >>>>> matrixY, matrix, divisor); > >>>>> var blurX = 10; > >>>>> var blurY = 10; > >>>>> var quality = 2; > >>>>> var sfilter = new BlurFilter(blurX, blurY, quality); > >>>>> > >>>>> // > >>>>> myMatrix = new Matrix(); > >>>>> translateMatrix = new Matrix(); > >>>>> degrees = 180; > >>>>> radians = (degrees/180)*Math.PI; > >>>>> myMatrix.rotate(radians); > >>>>> translateMatrix.translate(768, 768); > >>>>> myMatrix.concat(translateMatrix); > >>>>> myColorTransform = new ColorTransform(); > >>>>> blendMode = "normal"; > >>>>> myRectangle = new Rectangle(0, 0, 768, 768); > >>>>> smooth = true; > >>>>> // sfilter = new BlurFilter(5, 5, 1); > >>>>> plug.onEnterFrame = function() { > >>>>> rolldie = Math.random()*100; > >>>>> if (rolldie>97) { > >>>>> this.xVel = -10+Math.random()*20; > >>>>> this.yVel = -10+Math.random()*20; > >>>>> } > >>>>> canvas.filters = filterArray; > >>>>> drawCord(); > >>>>> copyStage(); > >>>>> var nextX = this.xVel+this._x; > >>>>> var nextY = this.yVel+this._y; > >>>>> if (nextX>this.xmax) { > >>>>> this.xVel = (this.xVel+Math.random()*10)*-1; > >>>>> nextX = this.xmax-(nextX-this.xmax); > >>>>> } else if (nextX<this.xmin) { > >>>>> this.xVel = (this.xVel+Math.random()*10)*-1; > >>>>> nextX = this.xmin+(this.xmin-nextX); > >>>>> } > >>>>> if (nextY>this.ymax) { > >>>>> this.yVel = (this.yVel+Math.random()*10)*-1; > >>>>> nextY = this.ymax-(nextY-this.ymax); > >>>>> } else if (nextY<this.ymin) { > >>>>> this.yVel = (this.yVel+Math.random()*10)*-1; > >>>>> nextY = this.ymin+(this.ymin-nextY); > >>>>> } > >>>>> this._x = nextX; > >>>>> this._y = nextY; > >>>>> onScreen.copyPixels(offScreen1, offScreen1.rectangle, > >>>>> zeroPoint); > >>>>> onScreen.applyFilter(offScreen1, offScreen1.rectangle, new > >>>>> Point(0, 0), sfilter); > >>>>> offScreen1.draw(_root, myMatrix, myColorTransform, > >>>>> blendMode, myRectangle, smooth); > >>>>> }; > >>>>> [/as] > >>>>> > >>>>> > >>>>> With convolution filter: > >>>>> > >>>>> [as] > >>>>> import flash.filters.*; > >>>>> import flash.geom.*; > >>>>> import flash.display.*; > >>>>> // > >>>>> //import flash.display.Bitmap; > >>>>> var width:Number = 768; > >>>>> var height:Number = 768; > >>>>> var offScreen1:BitmapData = new BitmapData(width, height, > >>>>> false, 0); > >>>>> var onScreen:BitmapData = new BitmapData(width, height, false, 0); > >>>>> var zeroPoint:Point = new Point(0, 0); > >>>>> var clip:MovieClip = createEmptyMovieClip("clip", 1); > >>>>> clip._x = 0; > >>>>> clip._y = 0; > >>>>> clip.attachBitmap(onScreen, 1); > >>>>> // wire the bitmap to the screen > >>>>> function RGBtoHEX(r, g, b) { > >>>>> return (r << 16 | g << 8 | b); > >>>>> } > >>>>> function spectre(angle) { > >>>>> r = (180-angle)/180*Math.PI; > >>>>> var c_r = Math.sin(r++)*127+128 << 16; > >>>>> var c_g = Math.sin(r)*127+128 << 8; > >>>>> var c_b = Math.cos(r--)*127+128; > >>>>> return (c_r | c_g | c_b); > >>>>> } > >>>>> var filterArray = new Array(); > >>>>> //var filter:GlowFilter = new GlowFilter(color, alpha, blurX, > >>>>> blurY, strength, quality, inner, knockout); > >>>>> //filterArray.push(filter); > >>>>> var blurX = 20; > >>>>> var blurY = 20; > >>>>> var quality = 2; > >>>>> var filter = new BlurFilter(blurX, blurY, quality); > >>>>> filterArray.push(filter); > >>>>> // > >>>>> var plug = _root.createEmptyMovieClip('plug', 10); > >>>>> plug._y = 200; > >>>>> plug._x = 200; > >>>>> createEmptyMovieClip('canvas', 200); > >>>>> t = 0; > >>>>> numsegs = 15; > >>>>> segmentLength = 6; > >>>>> drawCord = function () { > >>>>> t += 2; > >>>>> lw = Math.sin(t)*100; > >>>>> //trace(lw); > >>>>> a = 100; > >>>>> //trace(a) > >>>>> canvas.clear(); > >>>>> var col = spectre(t); > >>>>> canvas.lineStyle(1, col, a); > >>>>> canvas.moveTo(plug._x, plug._y); > >>>>> points[0] = new Object(); > >>>>> points[0].x = plug._x; > >>>>> points[0].y = plug._y; > >>>>> var v1 = 1; > >>>>> while (v1<points.length-1) { > >>>>> v4 = Math.atan2(points[v1].y-points[v1-1].y, > >>>>> points > >>>>> [v1].x-points[v1-1].x); > >>>>> v3 = points[v1-1].x+(segmentLength)*Math.cos(v4) > >>>>> *2; > >>>>> v2 = points[v1-1].y+(segmentLength)*Math.sin(v4) > >>>>> *2; > >>>>> points[v1].x = v3; > >>>>> points[v1].y = v2; > >>>>> canvas.lineStyle((points.length-v1)/2, col); > >>>>> canvas.lineTo(v3, v2); > >>>>> ++v1; > >>>>> } > >>>>> //(points.length-v1)/2 > >>>>> }; > >>>>> var points = new Array(); > >>>>> var i = 0; > >>>>> while (i<numsegs) { > >>>>> points[i] = new Object(); > >>>>> points[i].x=5*i, points[i].y=Math.sin(i/20); > >>>>> ++i; > >>>>> } > >>>>> //drawCord(); > >>>>> plug.xVel = 10+Math.random()*10; > >>>>> plug.yVel = 10+Math.random()*10; > >>>>> plug.xmax = Stage.width; > >>>>> plug.xmin = 0; > >>>>> plug.ymax = Stage.height; > >>>>> plug.ymin = 0; > >>>>> > >>>>> var matrixX:Number = 3; > >>>>> var matrixY:Number = 3; > >>>>> var matrix:Array = [1, 1, 1, 0, 0, 0, 0, 1, 0]; > >>>>> var divisor:Number = 4; > >>>>> var sfilter:ConvolutionFilter = new ConvolutionFilter(matrixX, > >>>>> matrixY, matrix, divisor); > >>>>> /* > >>>>> var blurX = 10; > >>>>> var blurY = 10; > >>>>> var quality = 2; > >>>>> var sfilter = new BlurFilter(blurX, blurY, quality); > >>>>> */ > >>>>> // > >>>>> myMatrix = new Matrix(); > >>>>> translateMatrix = new Matrix(); > >>>>> degrees = 180; > >>>>> radians = (degrees/180)*Math.PI; > >>>>> myMatrix.rotate(radians); > >>>>> translateMatrix.translate(768, 768); > >>>>> myMatrix.concat(translateMatrix); > >>>>> myColorTransform = new ColorTransform(); > >>>>> blendMode = "normal"; > >>>>> myRectangle = new Rectangle(0, 0, 768, 768); > >>>>> smooth = true; > >>>>> // sfilter = new BlurFilter(5, 5, 1); > >>>>> plug.onEnterFrame = function() { > >>>>> rolldie = Math.random()*100; > >>>>> if (rolldie>97) { > >>>>> this.xVel = -10+Math.random()*20; > >>>>> this.yVel = -10+Math.random()*20; > >>>>> } > >>>>> canvas.filters = filterArray; > >>>>> drawCord(); > >>>>> copyStage(); > >>>>> var nextX = this.xVel+this._x; > >>>>> var nextY = this.yVel+this._y; > >>>>> if (nextX>this.xmax) { > >>>>> this.xVel = (this.xVel+Math.random()*10)*-1; > >>>>> nextX = this.xmax-(nextX-this.xmax); > >>>>> } else if (nextX<this.xmin) { > >>>>> this.xVel = (this.xVel+Math.random()*10)*-1; > >>>>> nextX = this.xmin+(this.xmin-nextX); > >>>>> } > >>>>> if (nextY>this.ymax) { > >>>>> this.yVel = (this.yVel+Math.random()*10)*-1; > >>>>> nextY = this.ymax-(nextY-this.ymax); > >>>>> } else if (nextY<this.ymin) { > >>>>> this.yVel = (this.yVel+Math.random()*10)*-1; > >>>>> nextY = this.ymin+(this.ymin-nextY); > >>>>> } > >>>>> this._x = nextX; > >>>>> this._y = nextY; > >>>>> onScreen.copyPixels(offScreen1, offScreen1.rectangle, > >>>>> zeroPoint); > >>>>> onScreen.applyFilter(offScreen1, offScreen1.rectangle, new > >>>>> Point(0, 0), sfilter); > >>>>> offScreen1.draw(_root, myMatrix, myColorTransform, > >>>>> blendMode, myRectangle, smooth); > >>>>> }; > >>>>> [/as] > >>>>> > >>>>> Although it may be something to do with the application of the > >>>>> filter.... > >>>>> > >>>>> Scuse the dodgy code - WIP. > >>>>> > >>>>> M > >>>>> > >>>>> > >>>>>> -----Original Message----- > >>>>>> From: [EMAIL PROTECTED] > >>>>>> [mailto:[EMAIL PROTECTED] On Behalf > >>>>>> Of Mike Duguid > >>>>>> Sent: 30 January 2006 22:44 > >>>>>> To: Flashcoders mailing list > >>>>>> Subject: Re: [Flashcoders] ConvolutionFilter performance > >>>>>> > >>>>>> Mike, do you have an example of this? My current test shows > >>>>>> the opposite - that convolution is proving more cpu intensive > >>>>>> than blurfilter? > >>>>>> > >>>>>> > >>>>>>> Mike Mountain <[EMAIL PROTECTED]> wrote: > >>>>>>> In my tests convolution filter was much faster than a > >>>>>>> blurfilter. > >>>>>>> But it's an easy one to swap oout and test for yourself... > >>>>>> > >>>>>> > >>>>>>> Andreas R�nning <[EMAIL PROTECTED]> wrote: > >>>>>>> Does anyone know which is faster; a blurring one-pass > >>>>>>> convolution > >>>>>>> filter or a blurfilter? Or are they just 2 sides to the > >>>>>> same story? I > >>>>>>> need a high performance blur operation for depth of field.. > >>>>>>> > >>>>>>> Cheers, > >>>>>>> > >>>>>>> - Andreas > >>>>>> _______________________________________________ > >>>>>> Flashcoders mailing list > >>>>>> Flashcoders@chattyfig.figleaf.com > >>>>>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > >>>>>> > >>>>> _______________________________________________ > >>>>> Flashcoders mailing list > >>>>> Flashcoders@chattyfig.figleaf.com > >>>>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > >>>>> > >>>> > >>>> > >>>> -- > >>>> ------------------------------------------------------------------- > >>>> --- > >>>> ------------------------------------------------------------------- > >>>> --- > >>>> --------------------- > >>>> Franto > >>>> > >>>> http://blog.franto.com > >>>> http://www.flashcoders.sk > >>>> _______________________________________________ > >>>> Flashcoders mailing list > >>>> Flashcoders@chattyfig.figleaf.com > >>>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > >>> > >>> _______________________________________________ > >>> Flashcoders mailing list > >>> Flashcoders@chattyfig.figleaf.com > >>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > >>> > >> > >> > >> -- > >> --------------------------------------------------------------------- > >> --------------------------------------------------------------------- > >> ----------------------- > >> Franto > >> > >> http://blog.franto.com > >> http://www.flashcoders.sk > >> _______________________________________________ > >> Flashcoders mailing list > >> Flashcoders@chattyfig.figleaf.com > >> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > > > > _______________________________________________ > > Flashcoders mailing list > > Flashcoders@chattyfig.figleaf.com > > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > > _______________________________________________ > Flashcoders mailing list > Flashcoders@chattyfig.figleaf.com > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > -- ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Franto http://blog.franto.com http://www.flashcoders.sk
_______________________________________________ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders