OpenGL - nie zapisuj głębi, jeśli alfa

Co chcę zrobić w OpenGL przy użyciu C ++ i GLSL: Kiedy tekstura ma alfa (texture.a! = 1.0;), ten piksel nie jest zapisywany w buforze głębokości. (dla bufora kolorów jest zapisany) Głębokość zapisu występuje tylko wtedy, gdy tekstura pikseli.a == 1.0;

Odrzucanie w shaderze nie jest rozwiązaniem - wtedy ten piksel nie jest zapisywany w buforze kolorów.

Jakieś pomysły?

@UPDATE: Przykład: Mam kilka obrazów interfejsu użytkownika renderowanych przez OpenGL. Niektóre z nich mają alfa w rogach. W renderowaniu scen mam „głębokość wstępną”, aby zapisać niektóre piksele, nie licząc na nie światła. Chcę również uzyskać obrazy interfejsu użytkownika do tego prepassu - ale tylko całkowicie nieprzezroczyste piksele (alfa = 1,0).

questionAnswers(1)

yourAnswerToTheQuestion