Cycles normal mapping causes flat shading.

I have been using normal maps in Cycles for a while now. However, all of the sudden normal maps cause a sort of flat shading on the model. As an example I have this model that has been perfectly prepared for rendering with a normal map. I set up the material in Blender Internal and render. I then receive this image.



I then convert everything that is needed to render in Cycles and then I render again. However I am greeted with this image.



Here is my node setup for the Cycles material.


I have tried everything but I’m at a loss. I would appreciate it if someone could tell me how to fix this.

The normal map setup is wrong. Image node should be set to non-color data.

Thank you, that fixed it. However I found that under a sun lamp the model produces unnatural jagged shading like this.


Is this something that normally happens? Or is there a way to fix it? Because the same thing happens to all of my lowpoly models that are rendered with a sun lamp.

looks like a shadow terminator problem


https://developer.blender.org/T37814

I looked at your links but I couldn’t understand what the solution was. But I did some quick research on terminator artifacts and found some partial workarounds. One way was to use a subdivision modifier and increase the polycount, another was to increase the lamp size. Both of these are not particularly preferred solutions. So is there some other fix for this, or do I just have to deal with it until it is fixed in a update?

The terminator artefact is an issue that more or less plagues all path tracing render engines. So, don’t expect to see this fixed in an update anytime soon (if at all).

So, it’s either increasing the polycount (see also here), reducing the contrast of the lighting or switching to another render engine (that doesn’t use path tracing or is one of the very few path tracers that found a solution, like e. g. Thea).

That’s a shame, I do hope that it’s something that could be fixed for Blender eventually. Another question, do you know if Unreal Engine 4’s rendering suffers from this? Because I would really hate to have increase the polycount on my game models.

I highly doubt that Unreal uses path tracing for real time rendering…
Or that a professional game engine would use any rendering technique that can’t render low poly models flawlessly for that matter.

Even the Blender Internal renderer has no issues with your model, as your first screenshot clearly shows. Why does it have to Cycles?

I’m not sure I understand your question. If you are asking why I want to use Cycles in general, then it is because I find Cycles a much better render engine the Blender Internal. But if you are asking why I want to render my lowpoly models in Cycles, then it is because I need to have a lowpoly model if I want to use it in animations.