gpt4 book ai didi

javascript - ThreeJS collada 文件未居中

转载 作者:行者123 更新时间:2023-12-03 02:31:12 24 4
gpt4 key购买 nike

我是 ThreeJS 新手,我正在尝试将 collada 文件加载到查看器中。我首先复制 Elf colladaLoader 演示的代码。

https://threejs.org/examples/#webgl_loader_collada

我在 800px 方形模态窗口中工作得很好,而且看起来不错。问题是当我加载任何其他 .dae 文件时它没有居中。

演示显然是使用所有正确的设置创建的,以将对象和相机放置在正确的位置,但我不知道将加载哪些文件。

有什么方法可以让相机直接观察物体,使其居中并将其放置在足够远的位置,以便物体填充容器吗?

最佳答案

camera.lookAt( object.position ) 将完成您想要的大部分操作。将相机放置在适当的距离是比较主观的。我通常会做这样的事情:

object.updateMatrixWorld();
const box = new THREE.Box3().setFromObject(object);
const size = box.getSize().length();
const center = box.getCenter();

object.position.x += (object.position.x - center.x);
object.position.y += (object.position.y - center.y);
object.position.z += (object.position.z - center.z);
camera.position.copy(center);
camera.position.x += size / 2.0;
camera.position.y += size / 5.0;
camera.position.z += size / 2.0;
camera.near = size / 100;
camera.far = size * 100;
camera.updateProjectionMatrix();
camera.lookAt(center);

参见THREE.Object3D docs ,三.js r89。

关于javascript - ThreeJS collada 文件未居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48726645/

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