Displacement Filter with Perlin Noise
From Directorforum Collaboration Wiki
Contents |
Shockwave
Description
This demo built with Director 11 creates animated perlinNoise and applies it with displacement map filter to an image (2D) and a texture (3D).
Code
Attach the following script to an image sprite and enjoy animated perlin noise displacement.
property pNoiseMember property pNoiseImage property pSprite property pSavedImage property pDisplacedImage property pDisplacementFilter property pX on beginSprite me pSprite = sprite(me.spriteNum) pSavedImage = pSprite.member.image.duplicate() pNoiseImage = image(256,256,24) pX = 0 if voidP(member("perlinNoise")) then pNoiseMember = new(#bitmap) pNoiseMember.name = "perlinNoise" else pNoiseMember = member("perlinNoise") end if pDisplacementFilter = filter(#DisplacementMapFilter, [\ #map:pNoiseMember, \ #mode:2, #mapX:0, \ #mapY:0, \ #componentX:#green, \ #componentY:#green, \ #scaleX:20, \ #scaleY:20]) end on endSprite me pSprite.member.image = pSavedImage end on enterFrame me a = the milliseconds pSprite.member.image = updateDisplacedNoise() member("ms").text = string(the milliseconds - a && "ms") end on updateDisplacedNoise pX = pX + 1 pointList = [point(pX,pX)] pNoiseImage.perlinNoise(64, 64, 2, 1, true, true, [\ #channelOptions:2, \ #grayscale:true, \ #offsets:pointList]) pNoiseMember.image = pNoiseImage pDisplacedImage = pSavedImage.duplicate() pDisplacedImage.applyFilter(pDisplacementFilter) return pDisplacedImage end
