creator版本:2.4.3
发布平台:未发布,测试项目
问题描述:
最近在研究sprite组件的blend混合模式,阅读了链接 https://docs.cocos.com/creator/manual/zh/advanced-topics/ui-auto-batch.html 中对blend模式的描述,然后通过文档链接 https://docs.cocos.com/creator/manual/zh/components/sprite.html 找到了图像混合模式预览参考链接 https://www.andersriggelsen.dk/glblendfunc.php 配合文档和该预览工具的使用,理解了混合模式,但是通过cocos creator上自己动手设置混合模式,发现效果和预览工具上的效果完全不一样,本来认为已经理解的内容全部被推翻,不知道是自己设置的问题还是引擎bug。
预览工具如下图:
红框1:选择的source图片
红框2:选择的destination图片
红框3:设置srcBlendFactor为GL_ONE
红框4:设置dstBlendFactor为GL_ZERO
红框5:设置显示模式为RGBA(色值以及透明度全部显示)
显示效果:符合文档中图像混合公式。
cocos creator中效果如下:
scene上有两张图片,一个是background,一个是半透绿色图片green
当设置图片green的混合模式srcBlendFactor为SRC_ALPHA,dstBlendFactor为ONE_MINUS_SRC_ALPHA时,显示正常。
然后设置green的混合模式srcBlendFactor不变,仍然为SRC_ALPHA,dstBlendFactor改为ZERO,结果就变成了图片上显示的样子,green的半透效果没有了。
将srcBlendFactor改为ONE,仍然没有透明度了,只是颜色变为了纯绿。
是我哪儿设置的有问题还是我理解的有问题,background本来就是不透明的,我将green的dstBlendFactor设置为ZERO,为什么会对green的透明度产生影响???求各位大神解惑。




