Quiero escribir en el búfer de profundidad OpenGL solo si el píxel actual tiene un alfa> 0.5 ¿cómo hacerlo?Cómo escribir/evitar escribir en el búfer de profundidad OpenGL en GLSL
Si el pixel tiene alpha < 0.5, quiero renderizar el color pero no escribir su profundidad en el búfer de profundidad. El comando discard
no es lo que estoy buscando, ya que descarta tanto la información de color como la de profundidad; Solo quiero descartar la información de profundidad.
Existe la variable gl_FragDepth
que se puede establecer, pero ¿a qué valor? Y para el caso alpha < 0.5, cómo dejar gl_FragDepth
sin cambios?
¿Debo usar FBO para esto o debería funcionar también? El proyecto que estoy trabajando, es un proyecto Android 2.0 GLES
No creo que pueda hacer esto en una sola pasada, al menos no directamente y no de manera eficiente. Por supuesto, puede establecer gl_FragDepth en un valor que hará que la prueba de profundidad falle (por ejemplo, zfar), pero esto también descartará el color del fragmento. Con dos pases usando diferentes pruebas alfa, esto debería funcionar ... pero en ES probablemente no puedas pagar otro pase como este. – Damon