Question

Je suis en train de mettre en œuvre le post-traitement (flou, fleurs, etc.) sur l'iPhone en utilisant OpenGL ES 2.0. Je courais quelques problèmes. Lors du rendu lors de mon deuxième étape de rendu, je finis par dessiner un quad complètement noir à l'écran au lieu de la scène (il semble que les données de texture est manquante), donc je me demande si la cause utilise un seul OIR. Est-il incorrect d'utiliser un seul OIR de la façon suivante?

Pour la première passe (rendu régulier de la scène),

  • J'attache une texture comme COLOR_ATTACHMENT_0 et rendre à une texture. glFramebufferTexture2D (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texturebuffer, 0)

Pour la seconde passe (post-traitement),

  • J'attache la renderbuffer couleur à COLOR_ATTACHMENT_0 glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, colorRenderbuffer)
  • Utilisez ensuite la texture de la première passe pour le rendu en quad sur l'écran.
Était-ce utile?

La solution

Non, que l'utilisation est bien FBO. La cause est très probablement que vous n'avez pas défini les filtres MIN / MAG de votre texture (texturebuffer), après la liaison, définissez le GL_MIN_FILTER et GL_MAG_FILTER à GL_NEAREST ou GL_LINEAR en utilisant glTexParameter, et votre texture doit travailler.

Autres conseils

Comme l'indique Matias, votre design a l'air bien. Je l'ai fait moi-même quelque chose de semblable et avait bien travailler.

J'ai écrit un exemple d'application qui utilise les shaders aux images de la caméra de processus, qui peut être téléchargé , mais que les utilisations glReadPixels() pour tirer des valeurs dans une hors écran routine de traitement plutôt que mappings directement le résultat à une texture à l'écran. Vous pourriez être en mesure de le modifier pour le faire.

Dans le cas contraire, je fait une application plus complexe shaders exemple ici dans une partie rend une scène à une texture mappée de cube, alimente alors que la texture dans une deuxième étape du traitement. Cela devrait illustrer le rendu et l'utilisation de, une texture avec OpenGL ES 2.0 shaders.

Peut-être que ceux-ci pourraient faire la lumière sur l'endroit où votre mise en œuvre échoue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top