Dim Specular Highlights

I noticed that specular highlights on Materials (Standard, Phong etc.) are exaggerated and don’t match the actual lights’ color. When a PointLight is only marginally gray (almost black), the specular on the mesh is still bright white.

Those two images hopefully illustrate what I mean:
Standard Material white
PointLight almost black

I would like to achieve a specular highlight, that is not so bright and exaggerated. Maybe there is another way, maybe a simple ShaderMaterial that you could point at. I really need to tone that specular down without making the material more rough.


You can define the specular color on the material, see here. But it’s default is already at 0x111111 so you might rather try adjust the intensity of the light.

Thanks for your answer.

Using PhongMaterial and setting specular:

To achieve kind of a plastic/acetate look and feel the shininess would need to be above above 5000 up to 10000, otherwise it looks too rough or too metal. Setting such a high shininess produces the same result of exaggerated white, even if the specular is set to 0x010101.

So, maybe I should rephrase: How can I achieve a sharper specular spot (no roughness), but without metal and without the white being so bright?

So clearly a factor is kind of off, at least for a plastic look, it’s kind of hard to get the specular right.

I’ve added a specularMap, 128x128, plain color 0x010101, which functions as additional factor for specular and the MeshPhongMaterial.specular is now more sensitive.

Question at the devs: Would it be possible to make specularStrength a parameter (ranging from 1.0 to 1.0 / 256.0), so we could avoid adding a specular map of color 0x010101?