glReadPixels возвращает пустое изображение при отключении смешивания - PullRequest
0 голосов
/ 03 апреля 2019

Я рисую одну и ту же текстуру дважды;один поверх другого.Вторая текстура увеличена, чтобы создать эффект «картинка в картинке».Я использую те же вершинные и фрагментные шейдеры, и те же ссылки на них.

При glEnable(GL_BLEND) вывод выглядит (нежелательно): enabled

При glDisable(GL_BLEND) вывод выглядит следующим образом (желательно): disabled

Но, выполнив glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, buf); с glDisable(GL_BLEND), я получаю полностью черное изображение с несколькими случайными мазками по краям изображения (плюс отметка времени получается отлично).

Редактировать 1: вывод, который я получаю: enter image description here Обратите внимание, я преобразую буфер байтов в растровое изображение, а затем в jpeg.

Почему может glReadPixels возвращать черный вывод и как мне это исправить?

РЕДАКТИРОВАТЬ 2: Хорошо, даже при настройке glEnable(GL_BLEND) с функцией смешивания GLES20.glBlendFunc(GLES20.GL_ONE, GLES20.GL_ZERO);, которая отображает желаемый вывод, я получаю такой же черный /пустой вывод glReadPixels.Это означает, что это может не иметь никакого отношения к смешиванию, но, возможно, тот факт, что я использую одну и ту же программу (фрагмент + вершина), чтобы нарисовать их друг на друге.Крайне невежественный на данный момент.

...