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

标签 javascript three.js

我想用 THREE.js 从一个立方体开始 build 一个房间。到目前为止,我有以下代码:

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

最佳答案

要使盒子的几何形状从内部可见,您需要确保 side field Material (即分配给您的立方体网格的 Material )已适当设置。

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

关于javascript - 如何使立方体的内部颜色在 three.js 中可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56490764/

相关文章:

javascript - Knob.js - 有没有一种方法可以链接拨号盘,以便它们具有总和?

javascript自动刷新div而不刷新整个页面

Javascript:如何确定链接是否指向与其所在页面相同的域?

javascript - Three.js透视相机当前 Angular (以度为单位)

Three.js - 平滑的阴影导致奇怪的边缘

javascript - 在 three.js 中合并几何

javascript - 使用 javascript/hmlt5 的类库项目。是否可以?

javascript - angularjs view express 不允许 `+` ?

angular - 仅在 Safari 上的 Angular ThreeJS 应用程序中的 ChunkLoadError

three.js - 将相机保持在地面上方(使用 OrbitControls.js)