缩放随机3d模型以适应视口

时间:2010-04-03 15:20:27

标签: opengl

如何缩放随机3d模型以适应opengl视口?我能够将模型置于视口中间。如何缩放它以使其适合视口。该模型可以是飞机,锥形,3d对象或任何其他随机模型。

感谢任何帮助。

1 个答案:

答案 0 :(得分:5)

您需要以下信息:

  • r:对象的bounding sphere
  • 的半径
  • z:从物体到相机的距离
  • fovy:相机的垂直视野(让我们说以度为单位),因为您可能已将其传递给gluPerspective

制作一个小情况,在那里找到正确的三角形,并推导出一个完全适合的球体的最大半径。鉴于上述参数,您应该找到r_max = z * sin(fovy*M_PI/180 / 2)

由此,比例因子为r_max / r

所有这些都假设视口比它高;如果不是,则应首先派生fovx,然后使用fovy而不是{{1}}。