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).