我已经搜索了很多有关堆栈溢出的相关问题,但是我找不到这个问题的答案。
我的场景中有一个很大的,动态的Object3D组,用正交摄影机直视它们。
我想有一个简单的函数,当调用该函数时,将仅与正交摄影机的顶部/左侧/底部/右侧/缩放属性匹配,以正确适合Object3D组。
我已经尝试过各种方法,但是我的代码都不值得发表。我需要从一个全新的角度(双关语意)来审视这个问题。一旦知道了组边界框的表面到摄像机的距离,我发现了其他各种讨论如何更改摄像机视场的答案,但是我不知道如何使用正交摄影机实现这一点,因为(据我尝试)fov属性不起作用(也许实际上,我只是不知道)。
因此,我并不特别喜欢询问代码,但是我仍然想要一个可以自动调整正交摄影机的适当属性以适合作为参数传递给它的对象的函数,例如:
function fitOrthographicCameraToObject3DGroup(group) {
//implement here (my question)
}
一旦有了边界框,就可以设置正交摄影机的顶部/左侧/底部/右侧。只需取边界框的一半长度即可。
缩放是一个问题,为此,您可以通过根据边界框的大小将场景放大或缩小适当的大小,从而将场景限制在单位立方体中。然后您不必担心缩放,并且上面的上/左/下/右值变为0.5 / 0.5 / -0.5 / -0.5。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句