我正在开发一个基于 LibGDX 框架的 Android 应用程序(尽管我认为这不会对这个问题产生太大影响),并且在使用透明精灵进行绘制时我很难找到一种方法来获得我想要的结果。问题是精灵在它们重叠的地方明显层叠在一起,类似于此图像中显示的内容:
这对于我想做的一些事情来说非常难看,甚至完全破坏了其他部分。我希望他们做的是无缝合并在一起,如下所示:
到目前为止,我唯一的成功是将整个精灵序列以完全不透明度绘制在单独的纹理上,然后以所需的不透明度绘制该纹理。我有这个工作得很好,我可以让它在我需要的大部分工作中工作,但现在最大的问题是这些东西是动态绘制到屏幕上的,以及修改一个相当大的纹理的过程和将其发送回去对移动设备来说是相当繁重的,并且会导致无法接受的性能水平。
我花了很多时间寻找更理想的解决方案,包括尝试混合模式并提出古怪的公式,以平衡 alpha 和颜色值的方式平衡事情,但没有什么特别成功。我的猜测是,唯一可行的方法是前面提到的创建纹理并应用 alpha 差异的方法,但我不确定使用低功耗移动设备的最佳方法。