[英]Calculate camera zoom required for object to fit in screen height
在Three.js中,我使用此公式来计算可见的宽度和高度
var vFOV = camera.fov * Math.PI / 180; // convert vertical fov to radians
var height = 2 * Math.tan( vFOV / 2 ) * dist; // visible height
var aspect = window.width / window.height;
var width = height * aspect; // visible width
然后,我通过WIDTH计算物体完全适合渲染区域所需的相机缩放
var zoom = (ObjectHeight/aspect) / (2*Math.tan(vFOV/2)) + ObjectDepth;
如何计算对象高度正确适合渲染区域所需的相机缩放?
感谢GuyGood,我找到了解决方案:
var zoom = (ObjectHeight/2) / Math.tan(vFOV/2) - ObjectDepth;
我正在基于boundingSphere半径执行以下操作:
geometry.computeBoundingSphere();
radius = geometry.boundingSphere.radius;
distanceFactor = Math.abs( aspect * radius / Math.sin( fov/2 );
这是基于此处的内容,我希望我以正确的方式对其进行解释: http : //www.flipcode.com/forums/thread/4172
这个distanceFactor
是沿着正确的方向移动相机所需的因素。 目前,我不确定是按高度还是按宽度,但是也许可以帮助您确定。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.