放大和缩小是使用glOrtho还是glScale的最佳做法?
答案 0 :(得分:2)
这实际上取决于你所谓的缩放。
在典型的相机设置中(例如,从透视图中获得),通过缩小视野来实现变焦(就像在真实相机上一样!)。有关从视野到标准透视矩阵的实际数学,请参阅gluPerspective的文档。
glOrtho不会生成透视摄像头,因此您无法真正模仿标准缩放。它看起来更像是图片的二维变焦(你现在正在使用glOrtho吗?它没有给你的场景3D效果,是吗?)
答案 1 :(得分:1)
如果您已经设置了与glOrtho的平行投影,那么,如您所建议的那样,您可以通过将参数更改为glOrtho或使用glScale来放大和缩小。
我倾向于使用glScale,因为通过缩放1.2而不是必须重新计算左/右/上/下平面,更容易考虑设置20%缩放。
我不会声称这是“最佳做法”。
答案 2 :(得分:0)
glOrtho通常用于设置投影矩阵; glScale通常在设置模型视图矩阵时与其他各种变换一起使用。
大多数开发人员仅在开始时或窗口调整大小时设置其投影矩阵。 “缩放”意味着你每帧都会改变矩阵,所以看起来它应该属于模型视图。
总结:放大模型视图,并使用glScale。