Ich muss zu Buffer texture rendern. Warum TBO? TBO kann leicht als CUDA-Ressource für grafische Interop abgebildet werden. Es kann auch Byte große Daten speichern, was ich brauche. Ich habe versucht, verwandte Informationen in GL-Spezifikationen zu finden. Here wird festgestellt, dass:Rendern nach TBO
Buffer Texturen wie 1D Textur arbeiten, nur haben sie ein einziges Bild, von Mipmapstufe identifiziert 0.
Aber wenn ich versuche TBO zu FBO ich befestigen bekomme immer einen "Fehlende Anhang" -Fehler, wenn ich die Vollständigkeit überprüfe, was zu der Schlussfolgerung führt, dass GL_TEXTURE_BUFFER nicht als FBO-Anhang unterstützt wird.
Zwei Fragen:
- Ist es wahr?
- ist die einzige Alternative, hier zu SSBO
Detailliertere Informationen zu schreiben:
Ich
GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
bekommen Wenn ich die TBO zu befestigen versuchen zum Framebuffer. Es hat keinen Sinn, den ganzen Code hier anzuhängen, wie es bo ist th stark abstrahiert API und glaube mir, ich bin ziemlich erfahren in der Verwendung von OpenGL und framebuffers.Attaching eine regelmäßige GL_TEXTURE_2D funktioniert gut. Hier ist der Brocken der TBO Schöpfung und die Befestigungsstufe:
GLuint tbo;
GLuint tboTex;
glGenBuffers(1, &tbo);
glBindBuffer(GL_TEXTURE_BUFFER, tbo);
glBufferData(GL_TEXTURE_BUFFER, viewportWidth * viewportHeight * 4, NULL, GL_DYNAMIC_DRAW);
glBindBuffer(GL_TEXTURE_BUFFER, 0);
glGenTextures(1, &tboTex);
glBindTexture(GL_TEXTURE_BUFFER, tboTex);
glTexBuffer(GL_TEXTURE_BUFFER, GL_RGBA8, tbo);
glBindTexture(GL_TEXTURE_BUFFER, 0);
Dann FBO anbringt:
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tboTex, 0);
///also tried:
/// glFramebufferTexture1D
/// glFramebufferTexture2D
Haben Sie OpenGL-Fehler erhalten? Können wir Ihren Code sehen? –
@ NicolBolas sehe mein Update. –
Und was ist mit OpenGL-Fehlern? –