Frage

Ich versuche, Post-Processing zu implementieren (Blur, Blüte, etc.) auf dem iPhone mit OpenGL ES 2.0. Ich laufe in einige Probleme. Wenn während meiner zweiten Rendering Schritt machen, ich anstelle der Szene einen völlig schwarzen Quad auf den Bildschirm zeichnen am Ende (es scheint, dass die Texturdaten fehlt), so frage ich mich, ob die Ursache eine einzige FBO verwendet. Ist es falsch, eine einzige FBO in der folgenden Art und Weise zu benutzen?

Für den ersten Durchgang (regelmäßiger Szene-Rendering),

  • ich eine Textur als COLOR_ATTACHMENT_0 befestigen und auf eine Textur machen. glFramebufferTexture2D (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texturebuffer, 0)

Für den zweiten Durchgang (post-processing),

  • Ich lege die Farbe renderbuffer zu COLOR_ATTACHMENT_0 glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, colorRenderbuffer)
  • Verwenden Sie dann die Textur aus dem ersten Durchgang für einen Quad auf dem Bildschirm zu machen.
War es hilfreich?

Lösung

Nein, das FBO Nutzung ist in Ordnung. Die Ursache ist sehr wahrscheinlich zu sein, dass Sie die MIN / MAG Filter Ihrer Textur (texturebuffer) festgelegt haben, nach der Bindung, stellen Sie den GL_MIN_FILTER und GL_MAG_FILTER zu GL_NEAREST oder GL_LINEAR glTexParameter verwenden und die Textur sollte funktionieren.

Andere Tipps

Wie Matias Staaten, Ihr Design sieht gut aus. Ich habe getan, etwas Ähnliches selbst und hatte es gut funktionieren.

ich eine Beispielanwendung geschrieben, die Shader Prozess Kamerabilder verwendet, die sein kann heruntergeladen hier , sondern dass Anwendungen außerhalb des Bildschirms Werte in eine Verarbeitungsroutine ziehen glReadPixels() anstatt direkt das Ergebnis auf eine Textur Bildschirm abbildet. Sie könnten in der Lage sein, es zu ändern, das zu tun.

Ansonsten habe ich eine komplexere Shader-Beispielanwendung dass in einem Teil einer Szene zu einem Würfel abgebildet Textur rendert, speist dann die Textur in einer zweiten Stufe der Verarbeitung. Dies sollte die Wiedergabe zu und die Nutzung von, eine Textur mit OpenGL ES 2.0 Shadern zeigen.

Vielleicht könnten diese beleuchten, wo Ihre Implementierung versagt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top