android - 使用 openGL ES 管理不同分辨率的手机

标签 android opengl-es mobile-phones

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

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

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

这是如何运作的,我应该如何制作一款在不同设备上都能很好运行的游戏?

最佳答案

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

考虑一个三角形

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

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

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

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

关于android - 使用 openGL ES 管理不同分辨率的手机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5223841/

相关文章:

android - 如何在android中的CalendarView中仅显示2周?

android - 如何在解析服务器中添加电子邮件验证

android - 如何在android中使用ICal4j解析ics文件

objective-c - 是否有可能在 opengl-es 2.0 中每个顶点有多个法线

objective-c - 检索视频 ram 使用 iphone

iphone - iOS OpenGL Shader 在实际设备上不起作用

android - 主页和后退按钮在 android 模拟器像素 2 和像素 3 api 中不起作用

php - 如何识别网站是在手机上打开还是在PC上打开

vb.net - 使用手机从 vb.net 应用程序发送短信

iphone - 最好的手机开发数据库