User Strider52 (Bill) noticed this one a couple of years ago. To reproduce:
Inspection of the layered texture that is applied to these objects, and the objects themselves, suggest that the Raytracer is correct, but that the TexturedVertexShader is somehow swapping face sets.
Today, I took the time to set up the opengl interactive rendering. This bug happens there as well. So, not part of the canvasDrawers.
Peter, any chance that this one could get looked at for 3.0.1? I do recall that I looked into the source when this was originally added, but could not find anything. Iv'e done a little more testing, and this bug does show up on all of the basic mesh types, including polymesh objects.
This has got to be a reversed sign, or a matrix operation done in the wrong order... just didn't understand enough what I was looking for.
I checked in the fix. It will be in 3.0.1.