2012年10月3日 星期三

cloud effect with perlinNoise

雲霧效果教學
scrolling BitmapData +  perlinNoise

首先產生可以連續捲動的雲(BitmapData),
先回憶一下 perlinNoise 語法:
perlinNoise(periodX, periodY, numOctaves, seed, stitch, fractalNoise, channelOptions, grayScale);
stitch:true 平滑影像邊緣,以建立無接縫的拼貼紋理,適用於水波。
fractalNoise:true 平滑化該效果的邊緣,適用於雲霧,false 明顯不連續的漸層,
適用於火焰和海浪。
perlinNoise(150, 150, 5, Math.random()*0xFFFFFF, true, true, 7, false);

stitch 方式建立的圖檔,上下及左右是可以連接得起來,
每次捲動時,把 vertCutRect/horizCutRect/cornerCutRect 這三塊區域,
貼到相對應的區域,再用 BitmapData.scroll 捲動即可。

BitmapData.scroll 及 copyPixels 效能非常好,就算拿來處理 1920x1080 的圖檔
也游刃有餘。

沒有留言:

張貼留言