I am currently writing a physically based ray tracer and I am trying to implement normal mapping. The issue is that normal mapping results in "weird" geometry such that reflections can act very strangely. For example in the following scenario, where n represents the mapped normal at that point, the light bounces inside the geometry of the object and hence the light is lost.
I am not sure how to handle this in a way that makes sense, there are many different BSDFs and I can't seem to find a solution, which would work for all...
I tried implementing the normal mapping, but I get strange behaviour around grazing angles. For example:
The top part of the top-most brick is very dark, which should not be the case.
Does anyone have an idea of how to handle this?