- Home /
How to make Standard shader *Non*-reflective?
I'm trying to make a matt, non-reflective material, such that when there are no lights, and zero ambient light intensity, the material should appear black.
The problem is, even with the Metallic and Smoothness channels set to zero (or via black maps), the material will appear dark grey because of global Reflection Intensity. (in this case, reflection source is a skybox) I don't want to reduce global Reflection Intensity, or change the source, as this is set up for other objects.
It's not too noticeable with Unity's Default-Skybox, but with brighter skyboxes it's very apparent.
Since noticing this, I can see that even more standard materials, e.g. dull wood, appear much less contrasty in normal lighting when using the Standard shader, because of this background grey added by unwanted skybox reflections .
In the first screenshot is a black cube (Standard shader) against a true-black background (legacy shader). No lights, no ambient light, so you can see the effect of the unwanted skybox reflection adding unwanted light, appearing grey.
In the second, you can see how the Standard shader wood looks washed-out (low contrast) compared to the Legacy diffuse, because of the reflections.
In the third, is the same thing but with global Reflection Intensity set to zero, so you can see how the Standard no longer looks washed-out.
One workaround is to add a black Occlusion map to the material. Does this have a performance cost, or is it always calculated anyway?
Your answer
Follow this Question
Related Questions
Terrain + Standard shader? 1 Answer
Warp StandardSpecular Reflections WITHOUT Affecting Viewdir? 0 Answers
Sharp reflections despite material smoothness? 0 Answers
Reflection probes overriding roughness 0 Answers
Reflections not working on IOS 2 Answers