2
$\begingroup$

sorry for my poor English first..

this is my low poly mesh without textures enter image description here

and in marmoset toolbag 3 or blender eevee, the normal map works well enter image description here enter image description here

but in cycles, light causes strange bar shadow result(red arrow part), looks like the normal map comes into no effect. enter image description here

Can someone help me how to fix this? thank you!

.blend file here!

https://drive.google.com/file/d/1QjGzhOqGrY05mmHspnv0MyzeH0I0pIOX/view?usp=sharing

$\endgroup$
5
  • $\begingroup$ Hi :), please provide a download link to your .blend file. Ensure your textures are packed with File > External Data > Pack resources $\endgroup$
    – Gunty
    Commented Apr 28, 2022 at 4:27
  • $\begingroup$ thank you! download link added. $\endgroup$
    – FlipKnight
    Commented Apr 28, 2022 at 6:25
  • $\begingroup$ Im taking a look at the file right now and the scene is different, so I don't know where to look. Regardless of that though, I'm looking at the multiple crates and there seem to be no problems whatsoever, in cycles OR in eevee. Can you take a screenshot in the new scene and edit your post to have that? That will really help me help you $\endgroup$
    – Gunty
    Commented Apr 28, 2022 at 6:54
  • $\begingroup$ I added new screenshots, thank you very much! $\endgroup$
    – FlipKnight
    Commented Apr 28, 2022 at 7:20
  • $\begingroup$ You can upload your blend file here: blend-exchange.com $\endgroup$
    – Luciano
    Commented Apr 28, 2022 at 9:32

2 Answers 2

2
$\begingroup$

To add to what @moonboots already said:

A normal map can basically be thought of as a high-performance way of telling the render engine "Hey, that light ray your shooting at this mesh? it'd look alot cooler if instead of bouncing away at this really sharp angle, it bounced away at a different softer angle"

How the mesh normally works while rendering.

enter image description here

What happens when you use a normal map:

enter image description here

Then, when you introduces smooth shading into the mix this is what happens: enter image description here

Put a normal map on top of it and it gets even messier, You can see that there are parts of the mesh where the normal map has to do a ton of heavy lifting to get the mesh to look how it thinks it should. This is where those gradients are coming from.

enter image description here

So ultimately you have one of two options: Either split the normal with Auto Smooth and let the normal map do it's own thing entirely. This has it's drawbacks. Each split edge on the mesh has to be on it's own UV island or it will cause other normal map issues. From a technical standpoint it also turns each vertex on a split edge to two, which can increase poly count and slow performance (though this doesn't really matter much anymore these days).

Or you can bevel the edges slightly, and use weighted normals to find the happy medium between the two.

enter image description here

You want to pick one or the other though. Other wise you'll keep getting your render engine confused like this.

I would recommend reading all of EarthQuake's threads on normal map baking on polycount. I probably read them about 15 times apiece until I really "got" them.

$\endgroup$
2
  • $\begingroup$ Thank you for the answer, but I still want to know that why only cycles has this problem, I tried Unity/eevee/marmoset etc,they all show correct shadow result.... maybe cycles is based on "realistic", and others are more for "videogame style" rendering.. $\endgroup$
    – FlipKnight
    Commented Apr 28, 2022 at 13:20
  • 1
    $\begingroup$ That's probably it. Realtime rendering uses alot of magic and fakery to make the render happen so quickly, whereas ray tracing probably leaves all the flaws of your mesh laid bare. $\endgroup$
    – Jakemoyo
    Commented Apr 28, 2022 at 14:43
1
$\begingroup$

Edit: So you have bad split normals, which gives this bad shading, and besides that the normal map is particular as the baking must have occured when you already had split normals edited, see the gradient, it creates the bad shading:

enter image description here

If I disable the Auto Smooth or if I Clear Custom Split Normals Data it won't give the best result, so maybe the best thing to do is to rebake from the high-poly onto the low-poly, but this time clear the custom split normals of the low-poly before baking.

$\endgroup$
3
  • $\begingroup$ Thank you, but this operation just delete the low-poly mesh`s normal information, and my normal map will be useless $\endgroup$
    – FlipKnight
    Commented Apr 28, 2022 at 8:50
  • $\begingroup$ thank you, maybe bake again will solve this problem but I don`t know why these situation happends only in cycles render(this normal map works well in other render tools) $\endgroup$
    – FlipKnight
    Commented Apr 28, 2022 at 9:27
  • $\begingroup$ yes that's weird, the sure thing is that the normal map doesn't look good $\endgroup$
    – moonboots
    Commented Apr 28, 2022 at 9:27

You must log in to answer this question.

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