PerlinNoiseテスト4 on 2010-2-4
なんかパラメータいじってたら、うねうねしてきた・・。
なかなかいい感じに気持ち悪くなったので、これはこれでよしとしよう。
一体何かよくわかんないけど・・。
♥0 |
Line 85 |
Modified 2010-02-04 00:37:42 |
MIT License
archived:2017-03-09 23:13:20
ActionScript3 source code
/**
* Copyright komatsu ( http://wonderfl.net/user/komatsu )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/huSG
*/
/*
なんかパラメータいじってたら、うねうねしてきた・・。
なかなかいい感じに気持ち悪くなったので、これはこれでよしとしよう。
一体何かよくわかんないけど・・。
*/
package {
import flash.filters.BevelFilter;
import flash.filters.BlurFilter;
import flash.filters.DisplacementMapFilter;
import flash.filters.BitmapFilterType;
import flash.display.*;
import flash.geom.*;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.BitmapDataChannel;
import flash.filters.BitmapFilterQuality;
[SWF(backgroundColor="#000000", frameRate=30)]
public class DispMapTest extends Sprite {
private const STW:uint = stage.stageWidth;
private const STH:uint = stage.stageHeight;
private var sp:Sprite;
private var map:BitmapData;
private var bm:Bitmap;
private var offset:Array = new Array();
private var noiseSeed:Number = 0;
private var channels:uint = BitmapDataChannel.RED;
private var blur:BlurFilter;
private var point1:Point = new Point(0, 0);
private var point2:Point = new Point(0, 0);
private var perlinOffset:Array = [point1, point2];
public function DispMapTest() {
map= new BitmapData(STW, STH, true, 0x00000000);
bm = new Bitmap(map);
addChild(bm);
sp = new Sprite();
sp.graphics.beginFill(0x0066FF, 1);
sp.graphics.drawCircle(STW/2,STH/2,STW/3);
bm.mask = sp;
var pnt:Point = new Point(0,0);
var ch:uint = BitmapDataChannel.RED;
var dispFilter:DisplacementMapFilter = new DisplacementMapFilter(map,pnt,ch,ch);
dispFilter.scaleX =200;
dispFilter.scaleY =200;
blur = new BlurFilter();
blur.blurX = 5;
blur.blurY = 20;
blur.quality = BitmapFilterQuality.MEDIUM;
var bevelFilter:BevelFilter = getBitmapFilter();
var filterTimer:Timer = new Timer(10);
filterTimer.addEventListener(TimerEvent.TIMER , filterTimerFunc);
function filterTimerFunc(evtObj:TimerEvent):void{
perlinOffset[0].x += 0.5;
perlinOffset[1].x -= 1;
perlinOffset[0].y += 1;
perlinOffset[1].y += 1;
map.perlinNoise(100,100, 1, 1, true, true, channels,false, perlinOffset);
filters = new Array(bevelFilter,blur,dispFilter,blur);
}
filterTimer.start();
}
private function getBitmapFilter():BevelFilter {
var distance:Number = 100;
var angleInDegrees:Number = 45;
var highlightColor:Number = 0xFFFFFF;
var highlightAlpha:Number = 0.2;
var shadowColor:Number = 0x000000;
var shadowAlpha:Number = 0.8;
var blurX:Number = 100;
var blurY:Number = 100;
var strength:Number = 1;
var quality:Number = BitmapFilterQuality.HIGH;
var type:String = BitmapFilterType.INNER;
var knockout:Boolean = false;
return new BevelFilter(distance,
angleInDegrees,
highlightColor,
highlightAlpha,
shadowColor,
shadowAlpha,
blurX,
blurY,
strength,
quality,
type,
knockout);
}
}
}