Tangent space normals lighting issues

Hi all.

In my project, I am using materials with 0,0,1 in normal node, and “Tangent space normals” unchecked. This results in flat, smooth look that hides edges of intersecting meshes (see pic 1, branches on right tree with “tangent space normals” unchecked, vs left tree with it checked).

The issue is when looking on the meshes from behind. When you’re close to the meshes, see pic 2, they both look almost identical, all is good. However, moving a bit away from them, see pic 3, sun kinda shines through the tree trunk of the tree mesh with “Tangent space normals” disabled.

Is there any way to solve this, making left tree (pic 3) being shadowed same as right one, with dynamic lighting? Or is there a better way to create such flat-shaded material?

I think you’d be better off with spherical normals for each clump, something like what CarlCraft did in this post:

It would be best to calculate them in your 3D app. However if that’s not possible and you want it to happen in a material then I have a few ideas so if you can share this tree mesh then I’d be happy to give it a try.

Oh right sorry I totally misunderstood the issue, but I get it now and I’ll try to come up with something.

That’s a really neat trick for leaves! But unfortunately, not effect I am looking for, as it results in uneven shading while I am after flat shading. Like unlit shading model, but with shadows on, as my current scene (which has the lighting issue viewed from the back): Imgur: The magic of the Internet

You can use any model, really, but here’s the shrine model that I did for scene above: Shrine_gate.FBX - Google Drive

Here is my take:

Unfortunately you will have to provide the light vector for the distant light. Also you might want to turn on “Fully rough” and zero Specular.
The parameters are there to fine tune to fix based on the assets and camera behaviour. Try to keep the FixAmount as low as possible.
I hope it helps.

That works wonders for the effect I am after, with Material Param Collection for light’s vector.

Although TransiotionOffset/Length params doesn’t seem to do anything from what I can see? And weirdly enough, too small objects don’t get any shadow on the back, but that seems real-time lighting limitation rather than normals. But I will continue looking into that now that I have a starting point. Thank you for the help!