Ответ 1
Не могли бы вы использовать FBO и буфер трафарета?
Установите FBO для своего "розового" слоя и буфера трафарета для него. При прикосновении нарисуйте ваше прикосновение как маску к буферу розового FBO-трафарета. Теперь, когда вы рисуете розовое FBO, области, которые вы коснулись, не будут отображаться, поэтому вы сможете увидеть фоновый FBO за ним.
Эта ссылка http://www.opengl.org/archives/resources/faq/technical/rasterization.htm, раздел 14.050 рассказывает вам, как настроить буфер трафарета:
Вы можете настроить состояние OpenGL следующим образом:
glEnable(GL_STENCIL_TEST); glStencilFunc(GL_ALWAYS, 0x1, 0x1); glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE);
Последующий рендеринг будет устанавливать 1 бит в буфере трафарета для каждого пиксель.
Возможно, вам придется поиграть с вещами, чтобы ваша маска была правильной (маски, в которых вы касались, а не там, где вы этого не сделали.)