Principled BSDF black outline issue on meshes with normal maps

Hey, I tried searching the forums if anybody had this issue before without success. The problem is, everytime I try to display (in Material Viewport) a low poly mesh with baked normal maps using the Principled BSDF shader, I get a black outline around the mesh itself. I never before had this issue with the Diffuse or Glossy Shaders.

I bake this simple cube to illustrate the problem.


Hopefully someone can help me out figuring this out.

1 Like

is how Fresnel looks on low geo, you can observe same with Diffuse & Glossy mix controlled via Fresnel
one way to bypass is adding edge loops

With a Diffuse and Glossy Mixed with Fresnel the effect isn’t as strong, even playing with the fresnel value. The Principled shader is way too intense.


Adding more geo is not really a solution to preview a game asset. It does indeed reduce the effect, if it doesn’t destroy the shading that is.

The problem isn’t the Fresnel… It’s the glossy part. As one can see in your screen shot, the principled has more glossy than the mixed, and therefore the effect is more pronounced.

This happens mainly in raytracers like cycles, just because the normal vector is making the glossy rays to go bellow the surface, which will then be rendered black (note that the normals at those locations are being interpolated with the backside normals, thought the geometry still remains flat). In game engines this doesn’t happen.

Yes, i really expressed wrongly, my bad… wasn’t really sure as am not involved with game arts or RT rendering. But have observed it only when Fresnel is used.
Thanks Secrop.

I see what you mean but this is the viewport material, not rendered. I tried changing the roughness and also the specular values, the effect still persist. I have to say this issue happens exclusively when a normal baked is hooked up. So I would say the problem is the way the shader interprets normal maps.

The viewport preview code (material view, not the rendered view) is not very well developed in 2.79, much better code will likely be coming in 2.8 when you have material previews powered by the same tech. that Eevee uses.

why then it is present in 2.79, 2.8 version is not clear when it comes out (renders with low poly with a defect)