我试图实现像Photoshop一样的图层功能。 这里是我想画什么..OpenGL多纹理混合
但它绘制如下图所示
它是利用两层。用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);
能给我一些建议吗?
Yno,我个人实现了所有使用3 FBO的着色器中的Photoshop混合模式。完全没有任何纯粹的性能。但这对于OpenGL初学者来说并不容易。 :) –
你能告诉我提示吗?或示例代码,这将是很大的帮助 –