let textureEquirec = new TextureLoader().load("./envmap.jpg");
textureEquirec.mapping = EquirectangularReflectionMapping;
textureEquirec.encoding = sRGBEncoding;
let geometry = new SphereBufferGeometry(100, 100, 100);
let mat = new MeshStandardMaterial({
envMap: textureEquirec,
color: 0xff0000,
envMapIntensity: 1,
roughness: 0.3,
metalness: 1
});
Question is: Is this the intended look of roughness shader + envmap? Or am i doing something wrong here.
Question: MeshStandardMaterial doc says: Note: only cube environment maps are supported for MeshStandardMaterial.
yet, it works for me with this kind of texture, i guess docs should be updated? Or am i misunderstanding something here. I also tried pmremgenerator with the same result.
Equirectangular environment maps are internally converted to cube maps. The shader can indeed only process cube maps.
In general, you should never use a PBR material like MeshStandardMaterial without PMREMGenerator otherwise the result is not physically correct. Do you mind updating your code so it uses PMREMGenerator?
thank you this makes it better!
But lowering roughness unfortunately is not an option for me. So i suppose, this is roughness shader limitation, this kind of artefacts.
Possibly. I’m not sure about that, too. The problem is that RoughnessMipmapper is still broken under WebGL 2. Hence, I did not use it in a project, yet.