我正在为 android 制作一个游戏,我需要绘制很多点来改变每一帧的位置。我使用ndk来获得更快的游戏数学/物理部分的处理性能,所以我需要使用OpenGL来获得最快的性能。
现在,我从一个包含每个像素颜色的数组中为每一帧制作一个纹理。使用这种方法,我每秒只能获得约 10 帧。无论如何我可以加快速度吗?
我正在为 android 制作一个游戏,我需要绘制很多点来改变每一帧的位置。我使用ndk来获得更快的游戏数学/物理部分的处理性能,所以我需要使用OpenGL来获得最快的性能。
现在,我从一个包含每个像素颜色的数组中为每一帧制作一个纹理。使用这种方法,我每秒只能获得约 10 帧。无论如何我可以加快速度吗?
Vertex Buffer Objects (VBO's) might be what you're after. There's a nice tutorial here.
目前,Android 只保证 OpenGL ES 1.0 和 VBO 直到 1.1 才出现。您可以创建两个 GLSurfaceView.Renderer,一个使用 glDrawArrays 可用于 1.0,另一个使用 VBO 用于 1.1,并根据 1.1 兼容性检查将它们换出。