Android中使用MIX功能的OpenGL ES颜色错误

时间:2018-01-20 09:29:25

标签: android glsl opengl-es-2.0

enter image description here

在opengl es程序中我输入两个纹理并使用片段着色器:

        varying highp vec2 textureCoordinate;
        varying vec2 textureCoordinate2;
        uniform sampler2D inputImageTexture;
        uniform sampler2D inputImageTexture2;
        uniform lowp float intensity;
        void main() {
            highp vec4 newColor = texture2D(inputImageTexture2,textureCoordinate2);
            highp vec4 vColor = texture2D(inputImageTexture, textureCoordinate); 
            newColor.r = newColor.r + vColor.r * (1.0 - newColor.a);
            newColor.g = newColor.g + vColor.g * (1.0 - newColor.a);
            newColor.b = newColor.b + vColor.b * (1.0 - newColor.a);
            gl_FragColor = vec4(mix(vColor.rgb, newColor.rgb, 0.86), newColor.a);
        };

但结果有一些"错误颜色"在这里,如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我自己找到了答案,这是因为我从同一个FBO纹理中编写和读取,现在我改变它并且工作正常!