Ich versuche, eine Textur in einen Offscreen-Framebuffer zu zeichnen, und sein Renderbuffer endet immer komplett leer (schwarz). Das Seltsame ist, ich weiß, dass der Kontext eingerichtet ist, und ich überprüfe mit glCheckFramebufferStatusOES (GL_FRAMEBUFFER_OES) und glGetError() auf Fehler, aber keine der beiden Funktionen sagt etwas falsch. Gibt es noch weitere Fehlerprüfungsfunktionen, die Aufschluss darüber geben könnten, was passiert?Fehlerbehebung OpenGL ES 1.1 Texturen auf dem iPhone
0
A
Antwort
1
Schwierig, Ihnen eine genaue Antwort ohne weitere Informationen zu geben. Könnten Sie vielleicht etwas Code über Ihre Einrichtung und Verwendung des Renderpuffers posten?
In der Zwischenzeit, hier einige Informationen darüber, wie ein Off-Screen-Framebuffer korrekt eingerichtet:
// Remember the FBO being used for the display framebuffer
glGetIntegerv(GL_FRAMEBUFFER_BINDING_OES, (GLint *)&SystemFBO);
// Create the texture and the FBO for offscreen frame buffer
glGenTextures(1, &ResultTexture);
glBindTexture(GL_TEXTURE_2D, ResultTexture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glGenFramebuffersOES(1, &ResultFBO);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, ResultFBO);
glFramebufferTexture2DOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_TEXTURE_2D, ResultTexture, 0);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, ResultFBO);
// do your rendering to offscreen framebuffer
...
// restore original frame buffer object
glBindFramebufferOES(GL_FRAMEBUFFER_OES, SystemFBO);
// use ResultTexture as usual
glBindTexture(GL_TEXTURE_2D, ResultTexture);
Hope this helps ...
Verwandte Themen
- 1. OpenGL ES 1.1 mehrere Texturen pro Mesh
- 2. Ratschläge zur Beschleunigung von OpenGL ES 1.1 auf dem iPhone
- 3. OpenGL ES 1.1 oder 2.0 auf iPhone
- 4. OpenGL-Farbindex für iPhone OpenGL ES 1.1?
- 5. iPhone OpenGL: Tiling Texturen
- 6. Android OpenGL ES 2.0 Texturen
- 7. Wie mische ich zwei Texturen mit unterschiedlichen Koordinaten in OpenGL ES 2.0 auf dem iPhone?
- 8. iPhone - OpenGL ES 1.1 - Alpha Blend machen Textur falsche Farbe
- 9. PVRTC Texturen auf dem iPhone Simulator
- 10. Fullscreen Textur iPhone OpenGL ES
- 11. Framebuffer, Texturen und glColor Verhalten in OpenGL/OpenGL ES
- 12. Texturen in OpenGL ES 2.0 stempeln
- 13. OpenGL ES: Anzahl der Scheitelpunkte für Texturen
- 14. Floating Point Texturen in OpenGL ES 2.0
- 15. OpenGL-Texturen Formateinschränkungen
- 16. iPhone OpenGL ES: Anwenden eines Tiefen-Tests auf Texturen mit transparenten Pixeln für 2D-Spiele
- 17. Konvertieren einer OpenGL-Anwendung, damit es auf dem iPhone funktioniert
- 18. OpenGL ES Leistung 2.0 vs 1.1 (iPad)
- 19. Was entspricht GlDrawPixels() in OpenGL ES 1.1?
- 20. OpenGL Layer über Video auf dem iPhone?
- 21. OpenGL ES für Iphone
- 22. iPhone OpenGL-ES: UISwipeGestureRecognizer
- 23. iPhone OpenGL ES falsch Alpha Blending
- 24. iPhone OpenGL ES: glReadPixels funktioniert nicht
- 25. iPhone/iPad, OpenGL ES, CADisplayLink
- 26. Wie verwende ich komprimierte Texturen auf dem iPhone?
- 27. Wiederholen von Texturen in OpenGL
- 28. Texturen in OpenGL ES 2 funktioniert nicht richtig
- 29. OpenGL 2D Texturen jittering/pulsing
- 30. Optimieren von OpenGL ES auf dem iPhone und Dolmetschen von Instrumenten
Danke. Ich dachte zu der Zeit, dass das Problem ein interner OpenGL-Fehler war, der weder von glGetError() noch von glCheckFrambufferStatusOES (GL_FRAMEBUFFER_OES) gemeldet wurde, sondern dass ich nur OpenGL missbrauchte. Ich hatte glColor4f (0, 0, 0, 0) an einem früheren Punkt im Programm aufgerufen, also wenn ich die Texturen zeichnete, zeichnete es mit Alpha = 0. Ich denke, das ist ein Beispiel dafür, wo das Lesen des Handbuchs zuerst etwas Zeit gespart hätte ... – emchristiansen