This thread is a continuation of this thread:
I have moved it to a new thread because a subtle interaction between many parts of my code led to the update()
method of the SpotLightHelper
object I use with my SpotLight
not being called. That has been fixed and now I can see the proper dimensions of the light’s frustum.
It now seems that the real problem I am having is that I don’t see any light reflected of the SpotLight
’s target object, which is a MeshLambertMaterial
material, if the frustum of the SpotLight
does not encompass the entire surface of the rectangular MeshLamberMateria
that makes up a wall in my scene. Can someone give me an idea as to why this is happening and how to fix it, assuming I have the right hypothesis for the problem?
Look at these screenshots. The first one shows frustum of the SpotLight
definitely smaller than the the wall surface.
I widen the angle of the frustum until it just fits within wall surface and still no light:
The instant I again widen the light’s angle and make the frustum exceed the boundaries of the entire MeshLambertMaterial
of the wall, the light appears:
And even wider and the wall and it’s neighbors are really lit up:
What could cause a situation like mine when the target of the object only shows any light at all once the SpotLIght
’s frustum completely encompasses it, not just part of it? Note, the same behavior occurs if instead of widening the angle
or the SpotLight
beam, I move the SpotLight
further away from the wall so that again, the frustum encompasses the entire wall.