如何计算摄像机位置,以便指定的3D模型填充视口?

时间:2012-07-02 07:50:16

标签: math 3d xna

如何计算相机位置,以便指定的3D模型填充视口?应保持摄像机方向。相机是一个透视相机。

1 个答案:

答案 0 :(得分:5)

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

tan(a/2) = r/L

哪个给出了

L = r/tan(a/2)

如果摄像机视图方向为v,则新摄像机位置将为

p = c - normalize(v)*L

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

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