Object does not show color on the inside

I have a problem with applying material in an .glb object (loaded by GLTFLoader). The material only being applied in the outer part of the object (the red one). If I didn’t set any material, the object is solid (no transparent side, the black one).

Did I miss anything? I want it to be applied in the inner part too. Thanks.

Below is the code that set initial color for object where parent is the object and material is new THREE.MeshStandardMaterial({ color: 0xff0000, shininess: 0 });

 function initColor(parent, material ) {
   parent.traverse((o) => {
     console.log('initColor', { o });
     if (o.isMesh) {
       o.material = material;
     }
   });
 }

Hi!

try this:
new THREE.MeshStandardMaterial({ color: 0xff0000, shininess: 0, side: THREE.DoubleSide });

Thanks! That fixed it. I also found that solidifying the object also works, since it practically makes the object has double side (inner and outer).

1 Like