OpenGL ES:为对象获取固定大小

时间:2010-12-13 21:42:08

标签: iphone android opengl-es

我有一个开放的GL ES(1.1)场景,里面有很多3d对象和一个“玩家”模型。无论Android手机或Iphone上的屏幕方向如何,我都希望播放器具有相同的像素大小。 我使用glOrtho或广告牌。这是一个透视3D场景,但我只是希望对象在两个屏幕方向上具有相同的大小。目前,如果我旋转手机,我保持相同的宽高比,但场景在横向模式下“缩小”。 我怀疑我必须使用glFrustrum的参数才能得到这个;但还是想不通怎么做。 所以欢迎任何想法!

由于

1 个答案:

答案 0 :(得分:0)

当设备转向时,您需要更改宽高比,否则对象的大小将会改变。如果你没有改变与窗户的距离(即动物园进出),当你“转向”时,你自己透过窗户向外望去,窗户另一侧的物体只会是相同的大小。窗口侧面,窗口的纵横比发生变化(隐喻开始不起作用)。

如果您在视图中绘制一个正方形,边长是屏幕的短边,那么当您将手机侧向转动时仍然应该有一个正方形,仍然覆盖屏幕上的相同区域。

如果您使用gluPerspective中的代码,事情可能会更容易计算。您将宽高比设置为实际宽高比,并为第一个宽高比固定fovy。然后,您可以将此纵横比的fovx用作旋转视图的fovy