Ich bin sehr neu zu OpenGL.Android Openg GL ES 2 Zeichnung große Texturen langsam
Ich versuche, texturierte Quads (2 Dreiecke) zu zeichnen. Die Größe der Textur ist 900x900px. Ich habe keine Probleme mit einem Quad, aber wenn ich versuche 5-10 Quads zu zeichnen, sehe ich merklich langsamer.
Vielleicht etwas, was ich falsch mache ...
Code:
public void onDrawFrame(GL10 gl) {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);
... matrix calculation ...
GLES20.glUniformMatrix4fv(mMVPMatrixHandle, 1, false, mvpMatrix, 0);
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
}
Vertex Shadern:
uniform mat4 uMVPMatrix;
attribute vec4 vPosition;
attribute vec2 a_TexCoordinate;
varying vec2 v_TexCoordinate;
void main() {
gl_Position = uMVPMatrix*vPosition;
v_TexCoordinate = a_TexCoordinate;
}
Fragment-Shader:
precision mediump float;
uniform sampler2D u_PreviewTexture;
varying vec2 v_TexCoordinate;
void main() {
vec4 color = texture2D(u_PreviewTexture, v_TexCoordinate);
gl_FragColor = color;
}
Testing-Plattform Galaxy S3. Im Profiler sehe ich, dass etwa 60ms den eglSwapBuffers Aufruf nehmen.
Wie kann ich schnell Quads mit großen Texturen zeichnen?
ein bisschen wichtiger info: die Bitmaps ist im Format ARGB_8888 und GL_BLEND ist aktiviert. –