65.9K
CodeProject 正在变化。 阅读更多。
Home

真正的 OpenGL 缩放

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.60/5 (15投票s)

2002年2月12日

viewsIcon

332446

downloadIcon

9896

透视视图中的真实缩放...

Sample Image - Zoom.jpg

引言

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

最后,对我的拙劣英语表示歉意。

© . All rights reserved.