Рендеринг текстуры на себя в OpenGL ES - PullRequest
2 голосов
/ 13 июля 2010

Я могу удобно визуализировать сцену в текстуру и отобразить эту текстуру обратно в кадровый буфер для отображения на экране. Но что, если я захочу отобразить текстуру обратно на себя, чтобы размыть ее (скажем, с непрозрачностью четверти в новом месте). Это возможно?

То, как я это сделал, это просто включить текстуру:

glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, color_tex);

А затем нарисуйте к нему:

glVertexPointer(2, GL_FLOAT, 0, sv);
glTexCoordPointer(2, GL_FLOAT, 0, tcb1);
glColor4f (1.0f,1.0f,1.0f,0.25f);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

(некоторый код опущен, очевидно)

Что-то явно не так с этой идеей? Я идиот?

1 Ответ

5 голосов
/ 13 июля 2010

Нет, вы не можете записать текстуру в одну и ту же текстуру, которая вызывает неопределенное поведение.

Но вы можете использовать технику, называемую рендерингом в пинг-понг, чтобы вы рисовали результат операции в другойтекстуры, и если вам нужно больше обрабатывать, вы записываете результат в первую текстуру.

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