gpt4 book ai didi

three.js - 为什么不显示 THREE.BoundingBoxHelper?

转载 作者:行者123 更新时间:2023-12-04 07:30:38 25 4
gpt4 key购买 nike

enter image description here
我以前设法显示了框,但在这里,我已经剥离了所有内容,以便通过定位 collada 模型来试验扩展框,但框不会显示。

function loadObjects(){
cobj = new THREE.Group();
cobj.name = "5";
scene.add(cobj);
pobj = cobj;
collada("14",pobj);
collada("7",pobj);
function collada(key,pobj){
var nn,file,path,loader,dae,s;
ns = nset[key].shared;
model = ns.Product;
source = ns.Source;
ext = ns.Extension;
path = source +model +ext;
loader = new THREE.ColladaLoader();
loader.load(path,function (collada) {
dae = collada.scene;
dae.name = key;
sc = 25.4;
dae.scale.set(sc,sc,sc);
pobj.add(dae);
});
}
obj = scene.getObjectByName("5");
console.log(obj);
helper = new THREE.BoundingBoxHelper(obj,0xff0000);
helper.update();
scene.add(helper);
sc = 0.1;
scene.scale.set(sc,sc,sc);
requestAnimationFrame( animate );
renderer.render( scene, camera );
$("canvas").show();
}

最佳答案

首先,BoundingBoxHelper现在是 BoxHelper .看来您正在使用 three.js 的旧版本.
此外,您的 collada()功能不同步。执行后 collada("14",pobj);collada("7",pobj); Assets 尚未加载,这意味着您正在计算空组对象的边界框。
我建议你等到 Collada 模型通过 THREE.LoadingManager 加载完毕。然后将助手添加到您的场景中。
或者,确保调用 helper.update()在你的动画循环中。然而,如果对象是静态的并且不改变,这种方法是浪费的。所以最好使用 onLoad()加载管理器的回调。

关于three.js - 为什么不显示 THREE.BoundingBoxHelper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67957274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com