我试图想出一个用alpha替换白色像素的opengl-es片段着色器。具有方格背景的图像是我想要的。方格背景表示alpha转换后的图像。有小费吗?通常我讨厌在这里问这个问题,但我找不到任何东西。
答案 0 :(得分:1)
获取"白色像素"就像你发布的图像似乎是一个灰度组件。这就是总结RGB值除以3.然后输出RGB在你的情况下都是.0而alpha等于灰度像素......
vec4 textureSample = texture2D(uniformTexture, textureCoordinate);
lowp float grayscaleComponent = textureSample.x*(1.0/3.0) + textureSample.y*(1.0/3.0) + textureSample.z*(1.0/3.0);
gl_FragColor = lowp vec4(.0, .0, .0, grayscaleComponent);
答案 1 :(得分:1)
正确地说,灰度值是0.2126 * R + 0.7152 * G + 0.0722 * B http://en.wikipedia.org/wiki/Grayscale