2010-04-17 7 views
5

Je me demandais était le meilleur moyen d'inverser les pixels de couleur dans le tampon de trame est. Je sais qu'il est possible de faire avec glReadPixels() et glDrawPixels(), mais la performance de ces appels est assez grande. Fondamentalement, ce que j'essaie de faire est d'avoir un réticule de couleur inversée qui est toujours visible, peu importe ce qu'il y a derrière. Par exemple, j'aurais un bitmap ou une texture de masque alpha arbitraire, je ferais un rendu sans test de profondeur après le dessin de la scène, et tous les pixels du tampon d'image sous les pixels masqués de la texture seraient inversés.opengl inverser framebuffer pixels

J'ai essayé de faire ceci avec une texture, mais j'obtiens des résultats étranges, aussi toutes les options de mélange que je trouve toujours confuses.

Répondre

7

Donner quelque chose comme this essayer:

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

Ceci est la façon normale de le faire. – DJClayworth

2

Que diriez-vous:

glEnable (GL_BLEND); 
glBlend (GL_ONE_MINUS_DST_COLOR, GL_ZERO); 
+0

glBlend devrait être glBlendFunc, non? –

Questions connexes