繁体   English   中英

计算对象适合屏幕高度所需的相机缩放

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM