viridia
September 1, 2022, 8:43am
1
In my blender file, I have a shiny object:
In my three.js scene, I set an environment map and convert it to a cubic texture:
However, when rendered the object doesn’t look shiny at all:
To try and debug this, I created an environment map which is just black and white:
In the resulting render, you can barely make out that there is checkerboard pattern:
So my question is, why are the reflections so blurry and dull?
The code I’m using to load the environment map is pretty much what is given in the example in the docs:
const pg = new PMREMGenerator(renderer);
pg.compileEquirectangularShader();
const rt = pg.fromEquirectangular(texture);
Is the model shiny when you drop it to gltf-viewer ?
set metallness=1, roughness=0.5, envMapIntensity=5
viridia
September 1, 2022, 4:51pm
4
Here’s how it looks in the GLTF viewer with the “Venice Sunset” environment map:
This looks pretty much how I want it to look, so the problem is not the object. The problem must be in the lighting or environment map somewhere.
The material parameters are: roughness=0.24, Metallic=0.734. This looks plenty shiny in blender.
viridia
September 1, 2022, 5:03pm
5
I should also mention that I’m setting the environment map at the scene level, not on each individual object. Since I have thousands of different objects in the game, all loaded from GLB, I’d have to tweak each one individually otherwise.
Envmap should be quite easy to debug. Just do:
scene.add(new Three.Mesh(
new Three.SphereGeometry(2.0, 32, 32),
new Three.MeshStandardMaterial({
color: 0xcccccc,
roughness: 0.0,
metalness: 1.0
});
));
Then check if the envmap reflections look correct on the sphere.