Я закодировал свой собственный код наложения ARGB-изображений, и он оптимизирован так быстро, как «возможно». Однако это не так быстро, как хотелось бы. Кроме того, этот процесс называется несколько раз и использует много CPU.Как накладывать изображения, используя opengl в массив пикселей?
Я хочу использовать графический процессор для выполнения наложения изображений. Я думаю, что это потенциально может обеспечить огромный прирост скорости и минимальное использование ЦП.
Как я могу использовать графический процессор для наложения изображений? Из моих исследований я могу использовать буфер кадров для вывода экрана. Тем не менее, я не уверен на 100%, как это сделать. По сути, я передаю Bitmap от java до JNI, а затем получаю пиксели Bitmap, где мне нужно будет накладывать изображения. Количество накладываемых изображений может варьироваться от 2 до 12. Это большие изображения.
Update1:
До сих пор это то, что у меня есть. Я считаю, что это шаг в правильном направлении.
GLuint arraybuffer;
glGenBuffers(GL_ARRAY_BUFFER, &arraybuffer);
glBindBuffer(GL_ARRAY_BUFFER, arraybuffer);
// draw into the array buffer the images
...
// read the buffer pixels from OpenGL
glReadPixels(0, 0, outputWidth, outputHeight, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
читайте это: http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Contents.html речь идет только о самом OpenGL (не в специфическом для OpenGL ES), но вы можете иметь очень хорошее понимание того, как работает графический конвейер (GPU). –