user2244365
user2244365

Reputation: 617

three.js how to make double sided object

Blender export obj don't export double sided objects. How can I render objects in DoubleSide mode. I tried this without succes:

const loader = new THREE.OBJMTLLoader();
loader.load('models/test.obj');
loader.addEventListener( 'load', function ( event ) {
    objects = event.content;
    objects.position.set(0,5,0);
    objects.scale.set(1.5,1.5,1.5);
    objects.mesh.doubleSided = true;
    scene.add(objects);
});

Upvotes: 31

Views: 50272

Answers (2)

WestLangley
WestLangley

Reputation: 104833

In your case, you add the following to your callback function:

objects.traverse( function( node ) {
    if( node.material ) {
        node.material.side = THREE.DoubleSide;
    }
});

The doubleSided property of Mesh is deprecated. It was replaced with the side property of Material.

Also, it is best to learn from three.js examples that work with the current version of the library.

three.js r.57

Upvotes: 80

Ben Winding
Ben Winding

Reputation: 11807

2022

Future readers! Just add the side option to the material constructor:

const material = new THREE.MeshLambertMaterial({
  color: 0xff0000,
  side: THREE.DoubleSide
  //           ^ this line here
});

Upvotes: 6

Related Questions