openGL,webGL如何在纹理中间画一个光圈?

发布于 2022-09-11 18:14:34 字数 610 浏览 22 评论 0

如何画在纹理中间画一个光圈,原本代码写成这样:

vec2 position = (uv * 2.-1.0) * vec2(1.0, 1.0);
    
    float d = abs( length(position) - 0.8) * 5.0;
    gl_FragColor += vec4(0.2/d, 0.2 / d, 0.2 / d, 1);

然后有个问题,这样会将纹理的非光圈部分的颜色也改变了,然后改成

if( length(position)<0.8 && length(position)>0.7 ){
        gl_FragColor += vec4(0.2/d, 0.2 / d, 0.2 / d, 1);
    }else{
        gl_FragColor =src_color;
    }

这样写虽然不影响其非光圈部分的颜色,但也没有光圈的感觉了。

clipboard.png

如何在纹理中间画个光圈而不影响光圈以外位置的颜色?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文