three.js:边界框奇怪的行为
three.js: bounding box strange behaviour
我正在使用 three.js
,但我发现某些功能与我预期的不同。在我的应用程序中,我定义了一个立方体及其边界框:
var scene = new THREE.Scene();
var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var material = new THREE.MeshPhongMaterial({color: 0xbaf5e8, flatShading: true});
var cube = new THREE.Mesh( geometry, material );
cube.receiveShadow = true;
scene.add(cube);
var helper_bbox = new THREE.BoxHelper(cube);
helper_bbox.update();
scene.add(helper_bbox);
当我尝试访问计算边界框 (helper_bbox.geometry.boundingBox
) 时,我注意到它的值为 null
,尽管它在屏幕上完美呈现。尽管如此,边界球(helper_bbox.geometry.boundingSphere
)是可以访问的。
我不明白为什么会这样。有人对此有任何想法吗?有没有我应该显式调用的方法来检索边界框点的坐标?谢谢。
不会自动计算几何边界框,除非另一种内部方法需要它们。您可以强制计算盒子——并检查它——像这样:
object.geometry.computeBoundingBox();
console.log( object.geometry.boundingBox );
three.js r.87
我正在使用 three.js
,但我发现某些功能与我预期的不同。在我的应用程序中,我定义了一个立方体及其边界框:
var scene = new THREE.Scene();
var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var material = new THREE.MeshPhongMaterial({color: 0xbaf5e8, flatShading: true});
var cube = new THREE.Mesh( geometry, material );
cube.receiveShadow = true;
scene.add(cube);
var helper_bbox = new THREE.BoxHelper(cube);
helper_bbox.update();
scene.add(helper_bbox);
当我尝试访问计算边界框 (helper_bbox.geometry.boundingBox
) 时,我注意到它的值为 null
,尽管它在屏幕上完美呈现。尽管如此,边界球(helper_bbox.geometry.boundingSphere
)是可以访问的。
我不明白为什么会这样。有人对此有任何想法吗?有没有我应该显式调用的方法来检索边界框点的坐标?谢谢。
不会自动计算几何边界框,除非另一种内部方法需要它们。您可以强制计算盒子——并检查它——像这样:
object.geometry.computeBoundingBox();
console.log( object.geometry.boundingBox );
three.js r.87