为什么OpenGL ES纹理映射很慢?

时间:2010-05-05 23:12:14

标签: android opengl-es

我有一个Android应用程序,使用OpenGL ES显示VGA(640x480)帧。应用程序从电影文件中读取每个帧并相应地更新纹理。

我的问题是,它耗时差不多30毫秒。使用OpenGL绘制每个帧。使用Canvas / drawBitmap的类似测试在同一设备上大约6毫秒。

我正在关注VLC Media Player正在使用的相同OpenGL调用,因此我假设这些调用已针对此目的进行了优化。

我只是想听听你的想法和想法吗?

2 个答案:

答案 0 :(得分:0)

您使用的是哪些电话? 确保你只创建一次纹理(glTexImage2D),然后用新缓冲区更新它。你也可以禁用其他gl东西,如深度缓冲,模板,积累,灯光等...... 如果这些都没有帮助,请检查opengl实现。确保使用硬件(gpu)

答案 1 :(得分:0)

你确定位图是用RBG_565加载的吗?试试这个:

BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
bm = BitmapFactory.decodeByteArray(temp, 0, temp.length,opt);

让我知道!