Я задавался вопросом, был лучший способ инвертировать цветные пиксели в кадровом буфере. Я знаю, что возможно сделать с glReadPixels()
и glDrawPixels()
но хит производительности тех вызовов является довольно большим.
В основном то, что я пытаюсь сделать, имеют инвертированное цветное перекрестие, которое всегда видимо, неважно, что находится позади него. Например, я имел бы произвольный альфа-битовый массив маски или текстурировал бы, имел бы его рендеринг без теста глубины после того, как сцена оттянута, и все пиксели кадрового буфера под маскированным (полная альфа), пиксели структуры были бы инвертированы.
Я пытался сделать это со структурой, но я получаю некоторые странные результаты, также все параметры наложения, которые я все еще нахожу сбивающими с толку.
Попробуйте что-нибудь вроде вот :
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);