Can't turn OFF shadows?

I’ve searched for similar topics but nothing was found.

I have the following objects in my scene:
1 FBX
1 Ambient Light
2 Point Lights

The FBX mesh properties for receiveShadow and castShadow are set to false. The FBX also contains MeshPhongMaterials with castShadow and receiveShadow set to false. Everything is spelled correctly.

The lights also have castShadow set to false. The renderer shadow map is disabled. Everything that I have in my scene is intended to not have shadows in it. Yet, they’re still there.

The materials do not have any specular settings or ambient occlusion. I added one of the point lights to dat.gui so I can move it’s position directly in the scene and the shadows update in real time on the FBX model.

I am also console.log() all objects and lights in the scene to confirm their properties are set to false and they are in fact false. I even added a toggle to ‘castShadow’ on my point light with no success.

I simply cannot get rid of the shadows! What am I missing here?! I want to avoid using MeshBasicMaterial for a few reasons. Primarily the fact that I shouldn’t have to since MeshPhongMaterial has properties to turn shadows off.

Can you show a screenshot of what you mean by “shadows”?

Shadow is what’s object casting on another object - shading is the darkening / brightening of the object surface caused by light shining onto it.

You can disable the first one with .castShadows - to disable the second one, indeed, use MeshBasicMaterial.

1 Like

I am truly curious about this issue and I’d love to see a live demo. Usually people work hard to turn shadows on, not off.

Actually, I once experienced a similar issue. It turned out I was editing one copy of the code, but was viewing another copy in the browser.

There are several types of “shadows”. One type the shadow is the one that object casts on another object. You should be able to turn it off. There is another type based on backing textures. And there is yet another “shadow” – this is the back side of objects, that are not directly lit by lights. You cannot turn them off with castShadow/receiveShadow. But you can:

  • add ambient light to make back sides lighter (you already have one)
  • add another light to shine them from the shadow side
  • add emissive color
  • use a light-insensitive material like basic, normal, of some custom shader one (you don’t like this)

Also, if the issue is observed while rotating (e.g. you rotate and see the object from the back), you could move the light together with the camera, as if you are the sun. In this way the object will always be lit from your point of view.

If your FBX contains nested objects, you may have to process them all. But you can turn off shadows at global level. And if you still see shadow, check for textures with hard-coded shadows. If this is the case, you have to replace the textures.

That’s all I can think of now.

Good luck with your project.

Uh oh, I think what you are saying is correct. I suppose what I am seeing is is the shading, or falloff, effect of the light in combination with how MeshPhongMaterials work.

I removed all lights except for one point light to emphasize the contrast and took the screenshot attached. My eyes were telling me I was seeing shadows but that appears to not be the case.

There are no objects to cast a shadow onto my FBX nor do I have any objects for the FBX to cast upon. Therefore, this must be shading. I feel so dumb and no, this isn’t my first day which makes all of this feel worse. However, I haven’t had to touch this part of my app in about 3 years.

In conclusion, I don’t have any choice but to change the material or do what PavelBoytchev mentioned which is to balance the lights but in my case, I need to ensure absolutely no shading exists.

Thank you for your help!

Capture_shade_shadow

I can achieve the same “flat” effect by dropping the point lights and using only an ambient light with an intensity of 1.