Two Sided Material but normal on the wrong side?

So i have two side checked on my wall material. Its a brick wall, and on the inside, where i really want things to look right, instead the normal map of the brick is sticking in. Which makes the brick look indented into the wall.

However on the outside of the wall, the opposite side of the mesh building (aka plane). the normal map is sticking out normally.

come on, someone help. this is really important.

Quick fix is multiplying your vertex normals by -1, and feeding it into the normal port in your material.

if you mean multiplying the normal map by -1 (flipping the normal) then that doesn’t work

Try multiplying the normal map with “TwoSidedSign” node (or whatever the name of that node was) before plugging it into the normal map slot.

the TWOSIDEDTEXTURE node didn’t solve the problem. Idk how to se the twosidedsign node.

For what it is worth this is correct behavior for 2 sided materials because if something indents inwards on one side, then in order to be a meaningful surface it means it indents outwards on the other side. What you are wanting is something different from the default.

Try using the two sided sign with the IF node. If twosidedsign is less than 0, multiply your normal map by -1,-1,1, otherwise just return the normal map.

Ideally you don’t want to be using the 2 sided material for things like brick walls. There’s a bunch of possible issues and problems it can cause. The 2 sided material is really meant for things that are supposed to be flat.

here are the plain normal map and the normal map with the green (y) inverted, (basically looks the same, still sticking out).


Now here it is with with the two sided sign node. (but problem is that one side of the hallway’s wall is black)


However, The other side of the hallway actually seems like its working. looks indented like i want.

In comparison, here’s how it used to look without the node, just normal map (sticks out).

Here’s my material


any ideas?

2 Likes

The multiply at the bottom should be -1,-1, 1, but you have all negatives. The B does not need to be negative since it is already correctly flipped to account for the backfacing direction. Everything else looks good.

Don’t worry about the apparent ‘messyness’ of the If statement. under the hood it usually gets compiled down to a simple ternary operator expression without branching.

2 Likes

WOW it works, you’re amazing. thanks alot really thanks.
also i have one more question. for POM materials do i need to use the twosidednode in another location other than the normal map?

Hmmm that is a great question. I have never even thought to try testing POM on a two sided material. I will try to test this out soon but my first guess is that the tangent space transform will be inverted in much the same way. You probably need to apply the same method as above on the transformed camera vector inside of the function or it might end up tracing some kind of weird inverted/backwards heightfield.