我想用 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/