Light that does not produce specular highlights on an otherwise specular material?

Hello,

I’m trying to add some diffuse light to an object (in addition to the ambient light). The object’s material allows specular highlights using the built-in render pipeline standard specular shader. However, I want the diffuse light to NOT show a specular highlight, while all other light sources should show a specular highlight on the object. Furthermore, I cannot bake the diffuse light because the diffuse light changes in time.

Would be most grateful for any suggestions!!

You have two options:

  • Use baked lights. They will not contribute realtime direct specular to shiny materials
  • Select the material in question, and uncheck Specular Highlights option. This works only when using Forward Rendering path

Thanks very much for your suggestions. However, the problem is that we need mixed behavior from different lights on the same material: some lights should have specular reflections, other lights should not have specular reflections, and some should show both specular and diffuse light. Is this possible? Unfortunately, I cannot use baked lights because all lights are changing in real time.

Thanks again!!

In that case, refer to my second suggestion. You’d still be able to use mixed lights, and remove specular highlights for select materials.

Thank you again! But it is possible to have this effect on ONE single material?

Thanks!

Yes, obviously. Just create a new material (or a material instance if you are using URP).

Why do you not want specular highlights? That’s physical correct. Sounds like your PBR material needs work?

Thanks very much for the replies! I really do appreciate your help.

The screenshot clarifies my problem (I hope! :slight_smile: ). The example shows the sun and an ambient light hitting the earth: on land and water. The sun works well - diffuse light on the land and specular on the water.

But I also need an ambient skybox-like light. But I need more control than a skybox in terms of the layers it affects. So I am not using the skybox. But I don’t want this ambient light to show specular highlights because it is not a physical light. Is there a way to control the specular behavior of a single light and remove the white specular effect shown below, while keeping the sun effect the same, and keeping the ambient light’s diffuse white light on the land?

Thanks again!

Override the Ambient Lighting mode to Color, and set the color to pure black. That would actually make more sense, given that there’s no ambient light in the darkness of space. For ambient lighting, you’d have to write a custom shader.

Yes, I have already set the Ambient Lighting mode to color/black, glad to hear I’m on the same page!

But I do need some additional subtle lights. So it looks like I will probably go down the shader path.

Thank you!