我正在为儿童开发统一应用程序。
这个想法是孩子们在白色表面上绘制图像(如鱼),然后将其作为图像文件存储在文件夹中。应用程序必须在运行时导入这些,然后在二维空间中移动它们。我无法控制图像的绘制方式或在什么表面上绘制,因为这部分是由第三方 Web 应用程序完成的。我只是将它们作为共享文件夹中的图像文件接收。
问题是白色背景。如何将白色部分动态更改为透明?我正在使用 Unity 中的当前着色器,并注意到如果我手动导入具有白色背景的图像并分配类型为“粒子/乘法”的着色器,白色部分将被移除,但图像看起来也比它应该的暗得多,就像颜色不完全正确。如何在运行时使用代码执行此操作?这也是唯一的方法吗?因为我不希望图像失去颜色。
简而言之,如何动态删除白色背景?另外,值得一提的是,只有外部背景应该被移除,所以如果鱼有白色的眼睛,那不应该变成透明的。所以检测外部对我来说也是问题的一部分。
提前致谢
编辑:我开始使用不同的着色器和着色器代码,并取得了一些进展。所以我导入了一个精灵,在上面添加了一些默认的精灵着色器,在着色器代码中,添加了这一行:混合零 SrcColor 在附加图像中可见,它产生了去除白色背景所需的效果。唯一的问题是,现在鱼也有点透明了。我要做的就是让鱼像左图一样正常,但像右图一样删除背景!