I’ve got a gltf file. When I import it inside the Three.js editor (https://threejs.org/editor/) I get a correct result when I add an environment map.
On the other hand, when I import my gltf in my project scene I’ve a different result. Even when I use the very same HDRI image. The metalness is way too shinny in this case.
Does anyone know what I’m missing? Thank you.
renderer.toneMapping = THREE.ACESFilmicToneMapping; renderer.toneMappingExposure = 1; renderer.outputEncoding = THREE.sRGBEncoding; new RGBELoader() .load( 'royal_esplanade_1k.hdr', function ( texture ) { texture.mapping = THREE.EquirectangularReflectionMapping; scene.environment = texture; } ); loader.load( './gltf/canette.glb', // called when the resource is loaded function ( gltf ) { obj = gltf.scene; mixer = new THREE.AnimationMixer( gltf.scene ); action = mixer.clipAction( gltf.animations[ 0 ] ); //obj scene.add( obj ); } );
EDIT :
Here‘s a live demo. Here‘s the gltf model.
Advertisement
Answer
Unfortunately, you are using a code snippet which does not match your actual three.js
version. You have to use at least r131
(or better the latest one r141
). Right now, you are using r129
.
If you use three.js
versions below r131
, you have to use PMREMGenerator
to prepare the environment map that you apply to PBR materials. Starting from r131
, the engine is doing this for you so you don’t have to worry about PMREMGenerator
at all.