Ich habe Probleme mit Textur Transparenz in OpenGL. Wie Sie auf dem Bild unten sehen können, funktioniert es nicht ganz. Es ist erwähnenswert, dass das Schwarz tatsächlich die ClearColor ist, die ich benutze, um den Bildschirm zu löschen.OpenGL: Transparente Textur Problem
Ich verwende den folgenden Code ein Mischen zu implementieren:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Hier ist mein Fragment-Shader:
#version 330 core
in vec2 tex_coords;
out vec4 color;
uniform vec4 spritecolor;
uniform sampler2D image;
void main(void)
{
color = spritecolor * texture(image, tex_coords);
}
Hier ist ein Screenshot von der Szene in Drahtgitter-Modus, falls es hilft mit den gezeichneten Eckpunkten:
Wenn noch etwas benötigt wird, zögern Sie nicht zu fragen, ich werde es hinzufügen.
Sie haben zunächst die undurchsichtigen Objekte zu zeichnen. Die transparenten Objekte müssen nach dem umgekehrten Abstand zur Kameraposition sortiert werden. (Betrachten Sie den Tiefentest) – Rabbid76
Ja, das war's! Könnten Sie Ihren Kommentar als Antwort hinzufügen, damit ich ihn akzeptieren kann? – AProgrammer