envMap does not corresponding to mesh roughness value

hi, I met a problem a few days ago and still cannot find a solution.
so I want to post here to see if anyone could help me out.
when i set metalness = 1
the metal material will look very dark and reflective and not respond to the roughness change(basically it looks the same no matter what roughness I changed.)
i am using lightmap and envMap without any lights.
other material like wood looks correct to me, the only problem is the metal material.
here is how it looks.

any ideas?

Looking at your screenshot, it seems that you have used a CubeTexture with six images as your environment map. So you have loaded it via CubeTextureLoader, right? If so, you have to make sure to use PMREMGenerator to preprocess/prefilter the environment map so it can be properly used with a PBR material. All PBR examples are doing this e.g.: