OpenGl片段着色器纹理速度

时间:2011-06-21 21:39:19

标签: android opengl-es shader fragment-shader

我有以下片段着色器。

varying highp vec2 tCoord;

void main() {
    vec4 hc = texture2D(hair, tCoord);
    gl_FragColor = hc;
}

在我的程序中,我在屏幕上绘制了大约15个图像(仅2D,没有3D操作)。我允许用手指移动所有图像。因此,当图像在屏幕上时,我得到40 fps,但是当我将它们移出屏幕外(用我的手指)时,我得到60 fps。 (这消除了程序或顶点着色器中的任何瓶颈)。我在Galaxy Tab 7“上运行它。”

由于这是一个非常简单的着色器,我总是期望60 fps。有什么理由这么慢?

2 个答案:

答案 0 :(得分:2)

highp可能不会在大多数Android设备等嵌入式硬件上加速。完全使用默认精度有帮助吗?为什么你认为在低分辨率屏幕上需要如此精确的纹理坐标?

答案 1 :(得分:0)

我使用android 3.2.1和opengl es 2.0在tegra平台上工作。

如果您可以在不需要变量的情况下生活,请尝试直接分配。我经历了变量创建和分配,成本高达3-5 fps。 texture2d也会在fps中花费该范围内的某些东西。

varying highp vec2 tCoord;

void main() {
    gl_FragColor = texture2D(hair, tCoord);
}
相关问题