Может ли OpenGL ES рендериться в память процессора? - PullRequest
1 голос
/ 24 июля 2011

Возможно ли преобразовать все OpenGL ES вещи в обычный выделенный буфер вместо кадрового буфера:

/* render into this buffer */
GLubyte* buffer =
(GLubyte*) calloc(width * height * 4, sizeof(GLubyte));

Я хочу иметь возможностьчтобы преобразовать эти визуализированные изображения в текстуры для других целей.

Я использую OpenGL ES 1.3 со стандартным C API.

1 Ответ

2 голосов
/ 24 июля 2011

Для этого вам не удастся обойти вызов glReadPixels , который копирует содержимое кадрового буфера в системную память. Но когда вы хотите скопировать его в текстуру, вы можете сделать это напрямую, используя glCopyTex (Sub) Image2D или используя FBOs и рендеринг непосредственно в текстуру без необходимости копирования ( но я не уверен, что FBO поддерживаются в ES). Но, конечно, вы не можете визуализировать непосредственно в системную память (для текстур это работает с использованием FBO, так как они хранятся в памяти GPU).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...