OpenGL Invert FrameBuffer пикселей
-
27-09-2019 - |
Вопрос
Мне было интересно, было лучшим способом инвертировать цветные пиксели в буфере кадров есть. Я знаю, что можно сделать с glReadPixels()
и glDrawPixels()
Но поступление производительности этих звонков довольно большая.
В основном, что я пытаюсь сделать, у него есть перевернутый цвет кросс-волос, которые всегда видны, независимо от того, что за ним. Например, у меня будет произвольную alceap или текстуру Alpha Mask Mask, имеющую его рендер без глубинного теста после нарисования сцены, и все пиксельные пиксеры кадра под маскированными (полный альфа) пиксели текстуры будут перевернуты.
Я пытался сделать это с текстурой, но я получаю несколько странных результатов, а также все варианты смешивания, которые я до сих пор нахожу с толку.
Решение
Дать что-то вроде это Попробуйте:
glEnable(GL_COLOR_LOGIC_OP);
glLogicOp(GL_XOR);
// render geometry
glDisable(GL_COLOR_LOGIC_OP);
Другие советы
как насчет:
glEnable (GL_BLEND);
glBlend (GL_ONE_MINUS_DST_COLOR, GL_ZERO);