我见过很多关于如何缩放相机以使物体充满屏幕的问题,但我正在尝试移动物体以充满屏幕。
我一直在尝试使用原始照片像素大小进行类似的操作,并且这些对象已缩放:
var dist = object.originalSize.height > $(window).height()
|| object.originalSize.width > $(window).width()
? ( $(window).height() / object.originalSize.height ) * 100
: 10;
var pLocal = new THREE.Vector3( 0, 0, -dist);
var target = pLocal.applyMatrix4( camera.matrixWorld );
var tweenMove = new TWEEN.Tween(object.position).to(target, 1500).easing(TWEEN.Easing.Cubic.InOut);
然而,为了想出一个将对象移动到的向量,我无法让对象填满屏幕。我知道计算一个物体需要多远才能填满屏幕所需的数学知识吗?
该对象是一个 Object3D,根据其类型具有不同的子对象。
我知道原始照片的尺寸 (object.originalSize.height),并且我知道已按比例放大以适合 2 的幂的几何形状。
非常感谢您收到有关如何计算相机所需距离以确保物体适合屏幕边界的任何线索。
我还知道该项目的边界框,即从 1024 到 128。
这有效,不知道为什么..
var vFOV = camera.fov * Math.PI / 180;
var ratio = 2 * Math.tan( vFOV / 2 );
var screen = ratio * (window.innerWidth / window.innerHeight) ;
var size = getCompoundBoundingBox( object ).max.y;
var dist = (size/screen) / 4;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)