Domanda

Cerco di usare il buffer di stencil di un FBO in OpenGL, ma non riesco a farlo funzionare. Ho legato una trama di profondità24_stecil8 alla FBO sia per i target di profondità che stencil. Come test semplice, ho provato:

/* Enable FBO */

glEnable(GL_STENCIL_TEST);
glStencilFunc(GL_NEVER, 1, 0xff);
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);

glBegin(GL_TRIANGLE);
/* Draw some triangles */
glEnd();

glDisable(GL_STENCIL_TEST);

/* Disable FBO and render it on screen as a texture. */

Mentre uso GL_NEVER, nulla dovrebbe essere reso affatto, ma posso vedere i triangoli. È come se non ci fosse affatto stencil, ma non riesco a capire perché. Provare questo codice senza funziona FBOS, quindi penso di usare correttamente le funzioni dello stencil. Non ho idea di come risolvere questo problema. Qualcuno ha già usato uno stencil con FBO?

È stato utile?

Soluzione

Mio male, non stavo attaccando correttamente il buffer di stencil al mio FBO. La cosa strana è che il mio stato di FBO non indicava alcun errore o un cattivo allegato, quindi ero convinto che fosse OK ... questo problema mi ha fatto impazzire ma ora sembra funzionare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top