【发布时间】:2021-04-24 23:01:57
【问题描述】:
我对 OGL 很陌生。 我试图让片段着色器显示一个具有透明度的 png 图像。 到目前为止,我已经设法将图像中的透明背景变为黑色,然后 alpha 通道以黑色显示,但是如何使 alpha 通道真正透明呢?
我已经尽力自己解决了,但没有成功。 请帮忙?
这是我的代码:
const fragment = `
precision highp float;
precision highp int;
uniform sampler2D tWater;
uniform sampler2D tFlow;
uniform float uTime;
varying vec2 vUv;
uniform vec4 res;
void main() {
vec3 flow = texture2D(tFlow, vUv).rgb;
vec2 uv = .5 * gl_FragCoord.xy / res.xy ;
vec2 myUV = (uv - vec2(0.5))*res.zw + vec2(0.5);
myUV -= flow.xy * (0.15 * 0.7);
vec3 tex = texture2D(tWater, myUV).rgb;
gl_FragColor = vec4(tex.r, tex.g, tex.b, 1.0);
}
`;
{
【问题讨论】:
标签: javascript alpha fragment-shader ogl