OpenGL - schreibe keine Tiefe wenn Alpha

Was ich in OpenGL mit C ++ und GLSL machen möchte: Wenn die Textur Alpha hat (texture.a! = 1.0;), wird dieses Pixel nicht in den Tiefenpuffer geschrieben. (für Farbpuffer wird geschrieben) Schreibtiefe tritt nur auf, wenn eine Pixeltextur.a == 1.0;

Das Verwerfen im Shader ist keine Lösung - dann wird dieses Pixel nicht in den Farbpuffer geschrieben.

Irgendwelche Ideen?

@UPDATE: Beispiel: Ich habe einige UI-Bilder, die von OpenGL gerendert wurden. Einige von ihnen haben Alpha in den Ecken. Beim Rendern von Szenen habe ich "Tiefenvorausberechnung", um einige Pixel zu sparen, indem ich kein Licht darauf berechne. Ich möchte auch UI-Bilder zu diesem Prepass bringen - aber nur völlig undurchsichtige Pixel (Alpha = 1,0).

Antworten auf die Frage(1)

Ihre Antwort auf die Frage