blu*_*yke 3 javascript camera three.js
我搜索了许多有关堆栈溢出的相关问题,但我找不到这个问题的答案。
我的场景中有一大群动态的 Object3D,并用正交相机正面观察它们。
我想要一个简单的函数,在调用时,它会简单地匹配正交相机的上/左/下/右/缩放属性,以正确适应 Object3D 组。
我尝试了各种方法,但我的代码都不值得发布。我需要从一个全新的角度来看待这个问题(双关语)。我找到了各种其他答案,讨论改变相机的视场,一旦你知道从组的边界框的表面到相机的距离,但我不知道如何用正交相机来实现它,因为(据我尝试过)fov 属性不适用于它(也许它实际上适用,我只是不知道)。
所以我不太喜欢索要代码,但尽管如此,我还是想要一个函数,它可以自动调整正交相机的适当属性,以适应作为参数传递给它的对象,例如:
function fitOrthographicCameraToObject3DGroup(group) {
//implement here (my question)
}
Run Code Online (Sandbox Code Playgroud)
计算网格的边界框并应用此代码。这对我有用
var camera = new THREE.OrthographicCamera(container.offsetWidth / -2, container.offsetWidth / 2, container.offsetHeight / 2, container.offsetHeight / -2, 100, 100000);
//For centering the meshGroup
var box = new THREE.Box3().setFromObject(meshGroup);
box.center(meshGroup.position);
meshGroup.localToWorld(box);
meshGroup.position.multiplyScalar(-1);
//For fitting the object to the screen when using orthographic camera
Camera.zoom = Math.min(container.offsetWidth / (box.max.x - box.min.x),
container.offsetHeight / (box.max.y - box.min.y)) * 0.4;
Camera.updateProjectionMatrix();
Camera.updateMatrix();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6600 次 |
| 最近记录: |