Test shadows on a point source of light


#1

Today I decided to test how the shadows work on a point source of light along with a relief map, but ran into artifacts.

plight.setShadowCaster(True, 512, 512)

This is all I added.

I forgot to add, this is my problem, or the Panda3D shader system works this way - 1.10.0?


#2

Hmm, interesting. It only seems to happen when the light hits the surface at a very low incident angle.

I think the exaggerated normal mapping might be at fault here, since it seems to happen on the back of the column surface. Indeed, removing the normal map from the model removes the artifacts as well.


#3

At a guess, it may be that it doesn’t show up without normal-mapping because in that case, the standard shading hides it: With normal mapping, areas that would normally by dark may become light, and so be affected by shadows.

I think that this is a form of “Shadow Acne”; I think that, if it isn’t already implemented, this article recommended a slope-based bias to reduce this particular artefact. However, I don’t know how current that technique is–perhaps a better way has subsequently been found. Furthermore, I haven’t tried it myself, and so am not in a position to recommend for or against it. (It’s also entirely possible that I’m very mistaken in my diagnosis, of course.)