Flash: PerlinNoise+DisplacementMapFilter+WebCam
Sunday, October 2nd, 2005 by LuisDirty underwater simulation using perlinNoise, DisplacementMapFilter and a webCam:
SWF sample (You need a wbcam connected to your computer):
If you don't have a webCam, just click here to see the same effect apply to a static picture.
[flash]http://www.blog.lessrain.com/wp-content/upload/myperlinnoise_01.swf,250,250[/flash]
Quick And Dirty Source Code:
- import flash.display.BitmapData;
- import flash.geom.*;
- import flash.filters.*;
- var myVideoContainer:MovieClip=this.attachMovie("myVideoContainer","myVideoContainer",10);
- var my_cam:Camera = Camera.get();
- myVideoContainer.video.attachVideo(my_cam);
- var myNoise:BitmapData = new BitmapData(myVideoContainer._width, myVideoContainer._height);
- this.createEmptyMovieClip("bmp_mc", 9);
- bmp_mc.attachBitmap(myNoise, 1);
- var offset:Point = new Point(0, 0);
- var p:Point = new Point(0, 0);
- myVideoContainer._x=myVideoContainer._y=-30
- onEnterFrame = function () {
- offset.y -= 15;
- offset.x -= 9;
- myNoise.perlinNoise(myVideoContainer._width, 200, 1, 500, false, true, 1, false, [offset]);
- displaceMap = new DisplacementMapFilter(myNoise, p, 1, 1, 100, 100, 'WRAP');
- myVideoContainer.filters = [displaceMap];
- };


