Motion/Moving effect with animation on still image

3.7k Views Asked by At

I am trying to implement animation in a still image in a user-guided direction, something like this:

Original image

original image

Expected result

expected result

For this, I have tried the CIBumpDistortionLinear CIFilter. It is animating, but the animation is not exactly like that.

let bumpDistortionLinearParams: [String: AnyObject] = [
    kCIInputImageKey: coreImage!,
    "inputCenter" : CIVector(string: coordStr),
    "inputRadius": 300.0 as AnyObject,
    "inputAngle" : 90.0 as AnyObject,
    "inputScale" : 0.1 as AnyObject
]

let bumpDistortionLinear = CIFilter(name: "CIBumpDistortionLinear", parameters: bumpDistortionLinearParams)
1

There are 1 best solutions below

3
Eysner On

You can use SpriteKit with SKTexture / SKTextureAtlas.
Small example:
https://www.raywenderlich.com/144-spritekit-animations-and-texture-atlases-in-swift

Update:
If you need dynamic animation, you can make solution base on Metal
Example:
https://github.com/KrisYu/Water
Metal tutorial:
http://metalkit.org/