我正在尝试实现像photoshop这样的图层功能。这是我想画的..
但它绘制如下
它使用两层。由 2 个纹理帧缓冲区制成,一个用于背景,另一个用于绘图。纹理与片段着色器混合。
mediump vec4 tex0_color = texture2D(texunit0,TexCoordOut); // bg texture
mediump vec4 tex1_color = texture2D(texunit1,TexCoordOut); // drawing texture
mediump vec4 mix_color = mix(tex0_color,tex1_color,tex1_color.a);
并且在绘图层上的每个绘制都是使用顶点精灵执行的
highp float a = DestinationColor.a * texture2D(texunit0,gl_PointCoord).a;
gl_FragColor = vec4(DestinationColor.rgb,a);
和混合功能设置如下..
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
你能给我一些建议吗?