I wonder how one could produce animated video glitch effects, like digital codec or connection problems or even analog cable problems.

I wonder how one could do something that can work on top of a video (to displace parts of it, mess up the colors in rectangular areas, create different noise patterns etc).

Reference 1: This movie poster, even though completely static, has very nice blocky artifacts. That are dependant on input image (the photo): http://www.motionelements.com/stock-video-8919500-noise-glitch-video-damage

enter image description here

Reference 2: (follow the link and watch video demos) http://www.motionelements.com/stock-video-8919500-noise-glitch-video-damage

What can I do to achieve similar effects?

  • $\begingroup$ Not necesarily. The link you provided issues an effect where the whole width of the screen is affected - I'm after an effect where random rectangular regions of the screen are affected, not the whole width. $\endgroup$
    – unfa
    May 5 '17 at 13:49

I used particles with refraction shader, with random rotation in Global Y axis.

The particles were rectangular planes, and their material used the "Object info > Random" value to randomize what each particle does.

I used Math > Multiply and Modulo to vary the randomized value into multiple different values to change the IOR for Refract shaders, optionally use some stretched noise texture for bump-map to add extra horizontal stripes.

It uses an orthogonal camera that looks down at a textured plane - whatever you put as a texture on that plane will be the source image or video.

Result: https://youtu.be/m-h_f6KX-dw


  • $\begingroup$ To achieve this effect I would use Photoshop. But when it comes to making such effect in Blender I think this is a great solution. Good Job $\endgroup$
    – Nils Eisen
    May 5 '17 at 13:19
  • 2
    $\begingroup$ I have no idea how I'd go for stuff like this in Photoshop - and still, I guess it wouldn't be easily applicable for moving images, plus this is a Blender stack exchange ;) $\endgroup$
    – unfa
    May 5 '17 at 13:57

That can be done also with Cycles nodes:

enter image description here

The idea is to use a generated texture (say a noise texture for instance) and to offset each line by the amount give to the corresponding line of the generated texture).

You can add various effects, like shifting up/down or side, more or less dividing the image, etc...

enter image description here

Some precisions:

  • Use input texture coordinates
  • Keep the Y value, eventually round it (to get bands of a given size)
  • Use this Y value to get a random value from a noise texture
  • Use this random value to shift the X on the texture coordinates input
  • All this becomes a new position to target the original image
  • $\begingroup$ Manipulating the UVs of the texture seems like a very interesting trick. $\endgroup$
    – unfa
    May 8 '17 at 9:48

Not the answer you're looking for? Browse other questions tagged or ask your own question.