7
$\begingroup$

I know that in Cycles we can have as much noise as we want, but it's not the right type of noise. I'm inserting an object into a video taken with a DSLR. The video has some ISO noise in it and it makes the object that I rendered stand out.

I tried using my photo editor but it doesn't use a random seed for the noise so it's always the same pattern. Does Blender have a way to do this in the compositor (preferably not Python)? This would also be nice for adding realism to scenes.

$\endgroup$

2 Answers 2

9
$\begingroup$

I prefer the term Camera "Sensor noise" in this case. ISO (or gain) is just one of the many factors that might contribute to noise in images generated on a camera, and will be very different on different cameras.

Now on to your question.

Use a texture node with a noise texture in the compositor and mix that with your rendered image using a multiply node. That would give you control over the type of noise and its size, brightness and contrast. To animate the noise pattern you can animate the distortion values and/or the offset coordinates.

enter image description here

Sadly, Blender's compositor does not have a way to do buffered playback in real time, and you would need such a thing to be able to see the noise patterns moving from frame to frame and get a seamless integration. To do this in a more sophisticated and precise way you should also consider using other compositing apps like Fusion or Natron, those have built in tools to create different kinds of noise and to create random seeds for it.

$\endgroup$
4
  • $\begingroup$ Thank you worlds for helping with this. I had no idea Blender could create a random noise texture in the compositor. Works perfectly. $\endgroup$
    – bertmoog
    Commented Jul 17, 2017 at 21:16
  • $\begingroup$ Super awesome! Do you know if Blender is planning to do buffered playback in real time anytime soon? It's annoying to have to switch to other compositors, especially when they don't necessarily have all the beautiful integration with the other features of Blender. $\endgroup$ Commented Jul 17, 2017 at 23:52
  • $\begingroup$ @AnsonSavage I have no idea of what will happen in the future. I would not hold my breath for anything like this on blender. On the other hand there are quite a number of very capable compositing apps that you can use today that can do that. (and a lot more, and free to download and use too) $\endgroup$
    – user1853
    Commented Jul 17, 2017 at 23:58
  • $\begingroup$ @cegaton Yeah, I have Natron and Fusion, and they seem nice, but they have weird quirks that make them a little annoying (like Fusion will only deal with image sequences and Natron crashes frequently and has lots of trouble rendering to a decent codec...) at least on my Linux machine. $\endgroup$ Commented Jul 18, 2017 at 0:03
6
$\begingroup$

Using @cegaton's excellent idea above, I was able to generate the noise texture and use drivers as input for the offset of the texture:

enter image description here

The result:

enter image description here

This is added at @cegaton's request to detail the driver creation for the random value generator (in the edit above) in case others have need of this.

Essentially, the texture that cegaton created above is random in nature so it's tile-able... meaning there are no detectable seams. Because of this, you can offset the position randomly with each frame and it will appear to be random digital noise or film grain. The texture will automatically wrap the offset.

This requires a simple driver to be added to the offset values. Ensure the Scripted Expression option is selected in the Drivers menu and multiply an integer by noise.random(). I used 100 as the multiplier in the X direction. You can also offset it in the Y direction but, going on the assumption that the texture is random, it's theoretically unnecessary.

enter image description here

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .