0

我正在用 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 还很陌生,因此感谢所有帮助。

4

1 回答 1

1

如果您想在相同的视口大小中看到更多区域,您可以增加 glOrthof 的值。

如果您将 glOrthof 的顶部/左侧/底部/右侧乘以两倍大,那么您将在每个方向上看到两倍,并且每个方向上的所有内容都将是原始大小的一半,因为您放置的量是原来的两倍内容转换为相同数量的像素。

您可以将 glOrthof 乘以您想要的任何比例因子。

==编辑==

抱歉,我注意到您只想将 X 向右缩放,而不是中心。在这种情况下,保持left属性不变,只需向rightglOrthof 的值添加更多。

于 2012-08-14T17:39:41.243 回答