Three.js 如何制作双面物体

问题描述 投票:0回答:2

Blender 导出 obj 不导出双面对象。如何以双面模式渲染对象。我尝试过但没有成功:

var 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);
    });
three.js webgl
2个回答
78
投票

在您的情况下,您可以将以下内容添加到回调函数中:

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

doubleSided
Mesh
属性已弃用。它被替换为
side
Material
属性。

此外,最好学习适用于当前版本库的 Three.js 示例。

三.js r.57


6
投票

2022

未来的读者!只需将

side
选项添加到材质构造函数即可:

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

© www.soinside.com 2019 - 2024. All rights reserved.