Я реализовал приложение opengl-es, работающее на GPU mali-400.Я беру RGB-буфер 1280x960 с камеры и выполняю рендеринг в gpu с помощью glTexImage2D.
Однако вызов glTexImage2D занимает около 25 миллисекунд для кадра с разрешением 1280x960.Это делает дополнительную запись pCameraBuffer.
1) Есть ли способ улучшить производительность glTexImage2D?2) Поможет ли FBO?Как я могу использовать объекты Frame Buffer для рендеринга.Я нашел несколько примеров FBO, но я вижу, что эти примеры передают NULL glTexImage2d в последнем аргументе (data).так как я могу рендерить pCameraBuffer с FBO?
ниже приведен код, работающий для каждого кадра камеры.
glGenTextures(1, &textureID);
glBindTexture(GL_TEXTURE_2D, textureID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, SCENE_WIDTH, SCENE_HEIGHT, 0, GL_RGB, GL_UNSIGNED_BYTE, pCameraBuffer);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glDeleteTextures(1, &textureID);