【问题标题】:How to make inside color of cube visible in three.js?如何在three.js中使立方体的内部颜色可见?
【发布时间】:2019-10-22 18:01:44
【问题描述】:

我想用 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())。有谁知道出了什么问题?

【问题讨论】:

标签: javascript three.js


【解决方案1】:

要使盒子几何图形从内部可见,您需要确保正确设置了materialside field(即分配给cube 网格的那个)。

在您的情况下,将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

【讨论】:

    猜你喜欢
    • 2015-11-22
    • 2012-12-20
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2015-03-17
    相关资源
    最近更新 更多