Performance 从OpenGL ES 1.1到ES 2只是为了性能问题

Performance 从OpenGL ES 1.1到ES 2只是为了性能问题,performance,opengl-es,Performance,Opengl Es,我读了很多关于从ES1.1到ES2的利弊的书,我只想澄清一件事。我使用ES 1.1制作的游戏在某些设备上存在性能问题(运行速度慢且FPS低),我只是想知道我是否对ES 2进行了更改,这会有帮助吗?游戏使用了灯光、混合和纹理。我不希望把它搞得很热闹或改变效果,只是简单地提高性能 在不知道如何构建渲染器的情况下,很难说在GLES 1.1和GLES 2.0之间您可以期望什么样的性能提升。理想情况下,是的,通过使用GLE2.0,您将看到性能的提高。这可能是因为您使用的任何平台都在通过GLE2.0处理GL

我读了很多关于从ES1.1到ES2的利弊的书,我只想澄清一件事。我使用ES 1.1制作的游戏在某些设备上存在性能问题(运行速度慢且FPS低),我只是想知道我是否对ES 2进行了更改,这会有帮助吗?游戏使用了灯光、混合和纹理。我不希望把它搞得很热闹或改变效果,只是简单地提高性能

在不知道如何构建渲染器的情况下,很难说在GLES 1.1和GLES 2.0之间您可以期望什么样的性能提升。理想情况下,是的,通过使用GLE2.0,您将看到性能的提高。这可能是因为您使用的任何平台都在通过GLE2.0处理GLE1.1API,但这在很大程度上取决于您所做的工作


我建议您首先分析您的程序,看看是什么导致了性能问题,然后再决定这是您选择的API的问题。这可能是因为您不断地重新加载一些纹理,或者您没有正确地执行状态管理,或者您出于某种原因只是在执行一些阻塞其余代码的操作。同样,在不了解您的代码的情况下,任何人都不可能只通过更改API来确定您的游戏性能是否会提高。

如果不知道如何构建渲染器,很难说您希望在GLES 1.1和GLES 2.0之间获得什么样的性能提升。理想情况下,是的,通过使用GLE2.0,您将看到性能的提高。这可能是因为您使用的任何平台都在通过GLE2.0处理GLE1.1API,但这在很大程度上取决于您所做的工作


我建议您首先分析您的程序,看看是什么导致了性能问题,然后再决定这是您选择的API的问题。这可能是因为您不断地重新加载一些纹理,或者您没有正确地执行状态管理,或者您出于某种原因只是在执行一些阻塞其余代码的操作。同样,在不了解您的代码的情况下,任何人都不可能仅仅通过更改API来确定您的游戏性能是否会有所提高。

您知道为什么您的应用程序运行速度没有达到您想要的速度吗?@Nicol。我每次在Ondraw()中运行大约50到100个抽屉元素()。我不应该这样做吗?(我确实需要重新绘制它们,因为它们都在以某种方式移动。)你知道为什么你的应用程序运行得没有你想要的那么快吗?@Nicol。我每次在Ondraw()中运行大约50到100个抽屉元素()。我不应该这样做吗?(我确实需要重新绘制它们,因为它们都在以某种方式移动。)当你说连续重新加载纹理时,你是指调用bindtexture()还是指加载它们,就像我在启动时所做的那样。另外,我想这可能是我编写的糟糕代码,但我认为我在Ondraw()中调用了drawelement()大约50到100次,而一些较轻的手机无法处理。再次,分析一下你的代码。在不知道你做了什么的情况下,我无法合理地猜测你的表演将在何处消亡。也就是说,如果你能最小化状态变化的数量,那通常是好的。这包括调用
BindTexture
。当你说连续重新加载纹理时,你是指调用BindTexture(),还是指加载它们,就像后面我在启动时所做的那样。另外,我想这可能是我编写的糟糕代码,但我认为我在Ondraw()中调用了drawelement()大约50到100次,而一些较轻的手机无法处理。再次,分析一下你的代码。在不知道你做了什么的情况下,我无法合理地猜测你的表演将在何处消亡。也就是说,如果你能最小化状态变化的数量,那通常是好的。这包括调用
BindTexture