0
$\begingroup$

I am using Blender Internal (BI). I have an object with a texture applied to it. The object is UV unwrapped. The following happens:

  • Viewport: color texture is visible
  • Render: color texture is visible
  • Viewport: normal texture is visible
  • Render: normal texture is not visible

The following is a figure of a render (left: normal, right: color):

Normal map does not render, but texture is unwrapped.

The lightning in the scene consists of:

  • Environment Lighting (0.200, White)
  • Sun (1.00; default settings)

The normal map does appear when the sun is changed from "Ray Shadow" to "No Shadow", although it appears inverted (or something):

enter image description here

But evidently I do want shadows being cast by the sun light.

What is wrong?

$\endgroup$
0
$\begingroup$

(((While preparing this question by reproducing my problem in a clean Blender file, to my surprise the problem did not exist. By slowly rebuilding my original scene, I found where the problem comes from, hence I am posting this self-answer.)))

The problem re-appeared as soon as I changed the lighting to "Sun" and turned on "Environment Lighting" to lit the parts not directly lit by the sun. As a consequence, the faces that were not directly lit by the sun did not render their normal maps applied to them.

Therefore, it seems that "Environment Lighting" does not cast rays. Then, if rays do not hit the face, there are no rays to be reflected in different directions depending on the precise location that the rays are incident (which is what the normal map does), and therefore the "normal map will not render".

Now, to have lighting on faces not lit directly by the sun, "Environment Lighting" may be replaced by adding a "Hemi" lamp. This lamp behaves the same as "Environment Lighting" (i.e., light on all directions), but apparently does cast rays, allowing the normal map to be rendered correctly:

enter image description here

Still unsolved questions:

  • What happened when the sun was changed to "No Shadow" in the OP?

  • Why does Environmental Lighting work the way it does? Is there a particular reason for which that would be the desired behaviour?

$\endgroup$
  • 1
    $\begingroup$ When the shadows of the sun are disabled, the light goes through the top face, lighting the faces in the shadows (from the back), that's why you can partly see the normals. In Blender Internal, the Environment Lighting is more like a colored Ambient Occlusion, it only takes in consideration the real geometry, that's why you can change the Attenuation distance in the Gather section: the tooltip says "Length of rays, defines how far away other faces give occlusion effect." $\endgroup$ – Matt Ferndz Jun 24 '17 at 1:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.