Tôi là rất mới cho OpenGL.Android Openg GL ES 2 vẽ họa tiết lớn chậm
Tôi đang cố gắng vẽ các điểm ảnh kết cấu (2 hình tam giác). Kích thước của kết cấu là 900x900px. Tôi không có vấn đề với một quad nhưng khi tôi cố gắng để vẽ 5-10 quads tôi thấy đáng chú ý chậm lại.
Có lẽ tôi đang làm gì đó sai ...
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 shader:
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;
}
kiểm tra nền tảng là Galaxy S3. Trong profiler tôi thấy rằng khoảng 60ms mất eglSwapBuffers gọi.
Làm cách nào để vẽ hình tứ giác có kết cấu lớn nhanh?
thông tin quan trọng hơn một chút: bitmap có định dạng ARGB_8888 và GL_BLEND được bật. –