Opengl es 纹理上的Opengl渲染纹理将透明部分保留为黑色(见图)

Opengl es 纹理上的Opengl渲染纹理将透明部分保留为黑色(见图),opengl-es,Opengl Es,顶部纹理的黑色部分是透明的,但在opengl es中渲染为黑色。 我渲染没有任何混合,不知道这是我需要的 我怎样才能解决这个问题?谢谢 这是我的着色器: precision mediump float; varying vec2 v_texCoord; uniform sampler2D s_texture; uniform lowp float dist

顶部纹理的黑色部分是透明的,但在opengl es中渲染为黑色。 我渲染没有任何混合,不知道这是我需要的

我怎样才能解决这个问题?谢谢

这是我的着色器:

    precision mediump float;                           
    varying vec2 v_texCoord;                            
    uniform sampler2D s_texture;
    uniform lowp float distance;
    uniform lowp float slope;     

    void main() 
    {
        highp vec4 color = vec4(1.0);

        highp float d = v_texCoord.y * slope + distance;

        highp vec4 c = texture2D(s_texture, v_texCoord);

        c = (c - d * color) / (1.0 -d);

        //vec4 textureColor =  texture2D( s_texture, v_texCoord );


        //gl_FragColor =  textureColor;
        gl_FragColor =  c;
    }

我渲染没有任何混合,不知道这是我需要的


是的,如果您希望某些东西是透明的,则需要根据alpha值或丢弃碎片。

添加:GLES20.glEnable(GLES20.GL_BLEND);GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA,GLES20.GL_ONE_减去SRC_ALPHA);