Ich habe eine Textur erstellt und sie mit einigen Daten gefüllt:
glBindTexture(GL_TEXTURE_2D, head_pointer_image);
glTexImage2D(GL_TEXTURE_2D, 0, GL_R32UI, width, height, 0, GL_RED_INTEGER, GL_UNSIGNED_INT, data);
Dann habe ich es an 0 gebunden:
glBindImageTexture(0, head_pointer_image, 0, GL_FALSE, 0, GL_READ_WRITE, GL_R32UI);
glUniform1ui(0, 0); // Not sure if necessary
Wenn ich die Daten mit glGetTexImage () überprüfe, erhalte ich korrekte Werte, aber wenn ich versuche, sie in meinem Shader zu lesen, erhalte ich nur Nullen.
layout(binding = 0, r32ui) coherent uniform uimage2D head_pointer_image;
uint value = imageLoad(head_pointer_image, ivec2(gl_FragCoord.xy)).r;
Was mache ich falsch?
Ich habe Hilfe von außen erhalten. Das Problem war, dass meine Textur unvollständig war, da die Standard-Minifizierungsfilterung GL_NEAREST_MIPMAP_LINEAR war, für die eine vollständige Mipmap-Kette erforderlich ist, und ich nur das Image auf Basisebene hatte.
Das Setzen von GL_TEXTURE_MIN_FILTER auf GL_LINEAR hat mein Problem behoben.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen