Problem with DOF on the internal engine

Hello everyone, i have a problem with depth of field in my scene where, all thought it works, it gives me some weird results.

Notice the chimney cup, the wires where they overlap with the roof top and the bottom of the column on the left.


any ideas?

Attachments


It’s probably because you apply the dof on the “top” of your render. Depth of field effects needs informations that is also occluded by overlay objects. To have accurate results, you have to separate the render into several layers and apply the defocus on each one.

Also, don’t forgot to uncheck the preview mode.

Or use real DOF in Cycles (more samples though).

3pointedit, cycles is not an option, since this is going to be an animation and my pc can’t handle it.

VincentG, you 're right this solves the major problems but it still doesn’t make any sence, i mean, everything is in front of the sky, how come that doen’t cause any problems. disabling preview also helped with some minor issues, thanks!

Try adjusting the ‘Threshold’ value on the defocus node.

You will always have occlusion errors with post DOF, layers is the only solution. I even pre bake the blur if there is no pull focus required. This way those foreground elements could be textured planes with the blurred image applied. Much faster than rendering every frame.

organic, i played with those settings a bit, without success, but i’ll give it another try.

3pointEdit, i considered that, but there will be snow falling, with sadows and everything. Thats why i didn’t want to break my scene in layers, at first.

Thanks for the help everybody.

This is a well known issue when you apply DOF in the compositing step. This because you don’t have pixel values of the objects that is behind the sharp foreground. Even if you don’t see it in your render, the blurry image of the DOF needs it to blur the image correctly. That’s why the best way to apply DOF in post is to use layers, because, you will have a full background image that can be defocused correctly and put the foreground on the top that can also be defocuded without artefacts.

If you can’t separate layers for any reason, there is still a way to generate the background values, then apply the DOF and mix the foreground but you will need at least a mask of the background. This trick is to extend the last value of what is behind the foreground, the compositor or Blender can handle it quite well, but this is the last thing to do!

Of course the best solution would be to use Cycles depth of field like 3pointEdit said, but it takes at lot of time to render and if your scene is set for Internal, it’s not easy to switch to Cycles quickly keeping the same render feeling. The second solution is to use render layers. This is my favorite one because it gives a lot more control in post. If none of those solution is possible, try to extend the pixels of the background, this if not perfect but it works more or less in most of the cases.