2010-04-17 22 views
5

Çerçeve tamponunda renk piksellerini tersine çevirmenin en iyi yolu olduğunu merak ediyordum. glReadPixels() ve glDrawPixels() ile yapmanın mümkün olduğunu biliyorum, ancak bu aramaların performans isabetleri oldukça büyük. Temel olarak, yapmaya çalıştığım, tersine ne olursa olsun her zaman görülebilen, tersine çevrilmiş bir renk kılığına sahip olmasıdır. Örneğin, rasgele bir alfa maskesi bitmap veya dokuya sahip olurdum, sahne çizildikten sonra derinlik sınaması olmadan işlenir ve dokudaki maskeli (tam alfa) piksellerin altındaki tüm çerçeve arabellek pikselleri tersine çevrilirdi.opengl invert framebuffer piksel

Bunu bir dokuyla yapmaya çalışıyorum, ancak bazı garip sonuçlar alıyorum, hala kafa karıştırıcı bulduğum tüm karıştırma seçenekleri.

cevap

7

this gibi bir deneyin şeyler ver:

hakkında nasıl
glEnable(GL_COLOR_LOGIC_OP); 
glLogicOp(GL_XOR); 
// render geometry 
glDisable(GL_COLOR_LOGIC_OP); 
+0

Bu yapıyor normal yoludur. – DJClayworth

2

:

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

glBlend glBlendFunc olmalı, değil mi? –