Domanda

Sto cercando di implementare la post-elaborazione (sfocatura, fiore, ecc) su iPhone utilizzando OpenGL ES 2.0. Sono in esecuzione in alcuni problemi. Durante il rendering durante la mia seconda fase di rendering, finisco per disegnare un quad completamente nero sullo schermo al posto della scena (sembra che i dati di struttura è mancante) quindi mi chiedo se la causa sta usando un singolo FBO. È corretto utilizzare un unico FBO nel modo seguente?

Per il primo passaggio (regolare il rendering della scena),

  • I allegare una texture come COLOR_ATTACHMENT_0 e rendere ad una texture. glFramebufferTexture2D (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texturebuffer, 0)

Per il secondo passaggio (post-trattamento),

  • I collegare il renderbuffer colore per COLOR_ATTACHMENT_0 glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, colorRenderbuffer)
  • Quindi utilizzare la texture dal primo passaggio per il rendering come un quad sullo schermo.
È stato utile?

Soluzione

No, che l'utilizzo FBO va bene. La causa è molto probabile che sia che non hai impostato i filtri MIN / MAG della vostra struttura (texturebuffer), dopo il legame, impostare il GL_MIN_FILTER e GL_MAG_FILTER a GL_NEAREST o GL_LINEAR utilizzando glTexParameter, e la texture dovrebbe lavorare.

Altri suggerimenti

Come Matias Stati, il vostro disegno sembra a posto. Ho qualcosa fatto simile me stesso e aveva funzionare bene.

Ho scritto un'applicazione di esempio che utilizza degli shader per le immagini delle telecamere di processo, che può essere scaricato qui , ma che usi glReadPixels() per tirare fuori schermo i valori in una routine di elaborazione piuttosto che la mappatura direttamente il risultato di una texture sullo schermo. Potreste essere in grado di modificarlo per farlo.

In caso contrario, ho fatto una più complessa applicazione di esempio Shader qui che in una parte rende una scena a un cubo mappato trama, quindi alimenta che trama in una seconda fase di lavorazione. Questo dovrebbe illustrare il rendering e l'utilizzo di una texture con OpenGL ES 2.0 shaders.

Forse queste potrebbero far luce su dove l'implementazione sta fallendo.

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