Creator 版本: 3.8.7
目标平台:网页
目前制作了一个鼠标拖尾,颜色是双色渐变加透明度渐变,前端颜色正常,但在末端本应该透明的位置会变为黑色,有大佬们知道是什么原因吗?
当前效果:

期望效果:
![]()
代码:demo
Creator 版本: 3.8.7
目标平台:网页
目前制作了一个鼠标拖尾,颜色是双色渐变加透明度渐变,前端颜色正常,但在末端本应该透明的位置会变为黑色,有大佬们知道是什么原因吗?
当前效果:

期望效果:
![]()
代码:demo
改下blend
不太行
不知道你的实现方案,所以不好给修改建议。
不过只针对这张图片还是可以处理的,就是后期再叠加个着色器,使用图层混合属性中的“ligthen”效果(就是把前景色和背景色像素值直接相加),不过你还需要按权重处理,即拖尾越头部的部分,前景色(也就是这个拖尾)叠加的权重的就越高(例如最头部位置前景色权重100%,背景色权重0%),越尾部则前景色叠加权重越低。
这种变黑一般都是blend出了问题,看下是否有预乘之类的选择
尾部你设置了透明度,多个透明颜色叠加依旧会显示出来,黑色的原因是你代码计算出来的
,越接近尾部,a越小,alphaFactor越小,颜色越黑。透明的黑色叠加就是黑色,建议去掉这段代码
我有上传demo,不是图片来的,是画了很多个半圆得在一起,我有考虑过叠加着色器,但没试成功 
不加的话透明度就达不到我需要的情况了,目前如果叠在黑色背景上看的话其实是能达到期望效果的
你这里改的是颜色,也不是透明度呀
我想的是渐变过渡叠加透明效果,不就是该a值么 \挠头

你这里改的是agb,是颜色呀,你透明度变小,颜色就变黑,为什么要变黑呢

去掉这个修改颜色,不是你要的效果吗
下载你demo看了一下,这里重复了,设置了.a 就不需要将rgb乘以.a了。 scene.ts的 262行到266行注释掉就行了。
// 使用预乘alpha避免重叠时透明度叠加
// const alphaFactor = currentColor.a / 255;
// currentColor.r = Math.floor(currentColor.r * alphaFactor);
// currentColor.g = Math.floor(currentColor.g * alphaFactor);
// currentColor.b = Math.floor(currentColor.b * alphaFactor);
blend里面指定了src_alpha就说明不支持预乘,使用的输入是alpha