【问题标题】:How to calculate the camera position, so that a specified 3D model fills the viewport?如何计算相机位置,让指定的 3D 模型填充视口?
【发布时间】:2012-07-02 07:50:15
【问题描述】:

如何计算相机位置,让指定的 3D 模型填满视口?应保持相机方向。相机是透视相机。

【问题讨论】:

    标签: math 3d xna


    【解决方案1】:

    计算模型周围的边界球。假设半径为r,中心为c。将相机目标点放在球体的中心。如果您的相机具有视野 a,您可以计算从相机到相机目标所需的距离 L。

    tan(a/2) = r/L
    

    这给了

    L = r/tan(a/2)
    

    如果摄像机视图方向是 v 开始,新摄像机位置将是

    p = c - normalize(v)*L
    

    这将保持相机的方向并确保整个模型可见。

    请注意,如果您的视口是矩形而不是正方形,则必须使用 F.O.V.从视口较短的一侧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-23
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 2016-07-17
      • 1970-01-01
      • 2014-06-23
      • 2015-02-06
      相关资源
      最近更新 更多