我在OpenGL中制作游戏。我有一个视口使用glOrthof()
乘以变换矩阵。我差不多完成了这个游戏,但是我已经做了最后一分钟决定将所有内容缩小一点以提高可见度。我已经包含了一个图表,描述了我的屏幕当前是如何设置的(黑匣子)以及我想如何缩放它(红色框)。
给出黑框的宽度和高度,以及图中的x
和y
,是否可以调整视口,或者可以进行某种矩阵乘法来增加窗口大小
我不想实际缩放游戏,我只想增加窗口的大小(我猜最终会缩放游戏,但我想保留相对比例)。
现在,这就是我设置观点的方式:
glViewport(0, 0, backingWidth, backingHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(-backingWidth/2.0, backingWidth/2.0, -backingHeight/2.0, backingHeight/2.0, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
其中backingWidth
和backingHeight
分别是黑匣子的宽度和高度。
我是OpenGL的新手,所以非常感谢所有的帮助。
答案 0 :(得分:1)
如果要在同一视口大小中查看更多区域,可以增加给予glOrthof的值。
如果你将glOrthof的上/左/下/右乘以两倍大,那么你会看到每个方向的两倍,并且每个方向的一切都将是原始尺寸的一半,因为你要放相同数量的像素内容的两倍。
您可以将glOrthof乘以您想要的任何比例因子。
==编辑==
抱歉,我注意到您只想向右缩放X,而不是向中心缩放。在这种情况下,保留left
属性相同,只需将更多内容添加到glOrthof的right
值。