WebGL drawPixels?
У меня есть массив пикселей от вызова gl.readPixels(). Могу ли я поместить эти пиксели обратно в буфер рисования или кадровый буфер? т.е. я хотел бы вызвать что-то вроде gl.drawPixels, но в API WebGL его нет. Мне использовать текстуру и сделать ее плоской, или я что-то упустил?
1 ответ
Проверьте эту короткую тему: http://www.opengl.org/discussion_boards/showthread.php/168346-Best-Substitute-for-glDrawPixels-Under-OpenGL-ES
То, что Золотая Книга говорит вам, правильно. Самый быстрый способ загрузки текстур - это запись в текстуру, привязанную к FBO. Но вам нужно сгенерировать ваши пиксели как геометрию (максимально оптимизированную) и затем нарисовать их в FBO, используя матрицу Орта, GL_POINTS и glDrawArrays.
Оптимальное решение (WebGL - это ветка GL-ES) немного странно, но имеет некоторый смысл, потому что в браузере вы не хотите, чтобы люди напрямую связывались с памятью. Позвольте приложению и драйверу разобраться, за счет некоторых вудуоподобных конструкций в коде GL.