如何在three.js中使立方体内部的颜色可见?

3

我希望通过一个立方体来开始使用THREE.js创建一个房间。目前我有以下代码:

function loadModelcube() {
    console.log("Inside the function");
    cube.traverse( function( node ) {
    if( node.material ) {
        node.material.side = THREE.DoubleSide;
        }
    });
    scene.add( cube );
}

var geometry = new THREE.BoxGeometry(100,50,100);
var material = new THREE.MeshBasicMaterial({color: 0xff4444, wireframe: false}); 
cube = new THREE.Mesh(geometry, material);

var managercube = new THREE.LoadingManager( loadModelcube );

使用上面的代码,魔方并没有像预期的那样可见。另外,我也没有看到如预期地打印出控制台日志(即由于调用loadModelcube()函数而导致的)。有人知道出了什么问题吗?


1
可能是three.js如何制作双面对象的重复问题。 - AKX
1个回答

4
为了使盒状几何在内部可见,您需要确保material(即分配给您的cube网格的材质)的side字段被适当设置。
在您的情况下,将material.side设置为THREE.BackSide即可实现所需的结果。
应用以下更改即可解决问题:
var geometry = new THREE.BoxGeometry(100,50,100);
var material = new THREE.MeshBasicMaterial({color: 0xff4444, wireframe: false}); 

/* Cause the material to be visible for inside and outside */
material.side = THREE.BackSide; 

var cube = new THREE.Mesh(geometry, material);
scene.add(cube);

或者,如果你希望立方体能够从内部和外部都可见,你可以将material.side设置为THREE.DoubleSide


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接