Pregunta

Estoy tratando de implementar el proceso posterior (falta de definición, floración, etc.) en el iPhone usando OpenGL ES 2.0. Estoy funcionando con algunos problemas. Cuando la prestación durante mi segundo paso de renderizado, termino dibujando un quad completamente negro de la pantalla en lugar de la escena (parece que la textura de datos no se encuentra) así que me estoy preguntando si la causa está utilizando un único FBO. ¿Es incorrecto utilizar un único FBO de la siguiente manera?

En la primera pasada (escena representación regular),

  • atribuyo una textura como COLOR_ATTACHMENT_0 y rinden a una textura. glFramebufferTexture2D (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texturebuffer, 0)

En el segundo pase (post-procesamiento),

  • I adjuntar la renderbuffer color a COLOR_ATTACHMENT_0 glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, colorRenderbuffer)
  • A continuación, utilice la textura de la primera pasada de renderizado como un quad en la pantalla.
¿Fue útil?

Solución

No, que el uso de FBO está muy bien. La causa es muy probable que sea que no ha configurado los filtros MIN / MAG de su textura (texturebuffer), después de la unión, ajuste el GL_MIN_FILTER y GL_MAG_FILTER a GL_NEAREST o GL_LINEAR usando glTexParameter, y su textura debe estar trabajando.

Otros consejos

A medida que los estados Matias, su diseño se ve bien. Yo he hecho algo similar a mí mismo y tuvo que funcione bien.

Me escribió una aplicación de ejemplo que utiliza shaders de imágenes de la cámara de proceso, que puede descargarse aquí , sino que los usos glReadPixels() para tirar fuera de la pantalla los valores en una rutina de proceso en lugar de mapear directamente el resultado de una textura en pantalla. Es posible que pueda modificarlo para hacerlo.

De lo contrario, me hizo una aplicación de ejemplo de sombreado más complejo aquí que en una parte hace una escena de una textura mapeada cubo, luego alimenta esa textura en una segunda etapa de procesamiento. Esto debería ilustrar la representación a, y uso de, una textura con OpenGL ES 2.0 shaders.

Tal vez esto podría arrojar luz sobre dónde falla su aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top