我花了几十个小时搜索谷歌并在论坛上提问,试图弄清楚我的Android上的OpenGL ES 2.0应用程序是否由于我的错误,设备上的病毒,OpenGL实施而滞后三星Galaxy Express上的Android或OpenGL实现。
我什么都没发现,如果有人想尝试回答根问题,我会非常感激,但我的问题是我是否应该回到OpenGL ES 1.0,如果这是其他人使用的话。
完全相同的应用程序(单旋转三角形)使用完全相同的时间步长,唯一的区别是准系统OpenGL ES 1.0与OpenGL ES 2.0更改导致2.0应用程序中的口吃和1.0应用程序中的平滑动画。
其他游戏只使用1.0吗?如果他们使用2.0,你可以指出一个已知不会引起明显口吃的例子,我可以在我的设备上下载和测试吗?我已经从谷歌自己下载了OpenGL ES 2.0样本,结果相同。
Samsung Galaxy Express不能优雅地处理OpenGL ES 2.0吗?有没有办法在没有窃取或询问随机陌生人的情况下获得另一台Android设备,我没有钱。
谢谢。
答案 0 :(得分:0)
事实上,OpenGL(不仅仅是ES)是一个规范,其他部分的实现不受任何人的管理,在一定程度上受到规范的影响,这意味着实现可能会有很大不同,但不应该。 这是因为OpenGL使用客户端驱动程序来处理命令,而这些命令由GPU创建者(通常)编写。对于PC,您可以轻松命名所有杰出的GPU构建器,nVidia和ATI,这样您至少可以知道会发生什么。
对于手机而言,有许多GPU / CPU组合因此,由于启动设计的错误或错误而不仅仅是GPU的驱动程序,因此发现更多错误,因为手机的创建者也可能对系统进行更改或使用低速/ grad部分会导致性能不佳。
OpenGL ES 1.0我认为自2.0以来更常见,主要是因为它向后兼容所以支持2.0的设备肯定也支持1.0。对于开发,您可以通过在PC上制作框架和使用模拟器(OpenGL ES)来跳过整个“手机上构建”的事情,当您完成后,只需将OpenGL代码复制到手机应用程序中。
由于制造商试图保持低成本,他们倾向于谎称他们实际做了什么,或支持所以ES 1.0比2.0更简单和硬连线有可能滞后可能是由于支持不良的OpenGL
答案 1 :(得分:0)
根据最新的Android Platform Dashboards,Open GL 2.0占过去7天访问Play商店的设备的98.3%,使其成为游戏开发的标准。
答案 2 :(得分:0)
我注意到很多人似乎都遇到了针对三星Android设备的OpenGL ES驱动程序的问题。您应该尝试使用具有不同图形核心的其他设备。
自Ice Cream Sandwich以来,Android平台本身大多使用OpenGL ES 2.0,包括主要组件,如SurfaceFlinger。它不再是可选的。查看this article.