2009-10-06 169 views

回答

2

这真的取决于你所说的缩放。

在典型的照相机设置中(例如,从视角获得),通过减小视场(就像在真实照相机上一样!)来实现变焦。请参阅gluPerspective的文档以了解从视场到标准透视矩阵的实际数学运算。

glOrtho不会生成透视相机,因此您并不真正模拟标准缩放。它看起来更像是图片的2-D缩放(您目前使用glOrtho吗?它不是3D渲染,是吗?)

1

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

我倾向于使用glScale,因为通过缩放1.2而不是重新计算左/右/上/下平面来设置20%缩放比较容易。

虽然我不认为这是“最佳实践”。

0

glOrtho通常用于设置投影矩阵; glScale通常用于设置模型视图矩阵以及其他各种变换。

大多数开发人员仅在每天开始或调整窗口大小时设置投影矩阵。 “缩放”意味着每帧都会改变矩阵,所以它看起来应该属于模型视图。

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