Looking for bug workaround - combining main and toon layer later...?

I’m trying to finish an animation and need to find a workaround for a nodes rendering problem that so far could not be fixed (current bug report). I’ve been trying to solve this issue since last November (some here might remember), so this is why I really would like to finish the animation now if somehow possible - a real fix for this in blender unfortunately just seems not so easy to do.

Since I keep getting strange, semi transparent black dots when rendering my animation via the nodes system using a toon layer (with a copy of the objects from the main layer and only rendering the toon edges) I now would like to combine the main render and toon layer in an extra step - the hope is that the dots won’t show up then…

Since I could not see how-to do this with PNGs (I combined the layers with a simple mix node and tried the different options…) I now used OpenEXR (with Zbuf on and ZIP lossless compression; using RGB for one of the scenes, RGBA for another, reason: background).

I now tried to combine the OpenEXR renders from the main and the toon layer after the actual rendering (loading them in the nodes system using an Image node) via the Z Combine node but so far this is not successful. I tried the usual thing and switched up/down (switched the image inputs, the Z inputs, tried all possible combinations - all sorts of results show up just not the one I am looking for). I played around with the values for Z and tried to increase both, just one of them etc… No luck so far.

Any ideas how-to do this? Or does anyone know of another workaround…? Thanks!

Why do you use a z-combine ?

edit :

Did you try with FSA on blender 2.46 ? ctrl-r before rendering I think.

Thanks for the answer - I will try FSA, first I’m trying to understand what is wrong with my Z Combine node set up (see attachments: first one is how it should be and is when using Alpha Over, second one is how I have to try it for the workaround with Z Combine - here directly as a test, later I will combine the renders in an extra step and hopefully will avoid getting those strange black dots.). I’m suspecting it’s something pretty obvious that I’m missing, just somehow I can’t see it…

The thing is that the toon layer also gives me the object that I don’t want to render as a black object when I try to combine it via the Z node - while I have only Edge and not Solid selected in the render layers. This is what I just don’t understand. (Does Z Combine also “see” the object and not just the toon edges…?)

(For some reason the upper left image from the second one looks like the solution, but this is probably due to the jpeg compression - in fact it is like the Alpha Over one but without the toon edges…)


z info is not transmitted with edge - only colors and alpha. Shown below is the way I would recommend combining the Edge back into the solid render.


Thanks, this works very well - no idea why I tried all sorts of other options just not that one…! Unfortunately I now found out that the workaround still does not solve the dots problem, but at least I now know a bit more about how it happens: not in the nodes system, but in the actual toon layer render. That’s where the dots can be seen if you just render the toon layer with the (toon) Edge button pressed. Since they have the same colour as the toon edges (e.g. green) I don’t think I can just key them out, removing them by hand is the last option that I have but that could take days, there are so many and you first have to spot them.

I will now render everything without the toon edges and then try to find another fix for this and combine them as shown in the previous post later (maybe without the ConvertPremul option in once case, but not quite sure yet).

I’ll post a solution should I find one…

After a couple of tests I think I’ve found the workaround/solution - now I know why it was so hard to find: it is stupidly simple!

Since those dots only appear via the toon layer if the Edge button is pressed: try rendering the toon layer separately, e.g. PNGs and with the RGBA option, but set the OSA down to 5 and add an extra blur in the Compositing Nodes for the toon layer:

the toon render artefacts get effectively filtered out by the lower OSA

and the blur then makes it smooth again…

See the attached test for a before/after composite of the then again combined actual render and the toon layer (done similar as suggested in the post above) (the dots are in the first one, about centre-right). Finally…


Ok, this was not quite it yet, but at least part of it: I just saw that there are still other toon render artefacts when changing the OSA to 5, but they are in different frames! So it is possible to mix different render results later, sort them out on a frame by frame basis - still much better than painting over them…

Could you post your nodes setup please. I’d reported a similar problem in trying to create a toon character with different color edges, using multiple render layers … eg black edges for clothing and dark pink edges for body parts.

Have a look at the .blend files I uploaded to the bug tracker:

One is called DotsWithNodes.zip and can found here.

The other one, from the old bug report (one halo spot issue fixed, the other one still open - same problem as in the new bug report) is called renderbug.blend and can be found here.

DotsWithNodes.blend gives you two scenes, in each a frame where the toon render issue appears is ready for rendering.

renderbug.blend also has two scenes, ignore the first one (that was for the other, resolved issue) and just go to the second example: this one is quite interesting because you can see how the toon render bug generates what looks like dirt/scratches on old film.

I spent quite some time with this problem and found it to be a tricky one: you always think you’ve found the solution but only to realise later that the artefacts now just show up in different frames… So this is why the workaround for now seems to be to render the toon edges twice - with different settings (e.g. OSA) - and then to pick out all the good frames from each render session…