opengl - 缩放随机 3D 模型以适合视口(viewport)

标签 opengl

如何缩放随机 3D 模型以适合 opengl 视口(viewport)?我能够将模型置于视口(viewport)中央。如何缩放它以适合视口(viewport)。该模型可以是飞机、圆锥体、3d 物体或任何其他随机模型。

感谢任何帮助。

最佳答案

您将需要以下信息:

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

画出这个情况的一个小草图,找到其中的直角三角形,并推导出完全适合的球体的最大半径。给定上述参数,您应该找到 r_max = z * sin(fovy*M_PI/180/2)

由此,比例因子为r_max/r

所有这些都假设视口(viewport)的宽度大于高度;如果不是,您应该首先派生 fovx,并使用它来代替 fovy

关于opengl - 缩放随机 3D 模型以适合视口(viewport),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2571645/

相关文章:

c++ - OpenGL、GLM 四元数旋转

c++ - 创建 OpenGL 4.3 上下文会使 GLX 崩溃

OpenGL:深度附件破坏帧缓冲区

opengl - 运动矢量 - 如何正确计算它?

opengl - 法线贴图问题

c - GLUT不会画画

java - 如何从 GLM 到 JOML(OpenGL 数学库)

opengl - stb_truetype 计算字符串的维度

delphi - 在 GLScene 中确定与视锥体的交集

macos - 如何使用 GeForce 9400 在 OS X 上进行 OpenGL 3 编程