7
$\begingroup$

Background

I'm making a character for my game (with MakeHuman), and I wanted to add normal maps to the characters. I generated one low-poly character and then one high-poly using a bunch of Subsurf modifiers. I was able to use the new Cycles baking to bake normal maps mapping the low-poly object to the high-poly object.

Problem

I'm getting some odd artifacts and very hard-edged polygons when I'm applying them to the character, even with the character set to being completely "Smooth-shaded". Can anyone explain why this is happening and how to fix it?

(left) low-poly model, (right) high-poly model
low and high poly

(left)low-poly without normal map, (right) low-poly with normal map produces weird shading
with and without normal maps

EDIT: Here is the normal map I am using for the low-poly character that is causing the hard-edged polygons (32px margin):
Normal map w/ uv layout

Also, here is my node layout (using Cycles): Node layout

$\endgroup$

4 Answers 4

9
$\begingroup$

Sorry for any trouble, but I was able to find the answer in one of the Blender docs. The real culprit was the Image Texture I was using for body_normals.png:

(emphasisis added by me)
Generate a perturbed normal from an RGB normal map image. This is usually chained with an Image Texture node in the color input, to specify the normal map image. For tangent space normal maps, the UV coordinates for the image must match, and the image texture should be set to Non-Color mode to give correct results.

I guess I must have skipped over this part in this project. Switching to Non-Color data in the Image Texture fixed my problem :). Now there is are no hard-edged polygon shading weirdness anymore.

$\endgroup$
1
  • $\begingroup$ @gandalf3 Oh, sorry, I forgot. When I wrote the answer and tried to accept it SE said I would be able to accept in another day and then I forgot to do it :P Did it now :) $\endgroup$
    – user
    Commented Jul 29, 2014 at 2:41
1
$\begingroup$

It looks as if the uv-unwrapping could be causing it can you post a screenshot of your uv-map on top of the normal map.
What could be happening is that your uv-map overlay does not match perfectly with your normal-map and some of the UVs cross the boundaries creating a very drastic change in the normals.
Check that your UVs match the normal map precisely.
(Also on your normal map - make sure the separate artifacts don't overlap and have some offset between them...)

$\endgroup$
7
  • $\begingroup$ See my edit, I added the UV layout on top of the normal map. $\endgroup$
    – user
    Commented Jul 26, 2014 at 15:12
  • $\begingroup$ Yeah, I guess it looks fine. Even though i would play around with it and see if the artifacts move around 'appropriately'. <br> Also another thing I meant to ask you, is the problem in the image actual displaced geometry or just bad normals (causing bad shading). Just checking that it is not the geometry, cause if it geometry, then you would be using your normal map as a displacement map... but I don't think that is the case. $\endgroup$ Commented Jul 26, 2014 at 15:36
  • $\begingroup$ The hard edges follow the geometry, if that helps. Like if there is a "hard" triangle in the render, it's an actual face too. I also tried recalculating all normals, and I can confirm that they're all pointing outwards. Also, I'm routing my "normal map Image Texture" through a Normal Map node, then into the "Vector" node on the main diffuse shader. This method has worked in all my other projects, so I'm not using the normal map as displacement. That's all that I can think of that might be causing a problem :/ $\endgroup$
    – user
    Commented Jul 26, 2014 at 16:03
  • $\begingroup$ Any other ideas? $\endgroup$
    – user
    Commented Jul 26, 2014 at 16:03
  • $\begingroup$ I added my node layout, maybe that will help too? $\endgroup$
    – user
    Commented Jul 26, 2014 at 16:11
1
$\begingroup$

The meshes must be Smooth and not flat otherwise it generates a step in the normal map as well

$\endgroup$
0
$\begingroup$

if you have a very low poly mesh you can get a self shadowing problems .. this is common raytracing problem .. I am not sure but I strongly believe cycles do not use any special polygon representation. You have to rise the polycount. Also normal maps produces some other bunch of artifacts especially on strong normal maps with glossy shaders .. Normals (and normal maps) are just a fake shading trick to make polygons looks smooth, there aren't any real geometry bumps and sometimes these perturbed normals are pointing away from the view and you should not be able to see that point technically leading into shading problems .. like missing highlights. Normal maps are good only to add very fine details.

$\endgroup$

You must log in to answer this question.

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