我正在尝试在点精灵上模拟 Photoshop 的叠加混合模式。这在 OpenGL ES 中可行吗?
问问题
1072 次
1 回答
0
编辑 - 这可能会帮助你:
请注意:我不相信下面的代码;我在 powervr 论坛上找到它:http ://www.imgtec.com/forum/forum_posts.asp?TID=949
uniform sampler2D s_renderTexture;
uniform sampler2D s_overlayMap;
varying mediump vec2 myTexCoord;
void main()
{
//Get the Texture colour values
lowp vec3 baseColor = texture2D(s_renderTexture, myTexCoord).rgb;
lowp float overlayTexture = texture2D(s_overlayMap, myTexCoord).r;
lowp vec3 finalMix = baseColor + (overlayTexture - 0.5) * (1.0 - abs(2.0 * baseColor - 1.0));
//Set the Fragments colour
gl_FragColor = vec4( finalMix, 1.0 );
}
当然,在渲染点精灵之前调用它:
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE);
这应该导致添加剂混合。
以下是不同混合模式组合的视觉参考:http: //zanir.wz.cz/ ?p=60&lang=en
这是一个旧页面,但它是一个很好的参考。
有关 opengl-es 混合的更多信息:http ://www.khronos.org/opengles/sdk/docs/man/xhtml/glBlendFunc.xml
于 2012-04-09T15:43:28.157 回答