Opengl es OpenGl ES中的放大和缩小

Opengl es OpenGl ES中的放大和缩小,opengl-es,Opengl Es,要放大和缩小,最好使用glOrtho或glScale?如果您已使用glOrtho设置了平行投影,则如您所建议的,您可以通过将参数更改为glOrtho或使用glScale来放大和缩小 我倾向于使用glScale,因为更容易考虑通过1.2的缩放设置20%的缩放,而不必重新计算左/右/上/下平面 不过,我不认为这是“最佳实践”。这取决于你所说的缩放 在一个典型的相机设置中,(比如说,从一个透视图上获得的),变焦是通过缩小视野来实现的(就像在真实的相机上一样!)。有关从视野到标准透视矩阵的实际数学,请参

要放大和缩小,最好使用glOrtho或glScale?

如果您已使用glOrtho设置了平行投影,则如您所建议的,您可以通过将参数更改为glOrtho或使用glScale来放大和缩小

我倾向于使用glScale,因为更容易考虑通过1.2的缩放设置20%的缩放,而不必重新计算左/右/上/下平面


不过,我不认为这是“最佳实践”。

这取决于你所说的缩放

在一个典型的相机设置中,(比如说,从一个透视图上获得的),变焦是通过缩小视野来实现的(就像在真实的相机上一样!)。有关从视野到标准透视矩阵的实际数学,请参见gluPerspective文档


glOrtho不会生成透视摄影机,因此您不会真正模拟标准变焦。它看起来更像是图片的二维变焦(您当前使用的是glOrtho吗?它不会让您的场景呈现3D效果,是吗?

glOrtho通常用于设置投影矩阵;glScale通常在设置模型视图矩阵时与各种其他变换一起使用

大多数开发人员只在一天开始或窗口调整大小时设置投影矩阵。“缩放”意味着每一帧都要更改矩阵,因此它似乎应该属于模型视图

总结:放大模型视图,并使用glScale