Creator 版本: 3.8.3
目标平台: 编辑器预览,chrome网页调试
各位大佬好,我有一个抠洞的需求,想用颜色混合实现,源因子用ZERO目标因子用SRC_ALPHA,这个遮罩是在一个独立的摄像机下的,只有一张底图和一个遮罩图,设置后发现底图部分本应该应用遮罩透明度的部分颜色变黑了但是没有变透明,刚使用creator不久研究了几天实在是无从下手也查不到相关资料,望各位大佬能帮帮忙~
希望有大佬能帮忙解决,事成之后,请大佬喝咖啡。
Creator 版本: 3.8.3
目标平台: 编辑器预览,chrome网页调试
各位大佬好,我有一个抠洞的需求,想用颜色混合实现,源因子用ZERO目标因子用SRC_ALPHA,这个遮罩是在一个独立的摄像机下的,只有一张底图和一个遮罩图,设置后发现底图部分本应该应用遮罩透明度的部分颜色变黑了但是没有变透明,刚使用creator不久研究了几天实在是无从下手也查不到相关资料,望各位大佬能帮帮忙~
希望有大佬能帮忙解决,事成之后,请大佬喝咖啡。
怀疑可能跟深度测试有关,把底图深度写入和深度测试打开,遮罩只打开深度测试,使用less时候遮罩图消失了,使用less_or_equal的时候跟之前效果一样透明部分依然是黑色
上 Demo
源因子用ZERO目标因子用ONE试一下。
颜色因子 zero one : destColor = srcColor * 0 + destColor * 1 -> destColor
透明度因子 one zero : destAlpha = srcAlpha * 1 + destAlpha * 0 -> srcAlpha
如果你颜色目标因子用src_alpha 肯定最终就变黑了。
嗯嗯 我看下哈 效果看着是对的 我看怎么实现的
有几个问题哈
1、必须用renderTexture么?因为实际场景很大 底图是repeat重复的
2、为什么我在预览的时候没法看到效果运行的时候才能看到效果?
3、我之前的做法只想用遮罩的alpha部分为什么不可行啊?

是这样设置么 这个完整的显示了底图没有挖洞呢
我这个设置是需要渲染底图和遮罩图到rt上,然后对这个rt进行alpha blend 到主摄像机才能有效。
这时候destAlpha = srcAlpha,从而让rt的alpha = 遮罩图的alpha,这样才会起效的。否则destAlpha 只是一个数值,不体现在透明度上了。
话说,我看你前面介绍的,使用了独立的摄像机,我还默认以为你用了rt了。
3、我之前的做法只想用遮罩的alpha部分为什么不可行啊?
其实可以,但你的遮罩图,就只能有0和1,如果有过渡的alpha,那部分就是会让底图变黑,而不是给底图以透明度。
如果你的云是完全不透明,用你的遮罩图也是可以的
就是我说的这个意思,只有0或者1才正常。有半透明必须rt来保留这个alpha。
话说,你还不如写个shader,传入底图和遮罩图,用底图的颜色+遮罩图的Alpha,不就可以了?
嗯嗯 十分感谢 我用你的参数放到了rt上确实也可以了 效果会有些变亮确实是因为原图出的不好本身其实是有透明度的 我看引擎文档介绍默认默认是rgba一起运算的 但是我尝试了上面的isIndepend发现不勾选下面所有的参数也都是起作用的