Android GLES20.glBlendEquation не работает?

Ive пыталась сделать двигатель 2.5D с глубиной и нормальными текстурами карты в течение нескольких недель, в отличие от того, что использовали здесь Linky . Подумав, что чертеж карты глубины в шейдере фрагмента из текстуры был невозможным из-за отсутствия ES 2.0 переменной gl_fragDepth, я нашел учебник для iOS, где они использовали glBlendEquation с режимом GL_MIN / GL_MAX для «подделки» буферизации глубины фрагмента К фреймбуфер-текстуре Linky . Несчастливо GLES20.glBlendEquation делает приложение аварийным сбой на обоих моих телефонах (SGS 1/2) с UnsupportedOperationException. Итак, мне интересно, кто-нибудь использовал эту функцию для успеха? GL_MIN / GL_MAX также, кажется, отсутствует в спецификации Android Opengl ES 2.0, поэтому мне, вероятно, не повезло здесь … Любые идеи?

BTW Кажется, что он работает в GL11Ext, но поскольку я использую шейдер фрагмента для нормального отображения, это не будет работать у меня.

Я экспериментировал на своем планшете Vega (Tegra), и это сработало для меня:

Фрагментарный шейдер:

#extension GL_NV_shader_framebuffer_fetch : require // makes gl_LastFragColor accessible precision highp float; varying vec2 v_texcoord; uniform sampler2D n_sampler; void main() { vec4 v_tex = texture2D(n_sampler, v_texcoord); gl_FragColor = min(gl_LastFragColor, v_tex); // MIN blending } 

Довольно легко, да? Но я боюсь, что это будет только NV.