Frage

ich möchte eine spezifische Custom-Algorithmus verwenden Mipmaps für einige darstellbaren Texturen (R16F & RGBA16F) zu erzeugen.

Alle Mipmaps benötigt Texturen werden vorab aktiviert durch glGenerateMipmapEXT () verwenden.

Das größte Problem ist so weit zu machen, in 1+ MipMap Ebene. Genauer gesagt, Dies funktioniert wie ein Charme:

...
glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, target, texType, texId, 0 );
checkFBOStatus();
...
render();

Aber das gibt mir ein GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT wenn fbo Statusprüfung

...
glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, target, texType, texId, 1 );
checkFBOStatus();
...
render();

der Unterschied im Code ist die lod Ebene Parameter für eine Textur auf die FBO anbringen.

nach vielen fiebrigen Kopf-Kratzen, ich kann es immer noch Arbeit. So wird jede Antwort sehr geschätzt.

[ANMERKUNG: Zielplattform ist OpenGL 2.x mit FBO Erweiterung]

War es hilfreich?

Lösung

Problem gelöst


Der Grund FBO unvollständig aufgrund Textur Konsistenz. Wenn glGenerateMipmapEXT / glGenerateMipmap verwenden, müssen u stellen Sie sicher, Basisniveau Ihre Textur des enthält VALID DATA ; andernfalls fehlschlägt, dass Anruf ohne Fehlermeldung.

Im moment gibt es zwei mögliche Lösungen für Ihre Referenz:

  1. Verwenden TexImage oder TexSubImage zu Fillup Ihre darstellbare Textur vor glGenerateMipmap

  2. Bringen Sie die darstellbare Textur auf einem Dummy FBO vor glGenerateMipmap

So oder so funktioniert (getestet auf GF8, GF9) Nicht getestet auf ATI-Karten.

Das wäre toll, wenn jemand es heraus auf ATI GPUs testen kann.

PS. Pls informierte mich, wenn u Problem haben, diese Lösungen verwenden.

Andere Tipps

Wow, ich bin das gleiche Problem auf ATI Radeon 9800 mit. Aber ich habe einen Anruf mit glTexImage2D.

Render auf die erste Ebene ist möglich, aber nicht die andere. Vielleicht sollte ich das Dummy FBO Methode versuchen.

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