• 3D
  • Metallic materials are pitch black in interior scenes (without sky)

In our project we have exclusively interior scenes and use baked lighting. For those scenes to look natural we set up a world environment without ambient lighting and without light contribution from a sky (Mode = Custom Color Black), so that our scenes don't have light on each object as can be seen here:

Without the sky our scenes look nice, as can be seen here: This is what we want our scene to look like

If we do that however each metallic material (Metallic = 1) shows up completely unlit/black.

test

If we turn the sky on the metallic objects only appear to look good if the sky has non-black top and horizon colors AND the sky energy is more than zero AND the background energy is more than zero. With this we get the desirable metallic look but the bad lighting (as seen in the first picture)

Is there a way to have metallic work without sky energy? If it helps we can upload a minimal project with the problem.

Is there a way to have metallic work without sky energy?

Yes, using ReflectionProbe nodes located close to the metallic materials. Fully metallic materials only display specular lighting (and none of the diffuse light), so it's expected that they look black when the environment reflections are black.

Alternatively, you can use the Color + Sky environment mode which lets you use a solid color for the background sky and an actual sky for reflections.

Yes, this is correct. A completely metallic object is full chrome (almost like a mirror) so you can think of what you would see in a mirror if it didn't reflect anything (and it would be nothing). What you want to use is the ReflectionProbe. If your room is square or rectangular shaped, then you can make the ReflectionProbe the full size of the room and set Interior to true. If you only need reflection on the diamonds, then you can make the probe just cover the diamond area, but it won't look as realistic.

For completely internal environments like the one you are showing I would use reflectionprobe(s) as @Calinou said and as a fallback have a static prerendered environment panorama "sky" of a generic room consisting of the assets that you use in that scene.

Thank you all for your concise answers. ReflectionProbes are exactly what we need. At least "Debugging" this issue was a great learning experience and it makes sense that a metal is black if there is no light to reflect.