使用 openGL ES 管理不同的结果手机

发布于 2024-10-20 20:38:25 字数 174 浏览 2 评论 0原文

我正在学习 openGL ES 2.0 来制作 Android 游戏。

我想知道不同的结果屏幕会如何影响我的程序?

我制作了一个旋转三角形的示例程序,并注意到当我向侧面转动设备时,三角形会变小,并且与边缘的距离不同。

这是如何工作的以及我应该如何制作一款在不同设备上都能正常运行的游戏?

I am learning openGL ES 2.0 to make a game for android.

I was wondering how different resulution screens would affect my program?

I have made a sample program of a spinning triangle and noticed that when I turn my device sideways the triangle gets smaller and is at a different distance form the the edges.

How does this work and how am I supposed to make a game which works nicely on different devices?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等待我真够勒 2024-10-27 20:38:25

每个轴的屏幕坐标从 -1.0f1.0f,原点 (0|0) 位于屏幕中心。

的三角形

考虑到A(-1|-1)、B(+1|-1)、C(0|+1)

在纵向方向上正确显示,在横向方向上将被水平拉伸和垂直压缩。这是因为定位是相对于屏幕的:

A(左下)、B(右下)、C(上中)。

所以,缩放是不成比例的。在进行比例缩放时,您必须使用屏幕的纵横比并在顶点着色器中适当地变换顶点。

The screen's coordinates go from -1.0f to 1.0f for each axis with the origin (0|0) in the center of the screen.

Considering a triangle with

A(-1|-1), B(+1|-1), C(0|+1)

which is displayed correctly in portrait orientation, will be stretched horizontally and compressed vertically in landscape orientation. That is because the positioning is relative to the screen:

A(bottom left), B(bottom right), C(top center).

So, the scaling is unproportional. When doing proportional scaling, you have to work with the aspect ratio of the screen and transform the vertices appropriate in a vertex shader.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文