Pergunta

Eu queria saber era a melhor maneira de inverter os pixels de cores no buffer de quadros. Eu sei que é possível fazer com glReadPixels() e glDrawPixels() Mas o desempenho do desempenho dessas ligações é muito grande.

Basicamente, o que estou tentando fazer é ter um cruzamento de cor invertido que é sempre visível, não importa o que esteja por trás disso. Por exemplo, eu teria um bitmap ou textura arbitrária de máscara alfa, faça com que o teste sem profundidade após a cena seja desenhado, e todos os pixels de buffer de quadros sob os pixels mascarados (alfa completos) da textura seriam invertidos.

Eu tenho tentado fazer isso com uma textura, mas estou obtendo alguns resultados estranhos, também todas as opções de mistura que ainda acho confusas.

Foi útil?

Solução

Dê algo como isto uma tentativa:

glEnable(GL_COLOR_LOGIC_OP);
glLogicOp(GL_XOR);
// render geometry
glDisable(GL_COLOR_LOGIC_OP);

Outras dicas

e quanto a:

glEnable (GL_BLEND); 
glBlend (GL_ONE_MINUS_DST_COLOR, GL_ZERO);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top