He intentado hacer un motor 2.5D con texturas de mapa de profundidad y normales durante algunas semanas, similar a lo que se usa aquí Linky. Después de pensar que el dibujo de un mapa de profundidad en el fragmento sombreado de una textura era imposible debido a que ES 2.0 faltaba la variable gl_fragDepth, encontré un tutorial para iOS donde usaron glBlendEquation con el modo GL_MIN/GL_MAX para "falsificar" el buffer de profundidad del fragmento a una textura framebuffer Linky. Desafortunadamente GLES20.glBlendEquation hace que la aplicación se cuelgue en mis teléfonos (SGS 1/2) con UnsupportedOperationException. Entonces me pregunto si alguien ha usado esta función para tener éxito. GL_MIN/GL_MAX también parece estar ausente de las especificaciones de Android OpenGL ES 2.0, así que probablemente no tenga suerte aquí ... ¿Alguna idea?Android GLES20.glBlendEquation no funciona?
BTW Parece que funciona en GL11Ext, pero como utilizo el sombreador de fragmentos para el mapeo normal, esto no funcionará conmigo.
¿Alguna vez encontró una solución para esto? – Jave
@jave No, no he investigado más sobre esto, ni he recibido ningún comentario sobre ningún foro. Entonces mi suposición es que no está implementado en Android OpenGL ES 2.0. Tal vez esto se ha solucionado en las versiones más nuevas del sistema operativo? Probé esto usando el sistema operativo Android v2.3. –
Ok, me encontré con este problema hace un par de días, pero tampoco encontré una solución. (Usando Android 2.2 por cierto). Si resuelves el problema, me gustaría ver cómo lo hiciste. – Jave