真正的 OpenGL 缩放






4.60/5 (15投票s)
2002年2月12日

332446

9896
透视视图中的真实缩放...
引言
本文的主题集中在透视 OpenGL 视图中的缩放。我写这篇文章是因为我发现了一些使用正交投影进行 OpenGL 视图缩放的例子。但我找到的最先进的例子使用透视投影,并没有实现真正的缩放,而是通过改变视点或相机角度来模拟缩放效果。我建议的技术实现了真正的缩放,并且不会改变相机角度或透视参数(视点、参考点、裁剪平面)。我通过使用函数 glFrustum
代替标准的 gluPerspective
,并操作投影矩阵的缩放和平移参数来实现这个结果(参见类 COGL
中的函数 COGL::SetPerspective(const CRect &rcClient)
)。COGL
类维护两个归一化的矩形:一个用于完整大小的图像,另一个用于当前的缩放矩形。OpenGL 呈现的图像按矩形的比例缩放,并根据视口宽高比进行调整,然后平移到当前缩放矩形的中心。
最后,对我的拙劣英语表示歉意。