我仅使用GLES20上下文渲染覆盖整个表面的2个三角形。现在的问题是,这种方式只绘制一个纹理似乎是非常慢的。帧速率从58fps降至21fps。
我在这里不知所措;我认为在GL中单击一个图像应该至少和使用Canvas一样快,但似乎并非如此。
有人可以提供有关此性能影响的提示或解释吗?
更新
我刚刚调整了渲染线程以支持画布而不是EGL 背景和我做的完全一样;显示fps文本和blitting 背景纹理。 猜猜看:只显示文字我得到58fps,添加背景 我得到了... 57fps!
现在我正式而且非常认真地生气。我希望我是 只是不够聪明,不能很好地使用GLES20,否则似乎如果 你想blit 2D图形 - 你采取Canvas;如果,只有你 想要3D中的许多三角形,然后你采用OpenGL。
OpenGL不应该始终至少与提供的2D API一样快 画布?
答案 0 :(得分:1)
这可能是由大纹理大小和没有mipmap造成的(因为那时内存访问不能很好地优化),或者纹理不是2的幂(因为那时地址计算更难 - 需要使用乘法而不是换班。)
希望这会有所帮助......
答案 1 :(得分:0)
没有冒犯,但对于全屏纹理从58到57 fps也不算太糟糕。无论是2d还是3d,手机或平板电脑cpu / gpu总是有限的。