【发布时间】:2014-11-12 04:01:49
【问题描述】:
我正在尝试提出一个 opengl-es 片段着色器,它将用 alpha 替换白色像素。带有方格背景的图像是我想要的。方格背景代表 alpha 转换后的图像。有小费吗?通常我不想在这里问这个,但我找不到任何东西。
【问题讨论】:
-
位图纹理可能吗?
我正在尝试提出一个 opengl-es 片段着色器,它将用 alpha 替换白色像素。带有方格背景的图像是我想要的。方格背景代表 alpha 转换后的图像。有小费吗?通常我不想在这里问这个,但我找不到任何东西。
【问题讨论】:
在您发布的图像中获取“白色像素”似乎正在获取灰度组件。那就是将 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);
【讨论】:
按理说,灰度值为0.2126 * R + 0.7152 * G + 0.0722 * B http://en.wikipedia.org/wiki/Grayscale
【讨论】: