Pēt*_*une 8 performance android textures opengl-es
在我的动态壁纸中,我正在绘制3个纹理四边形,覆盖整个屏幕.在Nexus One上我得到40fps.我正在寻找提高性能的方法.
四边形相互混合,纹理从RGB_8888位图加载.纹理是1024x1024.
我有
glDisable(GL_DITHER);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
glDisable(GL10.GL_LIGHTING);
glDisable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
Run Code Online (Sandbox Code Playgroud)
我尝试过的东西,都产生了相同的40fps:
如果我绘制2层而不是3层,fps上升到45左右,然后只绘制1层,看到fps上升到55.我想我受到填充率的限制,因为关闭和可能代价高昂的功能会导致相同的fps,似乎唯一能改善fps的东西就是减少...
我正在考虑纹理压缩的想法,但支持不同的压缩格式似乎并不好玩.ETC1没有我需要的alpha通道,我不确定PVRTC和ATITC是否可以从Java和OpenGL ES 1.0或1.1中使用.
我很高兴听到关于还有什么可以尝试的想法.我可以指示当前版本的壁纸和屏幕截图(如果有用).
你可能已经想过这个,但万一你没有:
另外,你是否尝试过使用多纹理方法进行1次传递?
编辑:另外一件事:不需要写入z缓冲区,因此要么使用没有z-buffer的上下文,要么禁用深度写入glDepthMask(GL_FALSE)
.