繁体   English   中英

如何使片段着色器使用alpha,opengl-es替换白色

[英]How to make a fragment shader replace white with alpha, opengl-es

我试图提出一个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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM